Window (A60 / H120 / blast)
Fixed offshore window in a short lined wall stub with a real hole. Square outer frame filling the hole, rounded-corner lights, exterior bolting flange, double glazing (laminated panes for the blast type) with a spacer, EPDM gaskets both faces, bolted inside clamping ring, interior window board and exterior drip sill, rating plate and tag. Mullions split it into panes lights; sunshade adds an external louvred eyebrow. +Z is the outside face. Set wall: none to drop it into a room wall; windowOpening() gives the hole.
Installation
Copies interiors/window.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 { Window } from './components/deck-twin/interiors/window'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<Window />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
kind | "fixed" | "blast" | null | |
fireRating | "A60" | "H120" | "none" | null | |
width | number (m) | null | 0.3 – 4 |
height | number (m) | null | 0.3 – 2.4 |
sill | number (m) | null | 0.1 – 2.5 |
panes | number | null | 1 – 6 |
sunshade | boolean | null | |
wall | "stub" | "none" | null | |
wallThickness | number (m) | null | 0.06 – 0.4 |
tag | string | null | |
...group | position, rotation, scale… |
P&ID
Plan view: the wall is interrupted and parallel thin lines across the opening show the glazing; sill height and fire / blast rating are on the window schedule.
A gap with an arc is a door; a gap with thin parallel lines is a window.
kindfireRatingwidthheightsillpanessunshadetagTypical suppliers
Bohamet · TeamTec. 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/window.json, or copy a ready-made instruction:
Add the Deck Twin "Window (A60 / H120 / blast)" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add window` (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 window` for its props, ranges and ports. Render <Window /> 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