Pipe spool
Shop-fabricated straight spool: B36.10 pipe with weld-neck flanged or B16.25 bevelled ends, butt welds, optional aluminium-jacketed insulation with stainless banding and ISO 14726 service identification bands. NPS, schedule, class and length drive the geometry.
Installation
Copies piping/pipe-spool.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 { PipeSpool } from './components/deck-twin/piping/pipe-spool'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<PipeSpool />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
nps | number (NPS, in) | null | |
schedule | "10" | "20" | "40" | "STD" | "80" | "XS" | "160" | "XXS" | "10S" | "40S" | "80S" | null | |
rating | 150 | 300 | 600 | 900 | 1500 | 2500 | null | |
length | number (m) | null | 0.3 – 12 |
ends | "flanged" | "plain" | "flanged-plain" | null | |
insulated | boolean | null | |
service | "none" | "oil" | "gas" | "multiphase" | "water" | "seawater" | "firewater" | "steam" | "air" | "nitrogen" | "chemical" | "flare" | "drain" | "fuel-gas" | "diesel" | "potable" | "cooling" | null | |
...group | position, rotation, scale… |
P&ID
A solid line labelled with its line number (size-service-number-class-insulation, e.g. 8"-PG-2101-D6A-N); flanged joints appear as short double bars across the line. Insulation is marked by the H / IH suffix or a dashed outline along the line.
Process lines are thick solid; utility and minor lines thinner; instrument signal lines are dashed (electrical) or with hash marks (pneumatic). Each line number between two nozzles becomes one spool run.
npsscheduleratingendsinsulatedserviceTypical suppliers
Johns Manville (metal jacketing). 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/pipe-spool.json, or copy a ready-made instruction:
Add the Deck Twin "Pipe spool" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add pipe-spool` (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 pipe-spool` for its props, ranges and ports. Render <PipeSpool /> 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