Build ledger / Form 38-G

FIELD
GUIDE.

How a museum restoration story became a service pit, a drawing office, and one very loud first cylinder.

THE CONCEPT

Ironclad Works treats the browser as a working restoration ledger rather than a conventional museum brochure. The visitor enters through a letterboxed film frame, descends into five workshop bays, then reaches the test stand. The visual arc changes with the object: wet rust becomes exposed steel, red oxide becomes the dominant intervention colour, and olive drab arrives only when Hull 38 is mechanically complete. The story is fictional and deliberately framed around preservation, labour, provenance, and consequence. The machine is interpreted as evidence, never as an invitation to harm.

THE RESTORATION ARC

Each station in index.html owns an inline SVG cutaway. Shared geometry keeps the silhouette recognizable, while the layers change from corrosion cracks to open structural ribs, a highlighted drivetrain, primer coat, and final running condition. Annotation leaders, measurement notes, workshop dates, and separate parts data make the drawings feel used rather than decorative. CSS classes such as .rusted, .drivetrain, .primed, and .running shift the fill, stroke, and cutaway logic. The page grid behind every SVG continues the drawing-office motif at full width.

01RUST HULK02BARE STEEL03DRIVETRAIN04RED OXIDE05RUNNING

FILM, HEAT, AND STEEL

The film workflow starts with a GPT Image 2 still and normally sends that frame through Higgsfield to a five-second Kling 3.0 loop, stored locally beside its poster. Here hero.jpg is present but loop.mp4 is absent, so the hero uses the specified fallback: heroPush, scroll parallax, CSS smoke drift, flare and reticle motion stage the still without a failed request. Reduced motion freezes all of it. Every cutaway, map, ledger, gauge, spark and smoke ring elsewhere remains code-generated.

THE MAGNETIC LAMP

setupInspectionLamp() maps pointer position and arrow keys to --inspect-x and --inspect-y. A radial mask exposes a second SVG of hidden seams only beneath the virtual lamp. The toggle announces its pressed state and remains keyboard-operable.

THE FIRST CYLINDER

The finale is a working state machine inside the start-button listener. Timed stages update primer pressure, starter RPM, the cylinder catch, and stable idle. If the visitor explicitly enables the sound switch, starterSound() creates a rising sawtooth whine, catchSound() fires a filtered noise transient, and idleSound() frequency-modulates a low oscillator into a rough twelve-cylinder pulse. Web Audio is never created without consent. The catch also triggers one brief full-panel impact, page shake, warmer light, and five staggered CSS smoke rings. Pressing again stops the engine and clears its state.

PALETTE AND TYPE

RUST
#9C3F2C
OXIDE
#713128
OLIVE
#48513A
STEEL
#72766E
LAMP
#F0CE86

Archivo Black supplies compressed mass for the display language; Chivo Mono handles every part number, measurement, control, and paragraph. Both are self-hosted. The contrast comes from scale and material colour rather than extra font families. Sharp corners, fine rules, double-line forms, chalky bone text, and a fixed grain layer keep the page inside one workshop vocabulary.

FILE MAP

index.html
semantic bays, inline cutaways, workshop records
styles.css
material tokens, responsive staging, catch impact
main.js
arc telemetry, sparks, audio and engine state

REPRODUCE THIS

Prompt an AI agent to build a cinematic museum workshop around one named restoration object. Give it a material-led palette, one display face and one technical mono, and demand a single narrative mechanism that changes through five states. Ask for inline SVG cutaways with real annotations, one consent-gated synthesized sound event, a reduced-motion fallback, and screenshot checks at phone, tablet, and desktop widths. Supply a hero still with enough negative space for type, then require the agent to tune the overlays against the actual image rather than inventing the composition blindly.

Return to the service pit