Skip to content

Brass Armillary Sphere

An engraved brass armillary sphere, the astronomers' model of the sky, slowly turning on its stand. Loops perfectly.

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

In Science & maths, Machines & clockwork, Space & cosmos, Craft & heritage

Next: AstrolabeSurprise me

Brass Armillary Sphere 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

38.5

Degrees: the polar axis is set this high above the horizon, as for a place on Earth.

1

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

Info

What it is

A polished armillary sphere: nested rings for the celestial equator, tropics, polar circles and colures, a wide ecliptic band engraved with its degrees, a small enamel Earth at the centre and a gold Sun bead travelling the ecliptic, all held in an engraved meridian ring and horizon ring on a turned stand. The sky turns about its tilted axis while the camera drifts round it, and the rings cast a lattice of shadows on the floor. Choose the metal, the latitude the axis is set to, how many turns per loop, the Earth's finish and the backdrop colour.

Reuse it in your own idea

  • Science or history intro: the brass preset with a title over the top third of the frame.
  • Luxury backdrop: gold on black, camera drift on, behind a product name.
  • In your own scene: add the group, scale it, and drive setAngles from anything (scroll, a clock).

Which part is reusable

src/armillary-sphere.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

  • A decorative model: the rings and the Sun's motion follow the real geometry (obliquity, latitude), but it does not show real dates or star positions.
  • Engraved numerals use the system serif font.

Technical details

Technical details
Implementation
Three.js 0.185.1 (WebGL) · ES module src/armillary-sphere.js
Exports
  • createArmillarySphere({ metal?, latitude?, globe?, anisotropy? }) => { group, setProgress(progress, { turns? }), setAngles({ sky, sun, earth }), bounds, dispose() }
  • METALS: { brass, gold, silver, bronze }
Dependencies (exact)
  • three@0.185.1 (source) — Renderer, geometry and physical materials.
  • chrome-material@1.1.0 (demo) — Studio environment light, backdrop and contact shadow.
  • apw-runtime@1.0.0 (demo) — Demo harness.
How it fits a scene

Coordinates: 1 unit = the radius of the celestial rings; the horizon ring reaches 1.42 out and the base stands on y = −2. Scale the group to fit your scene.

Lighting: Physical metal: needs an environment map (scene.environment) to look like metal; a shadow-casting key light shows off the ring shadows.

Timing: setProgress(progress) is a pure function of progress; frames render in any order.

Output
1080×1080, 30 fps, 12 s · procedural (computed from the frame number) · seamless loop — The sky, the Sun bead and the Earth turn whole turns per loop and the camera drift is a sine of the loop progress, so the last frame meets the first.
Tested
Rendered 360 frames on 2026-10-05 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 60 meshes and six canvas textures made once; nothing is rebuilt per frame. Smooth at 1080p on laptop GPUs. Shadows from many thin rings are the main cost; lower the shadow map size on slow devices. Software WebGL (no GPU) renders slowly.
Export a video yourself
Download the source, then in the folder: npm install npm run render -- armillary-sphere/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:9c6ad08ee47b52d7…
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/objects-scenes/astrolabe-align (MIT), rebuilt for AI Pixel Wizard in October 2026 as a true armillary sphere: celestial rings in their real geometry, engraved scales, an enamel Earth and Sun bead, a turned stand, a seamless loop and the frame/time contract.
BinMore like this

Astrolabe

3D object3DSeamless loop16 seconds

Gyroscope

3D object3DSeamless loop16 seconds

Music Box

3D object3DSeamless loop12 seconds