SERIES ARTICLE ·

Gravitas – The Forge of Gravity

Simon composed a song for me to use in Operus. It became a journey through dust, gravity, plasma and light lasting just over two minutes. For me, Gravitas is the biggest leap yet in the Operus Demos: it brings together what I have learned from the earlier experiments.

CONCEPT · IMPLEMENTATIONOliver Röschner
READING TIME10 minutes
AREATECHNOLOGY
Original frame from the Gravitas demo: the black hole with a glowing disk, erupting sparks and luminous jets in the finale.
DEMO SCREENSHOT | OPERUS

I am still ridiculously excited about this demo. I know the scenes, the transitions and the moment the disk erupts. Yet I want to start it all over again. To me, the first Operus Demos and what is happening in the browser now are worlds apart.

This time, the music was there from the start: just over two minutes of chanting, deep bass, quiet passages and enormous drops. I did not build any instruments or compose music in the browser for this demo. Simon G.’s finished recording is its musical foundation. My job was to build a world that could do that song justice.

Original frame from the Gravitas demo: the black hole with a glowing disk, erupting sparks and luminous jets in the finale. INTERACTIVE DEMO Start playback with sound inside the demo
Gravitas · 2:22 minutes · Music by Simon G. Choose “Demo starten” to start with sound; Space to pause. Full screen via F or ⛶ works only on a PC or Mac, not on mobile devices such as the iPhone.

A finished song changes the whole process

In the earlier demos, I generated the music myself as well. Instruments, rhythm and visuals came together in the browser. That let me place a sound exactly where I needed a visual accent. In the Gravitas demo, the cues were already in the recording. I had to identify them, understand their progression and shape the visuals around them.

At first, that sounds like less work on the audio. For the visual performance, though, it opens up a different scale. The song has time to build tension, leave room to breathe and return later with full force. One beautiful movement on the first bass hit is nowhere near enough. The second drop needs its own idea too. And the finale has to grow out of what has already happened.

That is where I really feel the difference from the early experiments. Here, I get excited about whole passages: how a camera move is prepared, how the material changes and how a pause gives the next hit its weight. Simon’s song holds that development together.

A black hole grows out of dust

At first, there is almost nothing. Dust becomes visible in the darkness, the space feels vast and the camera slowly drifts into it. A point appears in the centre where light is missing. The matter around it begins to bend. With the first heavy entrance, a disk flares up and the dust starts to orbit.

The black hole remains the centre of the entire demo. The camera approaches it, pulls back, flies over the disk and later looks up from underneath. That lets you follow the same world as it grows larger and more powerful. I especially like the sense of scale in the quiet passage after the first drop: only during the long retreat do the spiral arms of expelled matter become apparent.

At one point, I also considered OPERUS lettering as the main motif. That would have taken the cosmic opening in a completely different direction. Replacing the hole with a new pulsar would have made the motif I had carefully built up disappear precisely on the drop. So the hole stays. The chant already makes the connection to Operus.

After the first drop, the camera pulls back. The spiral arms give the black hole a new sense of scale. Up close, only part of this world was visible.

Original frame from the Gravitas demo: a black hole with a luminous disk and jets, surrounded by sweeping spiral arms of dust and sparks.
Original frame from the Gravitas demo: a distant view of the spiral arms and jets.

The hit needs the silence before it

Just before the first major eruption, the deep bass disappears. Rotation stops, the plasma hangs in space and the colour drains almost completely from the image. Finally, everything contracts into one bright point. Then comes darkness.

What bursts out afterwards feels so huge partly because so much has been taken away first. A shock ring sweeps across the image, a pressure wave runs over the disk, sparks are thrown out and the camera is hurled back from its close position.

Afterwards, the space opens up. The camera’s retreat gives the music room to breathe and reveals the scale of the structure. During the second drop, the camera skims the glowing disk, flying inward in one continuous spiral. The waves now pass underneath it. Up close, the same place suddenly feels completely different.

The music gets a score for the visuals

With generated music, the demo already knew when an instrument would play: it had triggered the sound itself. Simon’s recording needs a different approach. The audio file is analysed in advance to produce a score containing individual beats, bars, accents and section changes. It also includes curves for low and high frequencies and stereo width.

