Offshore steel jacket
Fixed steel jacket substructure (4, 6 or 8 legs): hollow battered tubular legs with node cans, horizontal frames, X or K braced faces with oversized brace stubs and crossing cans, conductor guide framing with funnelled sleeves, risers clamped to the +X face with a splash-zone sheath, a seabed bend and top flanges (ports riser-1…n), a boat landing with bumpers, grating and ladder on +Z, barge bumpers on the corner legs through the splash zone, stand-off anodes, mudmats and yellow sea-level marker rings. Origin is the top of the jacket legs at y = 0 and the structure extends below it: mean sea level at y = −airGap, seabed at y = −(airGap + waterDepth). A deck-module with legHeight h placed at y = h sits on it when its leg spacing matches spanX / spanZ.
Installation
Copies structure/jacket.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 { Jacket } from './components/deck-twin/structure/jacket'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<Jacket />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
legs | 4 | 6 | 8 | null | |
waterDepth | number (m) | null | 15 – 180 |
airGap | number (m) | null | 8 – 35 |
spanX | number (m) | null | 8 – 60 |
spanZ | number (m) | null | 8 – 40 |
batter | number | null | 6 – 20 |
legDiameter | number (m) | null | 0.9 – 3 |
bracing | "X" | "K" | null | |
conductors | number | null | 0 – 12 |
risers | number | null | 0 – 4 |
riserNps | number (NPS, in) | null | |
riserRating | 150 | 300 | 600 | 900 | 1500 | 2500 | null | |
boatLanding | boolean | null | |
anodes | boolean | null | |
seaLevelMarker | boolean | null | |
...group | position, rotation, scale… |
P&ID
Elevation: a tapering (battered) frame from the seabed up to the deck with horizontal levels and X or K bracing, the sea level drawn as a wave line and the mudline at the bottom; in plan, circles at the leg positions.
Not on P&IDs. Risers and conductors are drawn along the jacket face; the deck above is deck-module.
legswaterDepthairGapspanXspanZbatterlegDiameterbracingconductorsrisersriserNpsriserRatingTypical 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/jacket.json, or copy a ready-made instruction:
Add the Deck Twin "Offshore steel jacket" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add jacket` (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 jacket` for its props, ranges and ports. Render <Jacket /> 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