Riser top section
Export or import riser where it reaches the topsides. Below the deck (y < 0, down to length) the coated riser runs through split jacket clamps on brackets and splash-zone sheathing placed from airGap. At the deck a forged hang-off collar sits on beams; above it come a monolithic insulating joint, the riser ESDV (full-bore ball valve with a fail-close spring-return actuator) and a riser pressure gauge and transmitter, and a 5D piggable bend to a horizontal B16.5 topside flange.
Installation
Copies wellhead/riser.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 { Riser } from './components/deck-twin/wellhead/riser'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<Riser />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
nps | number (NPS, in) | null | |
rating | 150 | 300 | 600 | 900 | 1500 | 2500 | null | |
length | number (m) | null | 2 – 80 |
airGap | number (m) | null | 8 – 40 |
esdv | boolean | null | |
insulatingJoint | boolean | null | |
run | number (m) | null | 0.5 – 4 |
tag | string | null | |
...group | position, rotation, scale… |
P&ID
The topsides line turning down through the deck to sea level and below, with the riser ESDV (actuated valve with an S box) above the deck, an insulating joint (two close bars with a gap) and an off-page note "to / from subsea pipeline"; the sea level is often drawn as a wave line.
An open-ended pipe hanging into the sea (pump or sump) is a caisson. Pipeline pig traps sit just upstream on the topsides.
npsratinglengthairGapesdvinsulatingJointtagTypical suppliers
Subsea Energy Solutions (hang-off clamps). 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/riser.json, or copy a ready-made instruction:
Add the Deck Twin "Riser top section" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add riser` (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 riser` for its props, ranges and ports. Render <Riser /> 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