Christmas tree (surface, API 6A)
Surface wellhead and christmas tree on a conductor: casing head, tubing head spool with annulus valves and SCSSV control-line exit, tubing-head adapter, manual lower master, hydraulic SSV upper master with a heat-sensitive lock-open (fusible) device, studded cross, swab valve and tree cap with EUE lift thread, needle valve and gauge. Spools carry secondary-seal test ports and lockdown screws. The production wing carries a hydraulic wing valve, flow tee with THP gauge and an angle choke whose outlet turns into a B16.5 flowline flange; the kill wing has a manual valve and crossover. API 6B/6BX flanges and gate lengths scale with pressure rating and bore.
Installation
Copies wellhead/christmas-tree.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 { ChristmasTree } from './components/deck-twin/wellhead/christmas-tree'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<ChristmasTree />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
pressureRating | 5000 | 10000 | null | |
bore | 2.0625 | 2.5625 | 3.125 | 4.0625 | null | |
wellType | "producer" | "gas" | "injector" | null | |
wellheadHeight | number (m) | null | 0.5 – 2 |
flowlineNps | number (NPS, in) | null | |
flowlineRating | 150 | 300 | 600 | 900 | 1500 | 2500 | null | |
choke | number | null | 0 – 1 |
tag | string | null | |
...group | position, rotation, scale… |
P&ID
A vertical run of valves above the wellhead: lower master (manual), upper master (SSV, with an actuator box), a cross with the production wing valve (often actuated) and the choke (bow-tie with a diagonal arrow) on the side, and the swab valve and tree cap on top. The SCSSV is shown below the wellhead as a valve with a control-line note.
A single vertical valve stack with a side wing and choke is a tree; a stack of boxes with rams is a BOP; a stack of spools with only annulus outlets is the wellhead housing. Injector trees have the wing on the injection line with the flow arrow into the well. ISA codes here: XV = wing.
pressureRatingborewellTypeflowlineNpsflowlineRatingtagTypical suppliers
SLB (Cameron) · Weatherford · Baker Hughes (Vetco Gray) · Sentry Wellhead Systems. 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/christmas-tree.json, or copy a ready-made instruction:
Add the Deck Twin "Christmas tree (surface, API 6A)" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add christmas-tree` (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 christmas-tree` for its props, ranges and ports. Render <ChristmasTree /> 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