place
The archipelago of *Pastel Astral Dream*: seven confection islands over a sea of poured cream, in their act I state — hard, matte, dry, dusted with sugar frost, and mirroring. Geometry, materials, the sea and everything that lives on the islands.
place
The archipelago of Pastel Astral Dream: seven confection islands over a sea of poured cream, in their act I state — hard, matte, dry, dusted with sugar frost, and mirroring. Geometry, materials, the sea and everything that lives on the islands.
Serves shots 1 (the frost macro), 2 (the establishing wide), 3 (the skim and its bow wave), 4 (the cliff crane and its crack), 8 (under the cream) and 12 (the drained shallows).
Exports
M.build()— creates every entity. Idempotent; guarded onpad_place_rootbeing alive. SetsM.anchorswhether or not it goes on to build, so the camera slice can ask for a station regardless of who ran first.M.rebuild()— tears the whole slice down (ocean included) and builds it again.M.attach(film)— registers the"place"animator.M.setSeaLevel(y)— moves the cream surface, its bed and the sprinkles riding it.meltmay call this; this slice already drives it offfilm.seaDrop(t), and the two agree because they read the same number.M.anchors.frostRidge/M.anchors.crack— exact world points, walked off the islands' own surfaces, for the camera slice to stand at.M.geom/M.mats/M.isles/M.sea/M.props— the submodules.
What is here, and what moves
| entity | what |
|---|---|
pad_place_mesa + _strata_1..3 | the 340 m marshmallow mesa and its wafer strata |
pad_place_cliffs, _cliff_peak_1..11, _cliff_inner_1..4 | 400 m of meringue whipped into peaks |
pad_place_glacier_1..3 | the ice-cream glacier: pistachio under strawberry under vanilla, sheared down toward its snout |
pad_place_shelf | the wafer shelf the glacier calves over |
pad_place_isleD/E/F/G (+ _strata, _peak_*) | the four background islands |
pad_place_sea | the cream sea — a spectral ocean, recoloured and calmed almost to a mirror |
pad_place_sea_bed | the cream 1.5 m under the surface. Rides the surface, never strands. |
pad_place_floor | the wafer floor shot 12 uncovers |
pad_place_wake_1..6 | the bow wave shot 3 sheds |
pad_place_float_* / pad_place_strand_* | sprinkles, bobbing and stranded |
pad_place_puff_* | marshmallow puffs around the island feet |
pad_place_frost_ridge + _frost_clump_1..26 | the 4 cm ridge shot 1 opens on, furred with frost |
pad_place_glaze_panel, pad_place_crack | the candy glaze on the cliff face and the fracture that runs up it |
Everything that moves here is a pure function of film time t: the sea falls as
film.seaDrop(t) says, the floating sprinkles bob and turn on it, a bow wave sheds
from the skim camera at fixed film times and runs out across the mirror, the frost
fibres shiver (hardest as a grain of sugar-snow goes past, twice in shot 1), the
crack runs up the glaze between t 22.6 and 28.6, and the cream's own emission ramps
with film.uplight(t). Applying the same t twice leaves the world bit-identical —
measured: two captures of the frost macro at t = 1.90 differ by 0.0.
What other slices drive on this
- melt — sags
pad_place_mesa, and ramps gloss/wetness by writingroughness,clearcoatandsubsurface_radiuson the materialsmats.NAMESlists. Usemats.ref("marshmallow")etc. rather than typing the identity. - look — every light, the grade, the exposure. This slice adds none. It DOES
capture the sky into the environment's sky slot (
environment.captureSky+ensureSkyFallback), because a reflective surface no probe covers reflects black and the sea is the largest reflective surface in the film. - camera — frames
pad_place_frost_ridgefor shot 1 andpad_place_crackfor shot 4;M.anchorscarries both as exact world points.
Notes
- Geometry is procedural and RUNTIME —
renderer.mesh.create, no mesh assets — sobuild()re-makes it on every scene load and there is nothing to keep in sync. Every wobble comes fromgeom.noise2, which is a pure function of its arguments, so the archipelago is identical on every build. geom.islandis the one primitive every land mass is made of: a closed surface of revolution over a footprint that need not be a circle, with a Catmull-Rom vertical profile, a radius wobble and an optional world-space warp.- The materials all bind
@builtin::shaders.pbr, which carries subsurface, sheen, transmission and clearcoat on one shader — marshmallow reads as translucent matter throughsubsurface_color+thickness, and the sugar frost is thesheenlobe. absorptionColoron the ocean is an extinction coefficient, not a tint. The brighter a channel is, the more of it the body of the liquid eats. A cream sea wants a very dark absorption; the preset values (#322c29) are already dark for that reason and a "cream-coloured" one renders black.ocean:configure()reports values it does not apply. The config table comes back holding the new colours while the surface keeps rendering the old ones (#11266). Everything this slice sets goes throughOcean.attachon a freshly spawned entity, which is whyrebuild()tears the ocean down by name first.- A material write fans out to an
onAssetReloadcallback on every script component holding that material. Writing unchanged values across twenty materials put this engine into a watchdog cascade that ended in SIGILL (#10525), somats.ensurewrites only what differs and the cream's emission ramp is quantised to 32 steps.
Scoped to this part · feeds back into the world's score.