Chemical injection skid
Bunded chemical injection package: stainless storage tank on legs with magnetic level gauge, radar transmitter, breather with flame arrestor and fill line, a row of motor-driven diaphragm metering pumps with suction header, calibration pot, Y-strainers, pulsation dampeners, PSVs returning to the tank, back-pressure and non-return valves, gauges, an Ex junction box, a local control panel with HMI and cable tray, drip trays and shackled padeyes. One battery-limit outlet per pump; pumps sets the count and the skid length.
Installation
Copies packages/chemical-injection-skid.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 { ChemicalInjectionSkid } from './components/deck-twin/packages/chemical-injection-skid'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<ChemicalInjectionSkid />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
pumps | number | null | 1 – 6 |
tankDiameter | number (m) | null | 0.6 – 1.8 |
tankHeight | number (m) | null | 0.8 – 2.5 |
kw | number (kW) | null | 0.37 – 7.5 |
fillNps | number (NPS, in) | null | |
outletNps | number (NPS, in) | null | |
outletRating | 150 | 300 | 600 | 900 | 1500 | 2500 | null | |
chemical | string | null | |
canopy | boolean | null | |
running | boolean | null | |
tag | string | null | |
...group | position, rotation, scale… |
P&ID
Dash-dot package boundary containing a small storage tank, a suction header and one or more metering pumps (small circles with a diagonal arrow), with injection lines (CI / MI, ½"–1") leaving to the injection points, each with a check valve and isolation at the quill.
The chemical (demulsifier, corrosion inhibitor, scale inhibitor, methanol, biocide) is written on the tank or on the outgoing lines. Vendor packages are often a single box with only the battery-limit connections shown.
pumpstankDiametertankHeightkwfillNpsoutletNpsoutletRatingchemicalcanopytagTypical suppliers
LEWA · Pulsafeeder · Blue-White. 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/chemical-injection-skid.json, or copy a ready-made instruction:
Add the Deck Twin "Chemical injection skid" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add chemical-injection-skid` (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 chemical-injection-skid` for its props, ranges and ports. Render <ChemicalInjectionSkid /> 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