Skip to content
Русский

The [path] table

The shape_field system draws a silhouette from a closed roster of five names — or from a position between two of them, since a fractional shape blends the two arms it lies between and an eased binding carries the figure from one to the next (ADR-0226). A [path] table is the escape hatch: inline SVG path data, parsed once at load into a closed contour and rendered as the same signed-distance field, so a preset can author a figure nobody put in the roster.

system = "shape_field"
[path]
d = "M 0,-1 C 0.9,-0.4 0.9,0.4 0,1 C -0.9,0.4 -0.9,-0.4 0,-1 Z"
morph_to = "M 0,-1 L 0.87,0.5 L -0.87,0.5 Z" # optional; `morph` travels to it
samples = 64 # 3..=64, default 64

The supported subset is M m L l H h V v C c S s Q q T t Z z. A/a (the elliptical arc) and a second subpath are refused by name, each with an error saying what it found — an author meeting one is holding a file a browser renders correctly, so “invalid path” would be a cruel thing to say. Anything else that goes wrong is a load error carrying the character offset into d, because a mis-parsed path renders as a plausible wrong figure rather than as a mistake.

morph is an ordinary binding under this document’s language, and [smoothing] reaches it like any other — the pair is aligned once at load (winding, start point, arc-length arity) so nothing per frame re-derives a correspondence.

Parameter roster carries the rest: the arity ceiling and the measurement it came from, which pairs morph well, and the plain fact that a long path stops a preset being readable.

Built from 13c7582 at version 0.158.0. This site tracks main and is not versioned per release.