Windsock
Helideck windsock on a tilting galvanised mast: gusseted base plate with anchors, hinge with pivot and locking bolts, swivel head with mouth hoop and internal floodlight (or two external floodlights), red obstruction lamp, and a hollow banded sock (1.2 m colour/white/colour by default, 5 bands when longer) that droops in light air and stands out from about 12 m/s. windFrom turns the head downwind; flutter animates it.
Installation
Copies safety/windsock.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 { Windsock } from './components/deck-twin/safety/windsock'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<Windsock />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
height | number (m) | null | 2 – 12 |
windFrom | number (°) | null | 0 – 360 |
windSpeed | number (m/s) | null | 0 – 25 |
length | number (m) | null | 1.2 – 3.6 |
colour | "orange" | "red" | null | |
lighting | "internal" | "external" | null | |
lit | boolean | null | |
flutter | boolean | null | |
tag | string | null | |
...group | position, rotation, scale… |
P&ID
On helideck and platform layouts: a mast with a truncated cone (the sock) streaming from it, sometimes only a small circle at the mast position labelled WS.
Located clear of the helideck obstacle-free sector, visible from the approach. Not shown on P&IDs.
heightlengthcolourlightingtagTypical suppliers
Orga · Signalight. 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/windsock.json, or copy a ready-made instruction:
Add the Deck Twin "Windsock" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add windsock` (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 windsock` for its props, ranges and ports. Render <Windsock /> 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