Oily-water separator (CPI)
Corrugated plate interceptor in a lined reinforced-concrete or stiffened steel basin. Inlet chamber with sludge draw-off, perforated distribution baffle, 45° corrugated plate packs in stainless frames (one per 60 m³/h), oil layer gathering at a rotatable slotted-pipe skimmer, underflow baffle and adjustable outlet weir into the clean-water chamber. Checker-plate covers with vents and a level transmitter leave the plate-pack bay open; walkway and stair along one wall. Ports: inlet, treated-water outlet and skimmed-oil outlet.
Installation
Copies onshore/oily-water-separator.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 { OilyWaterSeparator } from './components/deck-twin/onshore/oily-water-separator'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<OilyWaterSeparator />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
flow | number (m³/h) | null | 30 – 360 |
construction | "concrete" | "steel" | null | |
inletNps | number (NPS, in) | null | |
oilNps | number (NPS, in) | null | |
rating | 150 | 300 | 600 | 900 | 1500 | 2500 | null | |
covers | boolean | null | |
tag | string | null | |
...group | position, rotation, scale… |
P&ID
An open rectangular basin (no top line) with inclined parallel plates drawn as slanted lines in the middle, an inlet chamber with a baffle, an oil skimmer or weir to the oil outlet, a sludge draw-off at the bottom and the clean water outlet over a weir at the far end.
Slanted plate pack in an open basin = CPI / plate interceptor. A closed horizontal vessel with weirs is a separator; produced water offshore uses hydrocyclones and degassers instead.
flowconstructioninletNpsoilNpsratingcoverstagFor agents
Machine-readable entry with props, ranges, defaults and ports:
Or fetch /r/oily-water-separator.json, or copy a ready-made instruction:
Add the Deck Twin "Oily-water separator (CPI)" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add oily-water-separator` (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 oily-water-separator` for its props, ranges and ports. Render <OilyWaterSeparator /> 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