BOP stack (surface)
Surface blowout preventer stack on a casing head: single ram, drilling spool, double ram and annular preventer, with bolted bonnets, operating cylinders and ram locks along X. The drilling spool carries the choke (+Z) and kill (-Z) lines, each with a manual gate and a hydraulic HCR valve and a crossover to a B16.5 flange. Hydraulic hoses run from a junction plate to every function, inside a yellow handling frame with padeyes. Body proportions are typical for a 13-5/8" 10k stack and scale with bore and pressure.
Installation
Copies wellhead/bop-stack.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 { BopStack } from './components/deck-twin/wellhead/bop-stack'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<BopStack />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
bore | 11 | 13.625 | 18.75 | 21.25 | null | |
pressureRating | 5000 | 10000 | 15000 | null | |
handlingFrame | boolean | null | |
closed | boolean | null | |
tag | string | null | |
...group | position, rotation, scale… |
P&ID
A vertical stack of boxes: the annular preventer on top (tapered or rounded), ram preventers (rectangles with rams drawn from both sides, labelled pipe / blind / shear), and a drilling spool with the choke and kill lines and their valves leaving each side.
Rams drawn as boxes with side rams distinguish a BOP from a christmas tree (bow-tie valves). Only on drilling or well-control schematics, not process P&IDs.
borepressureRatinghandlingFrametagTypical suppliers
SLB (Cameron) · Baker Hughes (Hydril). 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/bop-stack.json, or copy a ready-made instruction:
Add the Deck Twin "BOP stack (surface)" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add bop-stack` (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 bop-stack` for its props, ranges and ports. Render <BopStack /> 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