Tracking each beat individually was important. The recording does not maintain exactly the same tempo throughout. A fixed grid would gradually drift away from the audible cues. The measured timestamps give the visual direction a more reliable foundation.

A short extract from score.js shows how a measured event becomes a visual impulse. The search finds the last matching entry before the current song time. Its strength then decays exponentially.

score.js · An impulse after a hit javascript
function pulse(list, t, decay) {
  const i = lastAtOrBefore(list, t, (o) => o[0]);
  if (i < 0) return 0;
  const [at, strength] = list[i];
  return strength * Math.exp(-(t - at) / decay);
}

A short decay produces a sharp jolt; a longer one lets the movement linger. Different musical features take on different roles in the image.

In the musicIn the visuals
Deep bassAttraction, pressure and the weight of matter
Kick and strong accentsShock waves, bursts of sparks and camera jolts
High frequenciesGlints, sparks and light streaks
Wide musical space during the breakA wide viewing angle and a retreat to a distant view
Sub-bass dropping outThe disk freezes and matter floats

When glowing plasma becomes crystal

My favourite transformation comes later. After the fast flight, the disk freezes for a second time. The camera slows into a gentle glide and the light turns cold and blue. Then the bass returns in individual steps. With each hit, crystallisation advances a little farther out from the dark centre.

The first bright facets looked more like tiles or a disco ball. That was too uniform and too cheerful for this scene. The finished version keeps the surfaces dark and translucent. The frozen plasma is still underneath. Light sits mainly along the fracture edges and changes with the viewing angle. You see a transformed disk whose origin is still recognisable.

In the finale, the camera descends below the disk. The curved light arches over the shadow like a dome, with the jets standing as pillars of light. That is where this act gets its name: Cathedral. Later, the camera rises back through the plane, movement gathers pace and the rays grow stronger. Through all that force, the shape still has to remain readable. That is why the light and bloom are dialled back again as the sequence continues.

In the finale, the crystallised shell shatters. The disk ignites again, sparks are thrown out and the jets flare up. The world that has taken shape reaches its climax.

Original frame from the Gravitas demo: the black hole with a glowing disk, erupting sparks and luminous jets in the finale.
Original frame from the finale of the Gravitas demo.

Picture and sound need the same beat

Over this length, the demo has to stay in sync with the song even after a pause. Its time therefore follows the audio output. A second, independent clock for the visuals would introduce another potential source of error. Playback also accounts for the output latency reported by the browser, for example when using headphones.

audio.js · Audible time javascript
export function audibleTime(ctx) {
  if (!ctx) return 0;
  const latency = (ctx.outputLatency || 0) + (ctx.baseLatency || 0);
  return ctx.currentTime - latency;
}

From that time, the director determines which act is playing, where the camera is and how far a wave has travelled across the disk. Many states are calculated directly from the song time. That helps during development too: a particular moment can be revisited and refined precisely.

The computational load is still substantial. Dust, sparks, debris and curved light paths have to be calculated for every frame. The dust therefore moves on the graphics card. Shaders are prepared in advance, and the resolution can adapt to the available performance. That makes room for the things that make the leap visible: spatial depth, detailed materials and long camera moves.

The ending still belongs to this world

After the last major entrance, the disk slows. Gold turns to red, the jets go out and the last sparks drift away. The camera pulls far back. In the end, the black hole is once again a small dark point in the dusty sky. The world that emerged at the beginning cools before our eyes.

That return is what makes the demo feel complete to me. A lot changes across the ten acts, but the beginning and ending belong together. The song has its final decay, and the image gets time to fade with it.

When I start Gravitas straight after the first demos, I can hardly believe how far I have come.

For me, something new starts here

I needed those first experiments to get here. With the Particle Wizard, I learned how movement emerges from many small parts. Event Horizon was about curved light paths. Later came material appearance, reflective surfaces, lighting and more elaborate choreography. In Gravitas, those lessons have to work together across an entire song, with a progression that holds together right to the end.

And that is exactly what excites me so much. The demo is longer, the images have more depth and the transitions give the whole piece a coherence I had not achieved in the earlier attempts. To me, it really does feel like another level.

Thank you, Simon, for the song. It gave this demo its foundation and rhythm, and the reason to bring everything I had learned together.

Explore all Operus DemosThe experiments that Gravitas grew out of, and further developments in the series. THE SERIES