RU19 Space Planner — user guide
A tool for working out what furniture and crowd RU19 can hold, what it would cost, and how each scenario plays out. Built for the iOi team at RU19, King's Cross.
Quick start — 1, 2, 3, you're up and running
- Pick a scenario. In the left sidebar, click any scenario (e.g. "5. School workshop"). The room fills with the right people and a starting furniture layout.
- Tweak the room. Drag furniture to move it. Click an item and press R to rotate, Delete to remove. Open the Furniture section in the sidebar to add more pieces — click a piece, then click in the room to drop it.
- Set a price. In the Revenue panel, type a £ amount and pick a mode (per person, flat fee, etc.). The Readouts at the bottom show live revenue, capacity, staff ratio, and total cost.
That's the whole loop. Switch scenarios with the buttons — each scenario remembers its own layout and pricing. Save your work to a file with the "Save to file" button under the Scenarios list and send it to a coworker. The sections below go deeper on every feature.
What this is for
RU19 is one room — 66 m², 60-person legal cap, no mezzanine. The planner lets you:
- Drop in real-scale furniture and people and see the layout in top-down or 3D.
- Switch between scenarios (retail browsing, toddler session, school workshop, etc.) to test the same furniture against different crowds.
- Run revenue numbers — per person, per family, flat fee, items sold, charity 2-for-1 — and compare pricing variants.
- See live capacity, free-floor area, display depth, total furniture cost, and staff-ratio warnings as you work.
The interface at a glance
The sidebar (left) is where you make changes. The canvas (right) is the room. The top header switches between Top-down and 3D, and there's a Showcase render toggle for screenshots.
Sidebar sections
- Scenarios — click to load a scenario. Save to file / Load from file lives at the bottom of this section.
- Furniture — catalog of every placeable piece (tables, chairs, shelves, pegboards, plinths, dividers, mats, machines, landlord-supplied counter and plinth).
- People — adult, teen, child, toddler, wheelchair user, staff member. Drop them in by hand.
- Revenue — per-scenario pricing. Configure once per scenario; switches with the active scenario.
- Readouts — live numbers (see below).
- Space — fixed facts about RU19 (NIA, ceiling, max occupancy).
Scenarios — how layouts move between them
Each scenario remembers its own layout and pricing. The key idea is that furniture carries between scenarios on first visit, but personas don't. This lets you design a furniture set once and see how it serves every crowd.
First-visit rule
The first time you click a scenario, the app:
- Keeps whatever furniture is currently in the room (drops your current people).
- Adds that scenario's scripted personas (e.g. 30 children + 3 teachers for "School workshop").
- Saves this as that scenario's starting state.
If the room is empty when you click — i.e. you've never customised anything — the scenario falls back to running its scripted layout as a starting suggestion.
Subsequent visits
Once a scenario has a saved state, clicking it restores that state literally. Switching back and forth between scenarios is safe — your edits in each are preserved separately.
Furniture — placing, moving, rotating, deleting
Placing
- Click a piece in the Furniture sidebar. A translucent ghost follows your cursor.
- Click in the room to drop it. The app keeps placing — click again to drop another.
- Press Esc to exit placement.
Moving
Left-click and drag any placed item to move it. Right-click drag is reserved for orbiting the camera (in 3D). The mouse wheel zooms.
Rotating
Select an item (left-click it) and press R to rotate 90° around the vertical axis. Repeat to cycle through four orientations. R also works on the ghost during placement.
Tipping a mat against a wall
Foam mats have two extra orientations beyond the four yaws: tipped flat against a wall running along X and tipped against a wall running along Z. Press R through the cycle until the mat stands vertical with its broad face the way you need.
Deleting
Select and press Delete (or Backspace). Landlord pieces (counter, plinth) can also be deleted — they live in the catalog under "Landlord-supplied" so you can re-add them.
Tooltips
Hover any catalog item to see footprint, cost (rough estimate unless a supplier source is set), flexibility rating, supported workshop stages, and notes.
People — types, staff, the 1:6 ratio
Six person types. Drop them in by hand; the personas placed by scenarios are just suggestions you can edit.
| Type | Notes |
|---|---|
| Adult | 1.70 m. 0.60 m personal-space radius. Counts toward supervision. |
| Teen (11–15) | 1.55 m. Counted as "child" for the staff ratio. |
| Child (6–10) | 1.25 m. Counted toward the staff ratio. |
| Toddler (3–5) | 1.00 m. Counted toward the staff ratio. |
| Wheelchair user | Seated 1.30 m, 0.70 × 1.20 m chair footprint inside a 1.50 m turning circle. Counts as an adult. |
| Staff member | Trained staff (green swatch). Not counted as a paying visitor. Drives the staff ratio. |
Staff ratio
The Staff readout shows the current count and the minimum required for the people on the floor. Rules:
- Minimum 1 staff member on site at all times, even in an empty room.
- If any adult is present (parent, teacher, wheelchair user), the minimum stays at 1.
- If children are present and no other adults, the minimum scales up to
ceil(children / 6).
Under-staffed scenarios show the Staff line in red with "(need N more)". This is advisory — the planner doesn't block placement.
Pricing & revenue
Each scenario stores its own pricing. The Revenue panel lives above the readouts and shows you what you're configuring.
Price lines
Each line is a £ amount + a mode:
- Per person — revenue = £ × non-staff people on the floor.
- Per family — revenue = £ × the "Families present" number you type in. (We don't auto-detect family clusters.)
- Flat fee — one-off £ amount (e.g. a product-partnership lump sum).
- Items sold — revenue = £ × the "Items sold" number you type in.
- Items sold (2-for-1 charity) — same maths as Items sold, but the contribution is reported separately as "of which to community" so you can see what's going to charity programmes.
Click "+ add line" to stack multiple revenue streams (e.g. ticket fee + retail sales). The Revenue readout sums them.
Pricing variants
The "Variant" dropdown at the top of the Revenue panel lets you save multiple price configurations for the same scenario. Useful for comparing "Weekday rate" vs "Weekend rate" on the same furniture layout. "+ new variant" prompts for a name. The "× delete" button only appears once you have more than one variant.
Manual counts
"Families present", "Items sold", and "2-for-1 items donated" are scenario-level inputs that appear only when a price line uses the corresponding mode. They're shared across that scenario's pricing variants.
Readouts — what each number means
| Readout | Meaning |
|---|---|
| Free floor | NIA minus obstacles (column, electrical cupboard) minus built furniture. Personas don't subtract from this. |
| Comfort capacity | Free floor ÷ 1.5 m²/p. How many people fit comfortably given the current furniture. Turns red when exceeded. |
| Legal max | People on floor / 60. Landlord-imposed regulatory cap. Turns red if exceeded. |
| People on floor | Total persons placed (all types including staff). |
| Staff | Staff / required. See the staff ratio rules above. Turns red when under-staffed. |
| Display depth | Clear sight-distance from the shopfront inward to the nearest sightline-blocking item. |
| Furniture items | Count of placed furniture (excludes landlord pieces and personas). |
| Total cost | Sum of furniture costs (excludes landlord and personas). |
| Avg flexibility | Average flex score of placed furniture (each piece has a 0–10 rating). |
| Revenue | Sum of all price lines in the active pricing variant. With charity sub-figure when applicable. |
Save & share
Two layers of persistence:
- Auto-save (browser). Every change is written to your browser's localStorage. Refresh the page and your work comes back.
- Save to file. The "Save to file" button (under the Scenarios list) downloads a single
ru19-project-YYYY-MM-DD.jsonwith every scenario's layout, pricing variants, and manual counts. Send the file to a coworker; they can "Load from file" to see exactly what you saw.
"Load from file" replaces all current state after a confirm prompt.
default-project.json shipped with the app). Their subsequent edits are saved locally and don't affect anyone else.
Keyboard shortcuts
| Key | Action |
|---|---|
| R | Rotate selected item (or ghost during placement). For mats: cycles through 4 yaw + 2 vertical-tip orientations. |
| Delete / Backspace | Remove selected item. |
| Esc | Cancel placement / clear selection. |
| T | Toggle top-down view. |
Plus: left-click to select or drag, right-click drag to orbit (in 3D), mouse wheel to zoom.
Tips & gotchas
- Switching scenarios is non-destructive. Each scenario has its own saved layout — go back and forth freely.
- Staff aren't paying visitors. They're excluded from the per-person revenue count, so adding a staff member won't inflate revenue.
- Comfort capacity is stable. Adding people doesn't reduce it (people don't eat floor space the way furniture does). The "(over)" warning is meaningful.
- Mat against a wall: use R to cycle past the four flat orientations into the two vertical ones.
- Pricing variants are per-scenario. Adding a "Weekend rate" variant to After-school doesn't add one to School workshop.
- Landlord pieces are movable. Counter and plinth can be moved, rotated, deleted, and re-added (look under "Landlord-supplied" in the Furniture list).
- Display depth excludes personas and dividers. It measures clear sight-lines from the glazing inward against furniture and obstacles only.