Log inGet started
World

Cold Start

Branchmain
Commitcfc095f0fc

README.md

Cold Start: the main scene

The whole demo. One scene with player intent "none", an authored DemoCamera driven entirely by the preseed.director sequencer, and twelve parts that play back to back for 275 seconds. Entering play starts the film at t = 0. Each part builds its own content when the clock reaches it and tears that content down under a fade when the clock leaves.

The film is scored. A 192 BPM drum and bass set composed to the part grid plays from the first frame, and every part boundary lands on a barline of it, so the set's drops are the film's cuts. Lights, materials and in-scene action ride the score through an offline STFT analysis of the track. preseed/MUSIC.md carries the composition and the cue contract.

Timeline

Twelve parts, 275.0 s. Every start is a barline of the 192 BPM grid (one bar = 1.25 s).

#partstartlenbarshowcase
1COLDSTART0:00.025.0s0full frame graphic title sequence, strike cuts on the beat
2FRESH CUT0:25.022.5s2030k swaying grass blades, a mower cutting a live trail into the lawn
3SIMULATION0:47.525.0s3845k GPU compute particles morphing through curl noise attractors
4REVOLUTION1:12.522.5s58vaporwave plaza: palette shaders, banded pixel sun, VHS post stack
5CRAWLER1:35.022.5s76ferrofluid tentacle creature hauling itself through a crystal cave
6COLLAPSE1:57.522.5s94crane driven wrecking ball against a five storey brick and steel building
7CLOUDSURF2:20.025.0s112dawn cloud sea, ink silhouette rider carving a healing wake
8SNOWLINE2:45.020.0s132alpine ski run on a terrain clipmap, snow deformed live by compute
9FONTAINE3:05.022.5s148GPU SPH water show: 40 articulated nozzles and a 30 m crown geyser
10DISCHARGE3:27.522.5s166tesla coil in a high voltage hall, 16 pooled fractal arcs
11ASCENSION3:50.035.0s184volumetric cloud deck, a sunset in real time, stars, credits
12ENDCARD4:25.010.0s212ORIGOZERO closing card in the void, silent coda

Director.timeline() is this table as data, and director parts prints what is actually loaded. If the two disagree, the engine is right.

TIDES is out of the running order on this machine and not deleted. Entering it loses the render device every time on this host's GPU link, and a lost device ends the run rather than degrading the frame, so the film could never reach its own credits. preseed/tides/, parts/p5_tides.module and the tid_* shaders are all intact; the scene entrypoint carries the note and the put back line.

The cut contract

The director owns five things about a boundary, so no part has to police the eleven after it:

  • bars. A part declares bars and the director sets the letterbox from it before enter runs. The bars are a property of the film, so they survive a part whose enter fails.
  • resolutionScale. A part that cannot hold the frame rate at full raster declares the raster it wants. The scale mode is "present", so the delivered frame stays the viewport's own size, and the next boundary sets the next part's scale.
  • eviction. Every post pass that is not the engine's and not the film's own bloom and demo_fade is removed at the boundary, with a warning naming it. A part re-adds its own passes in enter every time and never relies on one surviving from an earlier part.
  • black. The outgoing part is at full black 0.15 s before the boundary and the incoming one fades up from black. Whatever a cut costs is spent on black.
  • prebuild. A part whose world area is somewhere else is built during the outgoing part's fade out. So build(ctx) spawns the part's own content in its own area and nothing else: no sky, no clear colour, no post pass, no light rig, no camera, no renderer global. Those belong in enter(ctx), which is always called at the boundary itself. Two consecutive parts sharing a centre are not prebuilt.

Structure

  • preseed/director.module master clock, part lifecycle, camera drive, fade, cut contract, music sync
  • preseed/director.toolbox the drive surface: status, parts, goto, seek, hold, rate, rebuild
  • preseed/music.module score playback plus the STFT band, beat and cue query API
  • preseed/score.module, preseed/synth.module, preseed/bake.module the composition, the nx synthesizer, the offline render and analysis
  • preseed/audio/ spectrum.bin and cues.bin: STFT bands, onset flux, the named cue track
  • preseed/shots.module eased camera shot evaluation in part local coordinates
  • preseed/fx.module the post stack, the tone curve, the demo fade and letterbox
  • preseed/geo.module, preseed/meshbuild.module runtime mesh and material helpers
  • preseed/volume.module the 3D texture raymarch used by rays, fire and clouds
  • preseed/surfacing.module gives a part's authored materials real surfaces at entry
  • preseed/captions.module the caption cards
  • preseed/parts/ one module per part
  • per part asset families: preseed/coldstart.module, mow*, vapor/, tendril/, collapse/, surf/, snow/, sph/, tesla/, asc/