Atmospheric storage tank (API 650)
API 650 vertical cylindrical tank on a concrete ringwall. Shell courses sized by the one-foot method, with stepped thicknesses, horizontal and staggered vertical seams, a self-supporting cone (1:6) or dome roof with lap seams, top curb angle and an intermediate wind girder where the shell exceeds the stable height. Spiral stairway, roof landing and perimeter handrail, walkway to the gauge hatch, radar gauge, PV breather and emergency vents, shell and roof manways, product band and tag stencil. Optional fire protection: foam chambers with foam makers and risers, and a shell cooling spray ring.
Installation
Copies vessels/storage-tank.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 { StorageTank } from './components/deck-twin/vessels/storage-tank'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<StorageTank />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
roof | "cone" | "dome" | null | |
diameter | number (m) | null | 3 – 60 |
height | number (m) | null | 2.4 – 24 |
gravity | number | null | 0.6 – 1.3 |
productColor | string | null | |
inletNps | number (NPS, in) | null | |
outletNps | number (NPS, in) | null | |
drainNps | number (NPS, in) | null | |
fireProtection | boolean | null | |
tag | string | null | |
...group | position, rotation, scale… |
P&ID
Flat-bottomed vertical rectangle on grade with a shallow cone (triangle) or dome roof, inlet near the top, outlet near the bottom; floating-roof tanks show the roof as a line inside the shell. Breather / PVRV and emergency vents sit on the roof.
Flat bottom on grade = atmospheric tank (API 650); a capsule with elliptical heads = pressure vessel. A circle on legs is a sphere.
roofdiameterheightgravityinletNpsoutletNpsdrainNpstagTypical suppliers
Superior Tank · Angus Fire (foam / spray 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/storage-tank.json, or copy a ready-made instruction:
Add the Deck Twin "Atmospheric storage tank (API 650)" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add storage-tank` (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 storage-tank` for its props, ranges and ports. Render <StorageTank /> 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