Skip to content

Parameter roster

Presets are TOML files. A preset names a built-in system and binds that system’s named parameters to expression strings over the audio analysis. Line-art systems additionally take a declarative structural-config table ([curve] / [generator]) that is not expressions.

Files here are the curated set embedded into the binary and seeded into the per-user preset directory on first run. Seeding is write-if-absent, so editing a file here is invisible to a frontend already reading its seeded copy. Point both frontends at this folder instead and edit in place — the app hot-reloads within ~150 ms, no rebuild:

Terminal window
$env:RLX_PRESET_DIR = "./presets"; cargo run -p standalone --release # PowerShell
cargo run -p standalone --example shot -- --preset-file presets/<name>.toml --out a.png

See Expression language and Headless capture and video.

This file is the parameter roster, not the way in. If you have not written a preset before, read Preset guide first — it shows what each built-in system looks like and when to reach for it, then sends you back here for the parameters. The guide reproduces none of the tables below, deliberately (ADR-0101).

A preset ships when the behavioral suite is green (ADR-0081), so know what green is evidence of. Five gates sweep this folder and only one of them plays audio — which means a green suite says the picture is lit, moving and distinct, and that the preset responds to at least one band of real sound. It does not say the preset responds well; the [occupancy] table below is the gate for that. Which gate sees what, and the four things none of them can see, is in Testing and visual QA.

Author against the floor tier. Shipped presets are authored and gated on Floor — every shot capture and every CI gate (sanity / reactivity / animation / distinctness) pins it (ADR-0045). Rich raises capacity, not behavior: more particles, more segments, a larger internal grid. No expression, param or structural field changes meaning, and nothing in the grammar can read the tier. The one edge worth knowing is the segment cap — it is a tier value, so geometry that overflows and truncates at the floor’s 20 000 may fit at rich. Compose so the floor’s cap is the one you tuned for, and treat the extra headroom as headroom.

The attractor family needs one extra step to hold that promise, and it has it (ADR-0065). The attractor draws its particles with an additive blend into a linear accumulation, so without a correction 150 000 points at Rich would deposit three times the light of 50 000 at Floor into the same texels — same fade, same size, a picture three stops hotter. For an accumulating scene, capacity is the picture.

So the deposit is divided by the particle count, and the total light laid down per frame is invariant. At Floor the factor is exactly 1.0 and nothing moves; at Rich the same figure is drawn from three times the samples at a third the weight each. A tier buys less shot noise in the same picture, which is what a capacity tier is for. Measured on Clifford at 1280x720: mean display luminance 10.86 at Rich against Floor’s 10.34.

What follows for you is that a preset cannot buy brightness by running at Rich. Capture both tiers with shot --tier rather than reasoning about it.

Sections

Built from a8ce055 at version 0.115.0. This site tracks main and is not versioned per release.