Log inGet started
·
computeshader · drop-in viewer
asset⌬ computeshadercomputeShader·originates fromworld db2c16ac-a…

asc_pyre.computeShader

ASCENSION's fire tornado, filled one invocation per voxel into a 128 × 256 × 128 emissive volume and raymarched by `preseed.volume`.

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

asc_pyre

ASCENSION's fire tornado, filled one invocation per voxel into a 128 × 256 × 128 emissive volume and raymarched by preseed.volume.

The rotation

Three things make the column read as turning, and all three have to be present.

  1. Every noise field is sampled in a cylindrical frame whose angular coordinate is advanced by the accumulated spin in revolutions, so the surface moves between frames. The advance is differential — faster at the inner radii — which is the vortex's own shear.
  2. The frame is twisted with height, so every feature is a helix in a frozen frame: at the waist radius a feature leans about 50° off vertical, and the lean grows with radius so the wind tightens toward the silhouette edge.
  3. The noise is strongly anisotropic — five times longer along the axis than around it before the twist — because shearing something already long is what produces a long thin diagonal ribbon rather than a slightly tilted lump.

On top of those, an integer number of angular lobes carries the read through the raymarch. A volume is integrated along a chord that crosses many azimuths, and the average of a helix is not a helix; a sin(N·a) term survives it, is continuous across atan2's branch cut, and — evaluated on the outer shell, where a dense medium's near wall carries the radiance — arrives on screen as the banding the eye reads as a wound surface.

The spin angle arrives as a cumulative table sampled at t, so the whole fill is a pure function of t and a held frame is identical however often it is taken.

The profile

The body is monotone-narrowing root to tip: a root swell that has decayed by the bottom 30 u (an absolute height, not a fraction of the column's), the waist, then a steady thinning to two thirds of it at the top. The skirt is a separate wide, low, ragged, wind-blown term in the bottom 26 u and never enters the body's silhouette. The anvil is a separate cap whose radius is capped below the root swell, offset downwind by more than half its own radius and stretched along the wind — a sheared anvil rather than a radially symmetric cap.

Fire, dust and the collapse

ignite is the fraction of the column height that is burning, measured from the root, so one scalar carries both the 0.30 s root-to-tip ignition and the top-down collapse. Below the front the same volume is emissive hot dust, brighter than the murk behind it rather than a hole in it; the anvil is always dust with an amber belly where the fire below reaches it.

tear throws the three ropes off the axis on 120°-separated bearings, lifts them into their upper reach, and kills everything else; the ropes carry their own fire so they go out as flame rather than as smoke.

Colour

cLow / cMid / cUp / cCore / cDust / cSkirt arrive as scene-linear radiance that the engine's ACES fit maps onto the accent row, scaled by the display ceiling the post chain delivers and divided by the frame's own sceneExposure. Dimming is a mix toward a darker authored ember, never a multiply: the tonemap is compressive in red and near-linear in blue, so a scaled #FF7A22 comes back a scarlet and a ramp authored in display ratios comes back neutral. Nothing here is white; the hottest value is #FFF0C8.

Density

Density is occlusion, and the composite is scene*(1−a) + rgb, so a term carrying more density than emission is a hole in the frame. The lanes between the angular bands go to zero, not to a floor, so the scene behind shows through and the frame keeps something dark to read the fire against. Density fades out over the last 7 u above the sand, so the column dies into the surface instead of ending on the volume's floor slab, and it fades around the camera — tightly while the column is whole, widely during the collapse, when the crane is inside the box.

RGB is emission, alpha is density. U carries 41 f32s and the index list is in the shader's header.

Interface

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

This asset doesn't declare a schema or structured payload.

Sub-parts

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

4items
This part has no composite children. See the Files segment for its leaf payloads.
backing path · preseed/asc/asc_pyre.computeShader

Problems

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

0problems
No problems reported. This asset, its contents, and its direct deps are clean as of the latest commit.
⌬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.