gamma runs the opposite way to ink_gamma
The exponent applies to the distance, before the palette coordinate, so it
decides where contours crowd rather than what colour they are. Because a band
boundary sits at (k/n)^(1/gamma), the exponent is inverted on its way to a
position — and below 1 is the direction that tightens the rings toward the
centre, which is what the reference images do:
gamma | where the 8 boundaries land, in distance | reads as |
|---|---|---|
0.4 | 0.006 0.031 0.086 0.177 0.309 0.487 0.716 1.0 | tight at the centre, opening outward |
1.0 | 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0 | evenly spaced (the default, an exact identity) |
2.5 | 0.435 0.574 0.675 0.758 0.829 0.891 0.948 1.0 | tight at the outline |
That is the opposite of the intuition ink_gamma builds, where a higher exponent
means more effect at the low end. Nothing warns — this table is the warning.
palette_steps is what makes this scene look like anything. Left at its
default the frame is a smooth ramp from the figure’s centre outwards — correct,
and not the reason to reach for this system. Turned up, each band is a band of
constant distance, which is the definition of an offset curve; palette_contour
then draws a hairline at each boundary. This is the third scene those two
params do anything in, and the first where the thing being banded is a figure
rather than a noise field.
Where the contours read is color_span. The distance is 0 at the figure’s
deepest interior point and exactly 1 on its outline, and keeps growing
outside — so color_span decides how much gradient the interior gets and how
much is left for the rings around it. Low values put the whole gradient inside
the silhouette and leave the surround flat; the default 0.6 is a compromise
that shows both.
color_spanIS NOT PORTABLE BETWEEN SILHOUETTES, and the factor is large. The scalar is normalized by each shape’s own inradius — that is what makesdexactly1on every outline — and the inradii are nothing like each other: about0.64for theheartagainst0.093for a sharpstar(star_valley = 0.18, 7 points). So the samecolor_spangives roughly seven times the contour count on that star, and a value tuned on one shape is meaningless on another. Authoring a sweep across several figures needs a separately computed span per figure just to keep it on frame.The live consequence: binding
star_valleyorpointssilently changes the ring count while it moves, because both move the inradius. If you animate either onshape_field, expect the banding to breathe with it — and if you wanted only the silhouette to change, that is not currently separable.AND IT DOES NOT TRANSFER BETWEEN
coord_modeVALUES EITHER, which is a second, independent trap on the same parameter. Under"0"the exterior is divided by the shape’s inradius, so how far the coordinate reaches depends on how thin the figure is; under"1"it grows linearly inr— the coordinate is2at twice the boundary radius, on every shape, by construction. So a span tuned in one mode is meaningless in the other, and nothing warns. Switching modes means re-tuningcolor_span, and the good news is that under"1"you only have to do it once: it is the same scale for every silhouette, which is the trap above dissolving.
How far the coordinate reaches at the frame corner is worth one line of
arithmetic before you ship. The exterior is most of a 16:9 frame, and
gamma above 1 compresses it: past roughly 1.5 on a palette that wraps, or
3 on a single sweep, the ring frequency at the corners runs past what the
pixel grid can carry and the picture breaks into moire — which reads as
texture in a still and shimmers the moment anything moves. d at the corner is
1 + (|uv|_corner / scale - 1) / R for inradius R, and the coordinate there is
d^gamma * color_span; keep that under about 6 with palette_steps near 9.
pointson astarhere is not the same picture as on a mark. These silhouettes were tuned for sprites a few pixels across, and at frame scale the star’s interior is knowingly approximate — its field is measured 0.066 out of true at 5 points and 0.248 at 12, in units where the figure’s own inradius is 1. The contours outside every shape are exact. So a many-pointed star’s inner rings will not sit where an offset curve should; its outer ones will.
Built from 13c7582 at version 0.158.0. This site tracks main and is not versioned per release.