RIVX / exported hybrid study

ONE DOCUMENT · SEVERAL REPRESENTATIONS

Let a Rive animation become the ink.

Play an actual .riv, turn its live image into oil paint, vector splats, phosphor traces or an orbitable time volume, then export the entire player. The source stays a Rive document throughout.

Loading bundled official Rive runtime…

Faux 3D Game Icons · rishi.kumar.id · CC BY · Rive animation

Choose a timeline, or use state-machine inputs and pointer interaction.
MSE 0.004092 · start 0.028520 · 68 steps / 68 accepted · 192 Gaussians · 10.6 ms last batch

RGB error is measured at 96 × 64 against the Gaussian renderer. Geometry and colours are optimized with accepted loss-decreasing steps. A complete step may exceed the requested time budget; the measured batch time is shown. Pause the source to measure convergence; animation reuses the previous fit. Rive uses a palette and eight ellipse layers per Gaussian, so its approximation has a separate display error.

Drag the lens in the output. It samples the displayed image; hidden scene geometry and physical transport are unavailable.

The selected .riv supplies rendered colour and supported timeline/state-machine interaction. All effects here accept that image; native object IDs, surface normals, depth and hidden surfaces are unavailable. Output: ordinary Rive ellipse geometry; the static .riv snapshot preserves full sampled colour. The added lens is a custom image-space layer and is retained in hybrid HTML.

01 / Official Rivefaux.riv
02 / Official Rive vectorsFitted geometry · official Rive

1,536 ordinary ellipse draws · paused preview

The optimized image becomes actual ordinary Rive geometry: eight translucent ellipse layers per Gaussian. The live pool uses a bounded palette; Export fitted geometry saves the current full-colour static geometry in a vanilla .riv. Animation and optical processing remain in the hybrid HTML.

KEEP THE WHOLE WORKFLOW

Export a working browser player.

The HTML carries the original .riv, official runtime, WASM, pipeline settings and captured history. Open it directly in a browser. The layered-splat snapshot exports actual ordinary Rive ellipses.

Self-contained player: source, runtime, pipeline and captured image history.
RIVE → TEXTURE → RIVE

The final marks can be Rive too.

Compare fitted Gaussian shader splats with eight concentric translucent ellipses per mark, drawn by the official Rive renderer. A bounded gradient optimizer adjusts position, covariance and RGB to reduce reconstruction loss at 96 × 64. The displayed residual reports that objective. Both routes use the same optimized marks, including dark details. A fixed ordinary Rive shape pool updates every display frame. It uses 24 or fewer source-derived colors and a bounded mark budget; the static snapshot export keeps full sampled color. This is a warm-started 2D image fit, not a trained 3D Gaussian scene. A changing source changes the objective; freeze it to see convergence. This illustrates an approximation with a real vector cost, not an arbitrary Gaussian feather feature in vanilla Rive.

IMAGE HISTORY AS A VOLUME

Time becomes the third axis.

Studio mode stores 128 actual 512 × 512 frames and raymarches up to 192 samples per ray. RGB, motion density and iso-sheets share that history. STM uses luminance as height; it is an image relief, not recovered scene depth. Beam traces ordered extracted contours into a decaying phosphor buffer.

RUNTIME OWNERSHIP

A working hybrid, with clear boundaries.

The imported artboard, timelines and state machines use official Rive. Oil, Gaussian splats, beam and space-time use custom WebGL2. The browser extracts image contours; the desktop beam also has original path access. Hybrid HTML is self-contained, but is not a native .rivx or GPU Canvas .riv export. GPU Canvas export status →