Stair (ISO 14122-3)
Straight steel stair after ISO 14122-3: UPN channel stringers with level-cut feet on anchored cleats, bar-grating treads with yellow chequer nosings and bolted end plates, even risers near 180 mm with the going set by the pitch, an intermediate landing on posts for every 3 m of rise, and handrails with knee rails on both sides. Foot (first riser) at the origin on y = 0, climbing along +X; the upper floor edge is at x = run = (round(rise/0.18) − 1) × going per flight, plus landingLength per intermediate landing. Optional free-standing top landing.
Installation
Copies structure/stair.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 { Stair } from './components/deck-twin/structure/stair'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<Stair />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
rise | number (m) | null | 0.6 – 12 |
width | number (m) | null | 0.6 – 1.6 |
angle | number (°) | null | 30 – 45 |
stringer | "UPN 160" | "UPN 180" | "UPN 200" | "UPN 240" | null | |
landingLength | number (m) | null | 0.8 – 2 |
topLanding | boolean | null | |
finish | "galvanised" | "painted" | null | |
...group | position, rotation, scale… |
P&ID
Plan view: a rectangle filled with parallel tread lines and an arrow along it labelled UP (or DN), often with a break line half-way.
Rungs at close spacing with a circle around them is a caged ladder seen in plan. Not on P&IDs.
Typical suppliers
Fabricated to project specification. 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/stair.json, or copy a ready-made instruction:
Add the Deck Twin "Stair (ISO 14122-3)" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add stair` (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 stair` for its props, ranges and ports. Render <Stair /> 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