Room shell (control room, LER, office)
Walk-through room: lined walls with real openings from a doors array (wall side, offset, kind, open…) and a windows array, each filled with the door and window components. Raised access floor (slab at y = 0, finished floor at floorHeight, 600 mm tiles, pedestals and cables visible at the cut, perforated supply tiles) or carpet tiles; suspended 600 mm ceiling with LED panels, slot diffusers, smoke detectors, PA speakers and gas-suppression nozzles; ladder tray in the ceiling void; cove skirting; exit sign, call point, switch and CO2 extinguisher inside each door. cutaway leaves out the ceiling and the +Z wall so the twin can look in. Place consoles, video walls and cabinets inside on the finished floor.
Installation
Copies interiors/room.tsx and the shared lib/ into src/components/deck-twin/. Needs three, @react-three/fiber and @react-three/drei. See installation for the manual route.
Usage
import { Canvas } from '@react-three/fiber'
import { OrbitControls } from '@react-three/drei'
import { Stage } from './components/deck-twin/lib/stage'
import { Room } from './components/deck-twin/interiors/room'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<Room />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
width | number (m) | null | 2 – 40 |
depth | number (m) | null | 2 – 30 |
height | number (m) | null | 2.3 – 6 |
wallThickness | number (m) | null | 0.06 – 0.4 |
raisedFloor | boolean | null | |
floorHeight | number (m) | null | 0.1 – 1.2 |
ceiling | boolean | null | |
cableTray | boolean | null | |
cutaway | boolean | null | |
fireRating | "A60" | "H120" | "none" | null | |
label | string | null | |
tag | string | null | |
...group | position, rotation, scale… |
P&ID
Plan view: double-line walls enclosing the room with door and window openings and the room name and number written inside; raised floors noted RAF with the floor height.
Rooms are background for consoles, cabinets and furniture. A single building rectangle on a plot plan is an e-house or module.
widthdepthheightwallThicknessraisedFloorfloorHeightceilingcableTrayfireRatinglabeltagTypical suppliers
Kingspan (Tate). The geometry is generic and sized from public standards. It is not vendor CAD.
For agents
Machine-readable entry with props, ranges, defaults and ports:
Or fetch /r/room.json, or copy a ready-made instruction:
Add the Deck Twin "Room shell (control room, LER, office)" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add room` (it copies the file and the shared lib into src/components/deck-twin/), then `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz info room` for its props, ranges and ports. Render <Room /> inside a React Three Fiber <Canvas shadows>, wrapped in <Stage> from src/components/deck-twin/lib/stage. Set props from my data (metres, NPS in inches, ASME class) and leave the rest at defaults. Install three, @react-three/fiber, @react-three/drei and @types/three if they're missing. Full guide: https://decktwin.com/skill/SKILL.md