RIVX SUITE · RETAINED VOLUME + BAKED RECEIVER

One pulse. Two representations.

The medium keeps its paths. The floor becomes a stack of arrival-time textures. Move one optical window through both — or inspect one thin receiver slice.

SOURCE OPTICAL CLOCK · ∑ nℓDrag to orbit · the bake stays on the receiver
Receiver: stored UV atlasBoth routes draw the same sampled light. Near-agreement is expected; inspect the raw fields to see what the bake changes.
StandbyPreparing the finite transport bake…
A display-only boost makes thin, low-energy arrivals easier to see.
ONE CLOCK · TWO REPRESENTATIONS

Keep the volume. Sample the receiver.

The retained hourglass carries a continuously interpolated optical length. Evaluate the same Gaussian time gate on its sheets; the receiver can evaluate that gate per hit or blend pre-baked UV/time layers.

The Rive ray marks use a finite interval as a visual guide. The rendered fields use the soft Gaussian gate, including its tails.

BAKED IN RECEIVER COORDINATES

Sixteen slices. One surface.

Brightness is shown with one fixed logarithmic display curve. The gold bars show each slice’s weight in the current time window. Click a tile to isolate its arrival. Fine mode uses four times the traced rays, four times the temporal samples and a smaller spatial kernel.

ONE ARRIVAL INTERVAL

A pulse draws a ring.

Each layer stores only a thin band of optical arrival lengths. The ring is traced through both glass interfaces; its shape is not drawn by hand. A narrow interval is an arrival-time sample, not the whole steady-state caustic. In this scene the first arrival is a spot, many later arrivals are rings, and the last become arcs where the finite illumination cone runs out. Other geometry can give different footprints.

One shared logarithmic display curve across all slices. The finite spatial kernel and temporal bins remain visible approximations.
Reference photons—
Receiver texture data—
Receiver energy · splats / atlas—
Temporal discretization—
Stored HDR atlas + retained paths + ordinary Rive context + browser player.

The same arrival clock.

The optical length includes refractive index × distance inside the glass. Volume vertices and receiver hits come from the same scene and Snell construction. The Gaussian window moves through both. Camera orbit changes projection; it does not select a different image pose.

The surface textures store linear flux density in receiver coordinates. A hit distributes its energy between two adjacent optical bins; playback weights the stored slices with the selected window. Changing the window does not retrace or rebake.

A bake with an explicit domain.

Scene, glass IOR, source, fog and spatial kernel are fixed. Compact mode uses 128 × 128 × 16 with 32,768 rays. Fine mode uses 256 × 256 × 64 with 131,072 stratified rays and a 3.5 cm spatial kernel. It takes longer to prepare and stores 64 MiB of HDR texels; the finer time samples make a thin moving receiver band much easier to read. Finite texture and time sampling can differ from direct splats, especially for narrow windows. This small atlas is not necessarily smaller in memory; it replaces thousands of receiver draw instances with one texture lookup pass. Only slices inside the current window need texture reads.

Volume sheets, clamped view Jacobians, finite kernels and beauty reconstruction are biased. This is a synchronized source-clock preview, not a converged multiple-scattering or camera-arrival estimator. The source RGB colour is not a spectrum.

What travels with the drawing.

Official Rive draws the projected contour and moving optical ray marks from ordinary vector shapes. WebGL draws the retained medium and textured receiver. Export packages the actual atlas, receiver samples and volume attributes; reopening uses those stored records and makes no new transport solve.

This is a self-contained RIVX Suite, not an ordinary all-in-one .riv, a signed GPU Canvas document or a general native .rivx player. Fixed-view conversion to keyed .riv images or vectors is a separate bake choice.