Et messing-planetarium bygget af ét Python-script i Blender, som drejer live i browseren

Client
GrN.dk — demohylde (demo.grn.dk)
Sector
3D på nettet / Blender-pipeline
Periode
august 2026

The Orrery (demo.grn.dk)

At a glance

The Orrery er et messing-planetarium modelleret, tekstureret, rigget og animeret i Blender 4.5, eksporteret som glTF og afspillet live med three.js: et tandhjulstræk, der griber ind i hinanden under dækket, fire planeter og deres måner i heltalsbaner, en lysende sol med bloom, wireframe- og hastighedsknapper, træk for at kredse. Nedenunder den samme scene renderet som et sømløst Cycles-drejebordsloop — og .blend-filen, .glb-filen og det ene Python-script, der bygger det hele fra en tom scene.

Ét Python-script bygger modellen, animationen, glTF-eksporten og Cycles-renderingen — intet er modelleret i hånden
134.944 trekanter og 15 animationsklip i en glTF på 3,6 MB, indlæst på cirka 2,6 s; et Cycles-drejebord på 192 frames ved ~9 s pr. frame på en 12-kernet CPU
Kilden følger med demoen: .blend-filen, .glb-filen og build_orrery.py

The challenge

Kortet bad om en »mind-blowing Blender-demo«. Den interessante begrænsning var, at der ikke findes Blender på webserveren og ingen GPU nogen steder i opsætningen: den eneste maskine, der kunne køre det, var en lille kontorkasse med en 12-kernet CPU og en integreret AMD-grafikchip, headless. Og et 3D-pragtstykke, der kun findes som renderet video, beviser mindre end et, man kan tage fat i og dreje — så værket skulle findes to gange, som film og som levende scene, uden at blive bygget to gange.

The solution

Hele modellen er kode. build_orrery.py styrer Blenders Python-API fra en tom scene: primitiver og bevels til messingen, tandhjul skåret med bmesh, så tænderne faktisk griber, Principled-materialer, empties som drejepunkter for armene, lineære keyframes for heltalsforhold mellem banerne og en compositor-bloom til solen. Samme script eksporterer glTF’en med animation på sceneniveau og sætter Cycles-drejebordet i gang — 192 frames på CPU, cirka ni sekunder pr. frame i 720p.

Websiden hoster selv three.js med GLTFLoader, bloom og AgX-tonemapping, fletter de animationsklip pr. objekt, som eksporten udsender, til én tidslinje og holder lyset fornuftigt (fysiske spotlys brænder hurtigt ud). Siden leverer kilden ved siden af scenen: enhver kan åbne .blend-filen, læse scriptet og bygge planetariet igen på sin egen maskine.

The results

Et messingmekanik på 135.000 trekanter, der kører i en browserfane fra en glTF på 3,6 MB, indlæst på under tre sekunder, med Cycles-filmen nedenunder til de maskiner, der ikke kan køre WebGL. Den pipeline, det fastlagde — byg med bpy på den lille kasse, eksportér til glTF, host three.js selv — blev opskriften på brillekonfiguratoren, der fulgte efter, og er det, »Blender på nettet« nu betyder på denne hylde.