shape_field — the same roster, at frame scale
The five silhouettes above are not only marks. system = "shape_field"
draws one of them as a fullscreen signed-distance field, which is a different
thing from a big particle: the palette coordinate becomes the distance to the
figure, so banding it draws concentric offset contours of the shape
(ADR-0105).
The roster is not the only source of a silhouette here. A
[path]table hands this scene a figure you drew yourself, as inline SVG path data, and everything below applies to it unchanged — the same coordinate, the same banding, the same contours. It also brings two params the roster shares:stroke, which draws the figure’s outline instead of filling it, andmorph, which travels between two authored silhouettes.
system = "shape_field"
[params]shape = "4" # the roster above - 4 is the heartscale = "0.55" # the figure's size in the framepalette_steps = "9" # <- the contours. Without this it is a gradient.palette_contour = "0.7" # thin outlines at the band boundariescolor_span = "0.45" # how much gradient the figure's interior spans| param | does |
|---|---|
shape | the same numeric selector as the table above, same five names, same closed roster |
points | the same 3..12 count, for polygon and star |
star_valley / star_curve / star_jitter / star_wobble / star_wobble_freq / star_seed | the same star shape params — see The star arm. star_jitter is the one whose field precision is worth reading about there |
scale | the figure’s size: its outline sits at scale of the frame’s short half-axis. Default 0.6, clamped to 0.01..20 |
pan_x / pan_y | move the figure’s centre (the shared view transform) |
rotation | turns the figure about its own centre, in radians. Default 0, an exact identity, unclamped — an angle wraps. Applied after pan_*, so a panned figure spins in place rather than orbiting the frame |
gamma | the response exponent on the figure coordinate, before it becomes a palette coordinate — where the contours crowd. Default 1.0 (evenly spaced, and an exact identity), clamped to 0.05..20 |
coord_mode | which coordinate the palette is handed. 0 (default) is the distance, whose contours are offset curves; 1 is r / r_boundary(theta), whose contours are scaled copies of the outline. Stepped, like points — there is nothing halfway between an offset curve and a scaled copy. See Two coordinates |
stroke | draws the figure’s outline at this half-width instead of filling it, in coordinate units — 0.08 is a band 8 % of the figure’s half-extent either side of the outline. Default 0, the filled figure and an exact identity. Fill and stroke are the same field, so the outline cannot drift off the figure it belongs to |
morph | travels an authored [path] towards its morph_to silhouette, 0..1. Inert on a roster figure and on a path that names no target |
gammais well defined on a curved or jittered star, and the arithmetic behind that is worth knowing (backlog 0097). Those two params take the star arm’s curved branch. Normalizing its true distance by the straight edge plane’s perpendicular — always shorter than the figure’s real deepest-point distance — would put the coordinate negative at the centre, andpowof a negative base is NaN. The branch instead divides by the figure’s own deepest-point distance, so the coordinate is0there — exactly0while the spikes are all the same length, and within about0.09of it understar_jitter, where the divisor is the unjittered figure’s while the measurement is the fragment’s own spike’s. Either waygammais an ordinary knob on every star, and a star world may bind it to a band like any other figure’s. (The worked example, Facet, bound it totrebafter pinninggamma = "1.0"for this defect; it has since been retired, and no shipped star world bindsgammatoday.)
In this section
Built from 13c7582 at version 0.158.0. This site tracks main and is not versioned per release.