AI CSS Animations

Blueprint Technical Drawing

A cyanotype-blue engineering sheet that drafts itself: centerlines, compass-swept gears, hatching and dimension lines appear in drafting order, then a planetary gear train turns with true ratios and numbered callouts.

Written and rendered by AI CSS Animations Oct 12, 2026

Type
prompt
Made with
Claude Opus 5.5 in Claude Code
Built in
SVG
Topics
Line art · Diagrams · Explainer
What Claude made from the prompt below in Claude Code: one HTML file rendered frame by frame to video. Silent preview.

About this style

Blueprints take their name and color from the cyanotype process, a 19th-century photographic print in which exposed paper turns Prussian blue and the drawn lines stay white; for decades it was the cheap way to copy engineering and architectural drawings. The look carries drafting conventions with it: a hierarchy of line types, dimension lines with arrowheads, numbered callouts and a title block. Designers still borrow it to signal engineering credibility and to show exactly how something works.

The prompt

<inputs>
You're making a blueprint-style technical animation. I may supply any of these; if I don't give you something, use the default and don't ask.
- Mechanism: planetary gear reducer, module 3; sun 24 teeth, three 18-tooth planets, ring 60; ring fixed, sun in, carrier out at 3.5 : 1.
- Maker and part: Halvard Instruments, PGR-40 (fictional).
- Callouts: housing, ring gear, planet gear, sun gear, carrier.
- Length: 10 seconds.
</inputs>

<direction>
Cyanotype sheet: paper #103F7F darkening to #0A2D5E at the corners, linework #F1F5FF. Grid: minor lines every 24px at 7% white, major every 120px at 14%. Mottle the paper with low-frequency blotches (±4% brightness) and fine grain.
Line hierarchy, never one weight: visible outlines 2.5px; hidden edges 1.5px dashed 9/5; centerlines 1px long-dash-dot; dimension and extension lines 1px, extension lines with a 4px gap at the part and 8px overrun; solid arrowheads 14px long at 3:1. Section cuts get 45° hatching at 8px pitch. Lay a 0.5px blur under each crisp stroke so it reads printed, not glowing.
Draw at 2.5px per mm. Type: "IBM Plex Sans Condensed" 500, uppercase, tracking 0.06em, for notes and the title block; "IBM Plex Mono" 20px for dimension values, which must agree with the geometry.
Sheet furniture: double border, zone letters A–D and numbers 1–6 in the margin, title block bottom-right (maker, part, drawing HI-0420-A, scale 1:1, units mm).
Motion follows drafting order, construction before form. Centerlines shoot out from the center (0.3s, easeOutQuad). Circles sweep like a compass from 12 o'clock (0.4–0.6s, easeInOutSine). Dimension lines grow from their midpoint to both arrows; values then type on at 30ms per character. Gears mesh: derive every angle from t and the tooth counts. The camera drifts like a reader's eye, never past 6% zoom.
Authentic means real drafting conventions a machinist could read; cheap means a glowing sci-fi hologram.
Banned: neon glow, HUD rings, 3D wireframes, colored fills, gradients beyond the paper, handwriting fonts, numbers that disagree with the drawing.
</direction>

<structure>
- 0–1.0s: border, zone marks and title block draw; the grid fades up.
- 1.0–2.2s: centerlines and construction circles.
- 2.2–4.2s: ring, planets, sun and carrier draw in that order; the housing gets a half-section hatch.
- 4.2–5.8s: dimensions Ø180 (ring pitch), Ø72 (sun pitch) and 63 (center distance); values type on.
- 5.8–7.8s: an input arrow lands on the sun; the train turns, easing to a stop by 7.8s; the carrier arrow and "i = 3.5 : 1" appear.
- 7.8–9.0s: balloons 1–5 with leaders; parts-list rows type into the title block.
- 9.0–10s: hold.
Other lengths: scale the beats proportionally and end on at least 1s of hold.
</structure>

<build>
One self-contained index.html (inline CSS and JS; Google Fonts via <link> are fine), a 1920×1080 (16:9) stage scaled to fit the window, built for 60fps. Draw in SVG; three.js isn't needed.
window.seek(t) (t in seconds) sets every visual from t alone, clamping past the end to the last frame. No CSS transitions or CSS animations, no setTimeout/setInterval, no state carried between frames. Mottling and grain come from a fixed-seed PRNG (anything that changes per frame seeds from the frame number); never Math.random.
With no ?render in the URL, call seek from requestAnimationFrame so it plays in a browser; with ?render, don't start that loop.
</build>

<check>
Before showing me, step through one frame per second (0–10s) and look at each. Fix overlaps, clipped or cramped text and anything off-style: teeth meshing without overlap, arrowheads touching extension lines, every dimension matching the geometry, leaders never crossing. Confirm the final frame holds.
</check>

Ours, and free to use under CC0: copy it, change it, ship it. No credit needed.

Similar prompts