Skip to content

Brass Governor

A Watt centrifugal governor in polished brass: the balls fly out as it speeds up and fall back as it slows. Loops perfectly.

3D object, V2 Objects3DSeamless loop, verified258 lines of codev1.0.0

In Machines & clockwork, Craft & heritage

Next: Music BoxSurprise me

Brass Governor preview
Starting live preview…
00:00:00:00 / 00:00:00:01

Live, running the real source at reduced resolution.

Your current settings go with it. Combine several clips and hand them over together from your sequence.

Effect controls

Presets

6
0.16

0.05 is a steady engine, 0.22 a hunting one.

The preview runs the same code your AI receives. These settings travel with the hand-off.

Info

What it is

A steam-age speed governor on a cast-iron pedestal, in a dark workshop: a vertical spindle turns, two heavy brass balls on arms fly outwards as the speed swells and fall back as it ebbs, and through a pair of links they lift and lower a sleeve on the spindle, which a slotted lever carries to a counterweight. A spoked flywheel turns beside it. The mechanism is the real one: the arms obey the governor equation and the sleeve's height follows from the lengths of the links. Choose the metal (brass, copper, bronze or steel), the colour of the iron, how many turns it makes per loop, and how strongly the speed swells and ebbs.

Reuse it in your own idea

  • Engineering explainer: Brass, a swelling engine, with a caption on negative feedback.
  • Steampunk title: Dark bronze, slow, behind a Victorian-style title.
  • Calm loop: Copper, steady, camera drift on.

Which part is reusable

src/brass-governor.js is the ingredient your AI reuses. demo.js is only the example scene around it, and uses chrome-material only for the demo.

Good to know

  • The speed is a prescribed swell and ebb: the governor does not react to a load.
  • The pedestal hides the gearing between the flywheel and the spindle.

Technical details

Technical details
Implementation
Three.js 0.185.1 (WebGL) · ES module src/brass-governor.js
Exports
  • createBrassGovernor({ finish?, iron?, turns?, swing? }) => { group, height, turns, update(time, loopSeconds, { swing? }), dispose() }
  • armAngle(speed) => radians
  • sleeveHeight(theta) => y
  • FINISHES: { brass, copper, bronze, steel }
Dependencies (exact)
  • three@0.185.1 (source) — Renderer, geometry and physical metals.
  • chrome-material@1.1.0 (demo) — Studio environment light, backdrop, floor and contact shadow.
  • apw-runtime@1.0.0 (demo) — Demo harness.
How it fits a scene

Coordinates: 1 unit = 10 cm. The machine is 5.5 tall and 7.4 wide at the plinth; the spindle is on the origin and turns about y.

Lighting: Physical metals: needs scene.environment; a shadow-casting key light draws the arms' shadows on the pedestal.

Timing: update(time, loopSeconds) is a pure function of time; frames render in any order.

Output
1080×1080, 30 fps, 12 s · procedural (computed from the frame number) · seamless loop — The speed swells and ebbs as a sum of two whole-cycle harmonics; the turned angle is its integral, which over the loop is a whole number of turns (the harmonics integrate to zero), so the arms, the sleeve, the lever and the flywheel return exactly and the last frame meets the first.
Tested
Rendered 360 frames on 2026-10-06 in Chrome 154.0.8037.97 headless on Linux 7.0.0-38-generic (x64), Node 22.14.0 (WebGL 2 via SwiftShader (software)). Same frame twice from fresh pages: identical. Loop: Frame 0 vs end state (progress 1): mean |Δ| 0.0000, max |Δ| 0 of 255.
Performance
About sixty meshes built once; only the arms, links, sleeve and lever are reposed each frame. Smooth at 1080p on laptop GPUs. Software WebGL (no GPU) renders slowly.
Export a video yourself
Download the source, then in the folder: npm install npm run render -- brass-governor/1.0.0 --out my-video.mp4Needs Node 18+, ffmpeg and Chrome/Chromium. Add --params my-settings.json (from Copy settings) for your own settings.
Version
1.0.0 · sha256:43891724f5f52ea3…
Files
License
MIT. Copyright (c) 2026 AI Pixel Wizard. Released under the MIT License. See LICENSE in this folder. Third-party: three.js 0.185.1 (MIT). License details
Provenance
Adapted from the owner's threejs-sketches/mechanical-kinetic/centrifugal-governor (MIT), rebuilt for AI Pixel Wizard in October 2026 as a Watt governor with the real linkage (governor equation, link geometry), a cast-iron pedestal, a slotted lever with a counterweight, a flywheel, studio light and shadows, an exact loop and the frame/time contract.
BinMore like this

Music Box

3D object3DSeamless loop12 seconds

Gyroscope

3D object3DSeamless loop16 seconds

Astrolabe

3D object3DSeamless loop16 seconds

Hourglass

3D object3DSeamless loop16 seconds