Skip to main content

Worlds & moods

Eight worlds along an energy–valence continuum. The song decides which one you get — and how it performs.

How a song finds its world​

The analysis pass measures each track's mean energy and valence and lands it in a quadrant — calm/bright, driving/bright, driving/dark, calm/dark. Each quadrant is a base world, and splitting the quadrants by energy yields eight: every base has a variant that borrows its assets — same neighbourhood, different hour.

  • Timbre (the spectral centroid stored in the sidecar) nudges hues warmer or cooler inside the world.
  • MoodBlend mixes in the nearest boundary world's palette when a track sits between quadrants.
  • With the optional ml feature, a CLAP model votes zero-shot on the mood instead.

The eight worlds​

Each world contributes exactly one value to the chrome — its accent — while its sky, fog, and ground paint the backdrop. Arrangement is part of what a world is: how it lays out its ground props.

Ember Flats​

The dawn chorus — warm ambers over a violet plain. Calm and bright. Props gather in clumps separated by open ground, outcrops on a plain.

Velvet Circuit​

The neon surge — cyan over deep indigo and magenta. Driving and dark. Props arrange as a jittered city grid: blocks and streets.

Tide Gardens​

The night bloom — cool aqua over near-black water. Calm and dark. Props follow meandering tidal terraces, rows riding a slow wave.

Glass Expanse​

The glass runner — pale ice over violet. Props form concentric rings with crystal symmetry.

Cinder Reach​

Ember Flats, smoldering — driving, dark, restrained. Same clumped outcrops, burnt down to ember orange and ash.

Mirage Circuit​

Velvet Circuit bleached by daylight haze — driving, bright, restrained. The city grid under a washed, pale sky.

Abyss Terraces​

Tide Gardens at their stillest — calm, dark, quiet. The terraces sink toward the abyssal plain.

Dawn Expanse​

Glass Expanse at first light — calm, bright, hushed. Crystal rings under a pale rose sky.

How a world is furnished​

Worlds draw from the manifest-driven pack of 171 CC0 Poly Haven models (variants borrow their base quadrant's set), placed in three tiers:

TierTarget spanRole
Hero7 mThe landmarks — a handful per world
Prop2.5 mThe middle distance
Ground cover1 mMerged into a single vertex-tinted mesh for density
  • Placement holds a per-tier entity budget (15 heroes / 25 props / 27 cover seeds) and spends it across the mood's pool by weighted round-robin — a bigger pack means more variety, not more entities.
  • Every model is span-normalized from its native dimensions in the manifest (Poly Haven scans span 0.1–92 m) so nothing swallows the camera.
  • VisibilityRange culls distant props — LOD by distance.
  • With ml enabled, placement counts and the hero pick are weighted by the cosine between the track's audio embedding and each asset's text embedding — the world literally plants what sounds like the song.

Keep this world​

Keep this world pins a {mood, seed} pair into the track's sidecar: that song always returns to that world with that exact layout. Layouts are splitmix64-seeded, and Build a different world re-rolls the seed — a new arrangement of the same mood.

The transition engine​

The product's signature feel is temporal:

  • Materialize — a 0.8 s palette wash, then terrain and props rise over 1.3–2.4 s, staggered so the world settles on the first downbeat.
  • Song → song — a dual-stream equal-power crossfade (final min(6 s, 25%) window) scheduled to land on the incoming track's nearest section boundary.
  • Close moods — when consecutive tracks share a mood, the world morphs in place instead of rebuilding.

The performed world​

A world isn't a static diorama — it's staged against the song's structure:

  • Whole-song materialize — scatter in the intro, mediums in the verses, heroes rising on the chorus.
  • Waveform skyline — rim stelae trace the track's energy curve around the horizon.
  • Bass-displaced ground and per-prop bob and spin driven by the live signal and stem levels.
  • Section-aware Drift camera and a horizon world title, with the recipe tier's choreography shifting energy, motion, and palette washes per section.

📝 These docs are AI-generated on a best-effort basis and may not be 100% accurate. Found an issue? Please open a GitHub issue or edit this page directly to help improve the project.