Multi-deck layouts
The planner can stack decks at different heights so you can plan a layout with a ground-level loop and an elevated subway, an over-and-under figure-8, or a shelf bench with a return loop on a second tier.
Decks vs. layers
Two distinct concepts. They look similar in the inspector but mean different things:
| Decks | Layers | |
|---|---|---|
| What it means | Physical Z height of the pieces. | Organisational tag for visibility / colour coding. |
| How many per piece | Exactly one. | Zero or many. |
| Effect on the canvas | Pieces stack at the deck's elevation in 3D. | Toggling a layer hides every piece tagged with it. |
| Typical names | Ground, Mezzanine, Top, Hidden staging. | Mainline, Yard, WIP, Scenic, To-do. |
Both surfaces are accordions in the inspector. The Decks panel has a mm input next to each row — that's the deck's elevation. The Layers panel has visibility, colour-coding, and multi-membership tags — no elevation field.
A single piece can be on the Mezzanine deck and tagged with the Mainline layer. The two are independent.
Working with decks
Each layout starts with a single Ground deck at 0 mm. To add a second deck:
- Open the Decks accordion in the inspector.
- Click + New deck. Name it something memorable ("Mezzanine") and set its elevation (say, 80 mm).
- The new deck becomes the active deck — the orange dot moves to it — so the next piece you place lands at 80 mm.
- Click an existing deck row to make it the active deck instead.
Editing a deck's elevation moves every piece on that deck in one undo step. So if you start building a Mezzanine deck at 80 mm, then realise you want it at 90 mm, just change the value — the entire deck lifts. Press Ctrl/Cmd+Z to revert both the deck value and every piece's Z in lockstep.
Deleting a deck reassigns its pieces to the layout's first remaining deck (and drops their Z accordingly). The planner refuses to delete the last deck — at least one is always needed for new placements.
Viewing the stack
Switch to 3D mode (camera toggle in the top-right of the canvas) to see decks at their real heights. The orthographic 2D mode is still the right place to place pieces — it shows everything top-down regardless of elevation — but only the 3D mode reveals the vertical relationships between decks.
Cross-deck connections (ramps)
The catalogue now ships ramp pieces — straight track that rises along its length. Connector A sits at the lower deck's elevation; connector B is lifted by the piece's rise so it can snap to a piece on a higher deck without any special handling on the user's part.
To use a ramp:
- Make sure your decks' elevations agree with a ramp you have in the catalogue. A
50 mmramp connects decks 50 mm apart; a30 mmramp connects decks 30 mm apart. - Switch the active deck to the lower of the two decks you're bridging.
- Place the ramp at the edge of the lower deck. Its A end lands at the active deck's elevation; its B end automatically projects 50 mm (or whatever the rise is) above.
- Snap a piece from the higher deck to the ramp's B connector — same drag / snap workflow as anywhere else on the layout.
Descending ramps work via rotation: the same piece rotated 180° (with R) descends from B (now at z=0 in placement coords) back down to A. Place the rotated ramp on the upper deck and its (originally-A, now-rotated) end falls to the lower deck.
The Properties accordion on a selected ramp shows length, rise, grade %, and pitch in degrees. Grades over 3% read in orange — a real reference train won't usually pull a long train up that slope, though the planner doesn't block placement.
v1 ships a single proof-of-concept ramp in the Hornby Setrack catalogue (LCDX-RAMP-50, 672 mm long, 50 mm rise, ~7.4% grade). Real-world ramp data (Hornby R658 inclined pier set, Kato riser sets) lands as a follow-up. Curved-rise pieces (helixes) are a separate roadmap item.
Known limitations
- Clearance validation doesn't fully understand ramps yet. A Mezzanine piece sitting directly above the high end of a ramp won't get flagged as a tight-clearance warning, because the ramp's bounding box in the clearance check is currently centred on its lower-deck elevation rather than spanning A→B in Z. Grade-aware validation (the next roadmap item after ramps) closes this gap.
- 2D top-down view shows ramps as plain straights, identical to a flat piece of the same length. The rise only shows in 3D. A chevron / arrow indicator on the 2D view is a planned polish.
Caveats
- The
.trackplanformat bumped to v3 to carry decks as a top-level concept. Files exported now will be refused by pre-decks planner versions (preventing silent data loss). Older.trackplanfiles (v1, v2) still open fine; v2 layer-elevations migrate into derived decks of the same elevation. - Grade validation (warning about steep grades or abrupt transitions) is a separate roadmap item.
- All elevation is per-deck. Climbing tracks (graded pieces that rise along their length) aren't modeled yet.