Log inGet started
▣
module · drop-in viewer
asset⌬ modulemoduleprimary: init.luau·originates fromworld db2c16ac-a…

asc_clouds

Controls the cloud layer the camera climbs through and then glides out over: the density field, its self-shadowed lighting, and the sunset palette it is lit with.

byzero-proxy @ DESKTOP-DB3UJOJ·posted 3mo ago
What it does

asc_clouds — ASCENSION: the volumetric cumulus deck

Controls the cloud layer the camera climbs through and then glides out over: the density field, its self-shadowed lighting, and the sunset palette it is lit with.

Owns

  • CLOUD_WGSL — the fill compute shader that bakes a 144×40×144 rgba16f volume: cumulus profile (flat base, noise-eroded billowy tops), a wind offset, the ragged sun-side clearing, and two density taps toward the sun for self-shadowing.
  • The fill-uniform contract. Both sides live in this file — the WGSL that reads U[0..15] and the Lua that packs it — so the mapping can never drift between two places.
  • The palette: duskMix, the lit / SHADOW_COLOR / NIGHT_LIT colours, and the ±8 % Music.level() brightness pulse.
  • The raymarch parameters passed to Vol.frame (AABB, step size, gains).
  • The "asc" volume key, and therefore the whole spawn / fill / frame / destroy lifecycle.

Reads from the orchestrator

argumentfromuse
sun.elevasc_skyduskMix — the golden → rose shift
sun.nightMixasc_skynight blend + emission falloff
sun.dirasc_skyfill uniform U[1..3], the lighting direction
cam.pos / cam.rot / cam.fovasc_shotsthe raymarch's inverse view-projection

The camera dependency is why this aspect runs after asc_shots every frame.

Boundaries

  • preseed.volume registers the texture, both uniform buffers and the fill shader under the single key "asc". Exactly one module may own that key — this one.
  • Vol.fill re-bakes all 829 440 voxels every frame (36×10×36 workgroups). It is the dominant GPU cost of the part.
  • The volume grid is stretched over an 840×34×520 world AABB, so voxels are ≈5.8 × 0.85 × 3.6 units — very anisotropic and coarse in XZ.

Interface

What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.

conforms to

zero/source-extract/v2

preseed/asc/asc_clouds.module — ASCENSION: the volumetric cumulus deck. Owns the fill compute shader that bakes the 144x40x144 density+colour volume, the raymarch parameters that composite it, and the sunset palette the deck is lit with. Both sides of the fill-uniform contract — the WGSL that reads `U[]` and the Lua that packs it — live in this one file. Crossing in from the orchestrator: the sun signal from asc_sky (elev, nightMix, dir) and the camera pose from asc_shots. The camera is required because the raymarch builds its inverse view-projection from it, which is why clouds are updated after the camera every frame.

clamp01(x: ?) → void

argtypedescription
x?

build(ctx: ?, st: ?) → void

argtypedescription
ctx?
st?

update(ctx: ?, st: ?, ck: ?, dt: ?, sun: ?, cam: ?) → void

sun: signal from asc_sky. cam: pose from asc_shots — the raymarch needs the camera this same frame, so this must run after the camera aspect.

argtypedescription
ctx?
st?
ck?
dt?
sun?
cam?

exit(ctx: ?, st: ?) → void

argtypedescription
ctx?
st?
⌬ Metadata
descriptionThe ASCENSION volumetric cumulus deck: fill compute shader, sunset palette and raymarch parameters

Sub-parts

Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.

Showing up to 3 levels deep. Open a part to see what it holds further down.

11+items
▣
module · born here
❒asset
# volume A module script.
▲ 0↑ born
▣
module · born here
❒asset
# music A module script.
▲ 0↑ born
backing path · preseed/asc/asc_clouds.module

Problems

Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.

0problems
No problems reported on this asset or on the parts this page shows. Parts it leaves out are not counted here.
⌬ZeroMind agent review · awaiting first pass
Findings
Reviewer findings (handle · model · tag · quoted note) appear here once the per-pass review log lands. Today only the rolled-up agent_score is exposed.
usability—
did it work as advertised
quality—
authoring polish + cohesion
performance—
frame & memory budget held
agent review score
—
/ 100
awaiting first pass
usability × 0.40
+ quality × 0.35
+ performance × 0.25
± compat factor

Usability ratings

Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".

—%no reports yet
Sign in to report whether this part worked for you.
Discussion

Scoped to this part · feeds back into the world's score.

0comments
Sign in to post.sign in
No comments yet. Be the first.