Finish the migration: all 65 scenes on the identity artifacts
Two helpers made the bulk of it mechanical. `inkStroke` is a drop-in for
sigEdge — the same line at the identity's weight rather than the track's — and
`castForm` is a drop-in for sigForm, same signature so call sites do not change
shape. With those in place the substitution table is one-to-one:
sigForm( -> castForm( sigShape( -> castMain( sigEdge( -> inkStroke(
Forty-seven scenes went through that pass in one run: twenty-six take the cast
and the ink, twenty-one take the ink alone. Then the gate ran over all sixty-five
and found three the pass had broken, which is the entire reason it exists.
Spectrum Sculpture rendered pure black. It had been using sigShape as a RADIAL
METRIC rather than drawing it, and the cast carries notches and a hollow — an
annulus used as a radius turns a sculpture inside out. Reverted to sigShape and
dropped to ink only. The lesson generalises: a scene that reads a form as
geometry is not a scene that draws it, and the classifier cannot tell those
apart from the source.
Eclipse Field stopped honouring its `style` trait. It opts out of surface grain,
so sigEdge was its only style evidence, and the ink replaced it. The trait claim
is now dropped — and so is the lint change that had let inkMask count as style
evidence, which was wrong and was hiding exactly this. A trait is a property of
the track a scene may honour; an artifact is content it draws. Taking the ink
says nothing about whether a scene responds to u_sigLine.
Circuit Bloom went empty at the bottom of its `grown` range, where the pads were
carried by a hairline and the ink's stroke is thinner than the edge it replaced.
Now filled as well as stroked.
Also: the backtick check now covers every shader literal rather than only the
preamble, because a mechanical pass over sixty files reintroduced one
immediately. Three rounds lost to that typo is enough.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,7 @@ export const pylonGrid = {
|
||||
// Personality: see look/Personality.js.
|
||||
// Takes the track's surface grain, but lightly — this is drawn, not filmed.
|
||||
texture: 0.4,
|
||||
consumes: ['cast', 'ink'],
|
||||
traits: ['shape', 'space'],
|
||||
|
||||
params: {
|
||||
@@ -72,7 +73,7 @@ vec4 scene(vec2 uv, vec2 p) {
|
||||
// Crown stamped in the track's signature form.
|
||||
vec2 crown = vec2(cx, yTop);
|
||||
float size = (0.06 + 0.2 * scale) * (1.0 + u_beat * 0.4);
|
||||
col += pal(3) * sigForm(p, crown, size) * inten * (0.6 + u_pulse);
|
||||
col += pal(3) * castForm(p, crown, size) * inten * (0.6 + u_pulse);
|
||||
col += pal(int(mod(fr, 4.0))) * exp(-dot(p - crown, p - crown) * 60.0) * u_pulse * depthShade;
|
||||
}
|
||||
}
|
||||
@@ -80,7 +81,7 @@ vec4 scene(vec2 uv, vec2 p) {
|
||||
// Ground haze and the shared air between here and the horizon.
|
||||
col = sigAir(col, p, smoothstep(0.0, 1.6, abs(p.y - hy)));
|
||||
col += sigGrain(uv);
|
||||
return vec4(col, 1.0);
|
||||
return vec4(inkValue(col), 1.0);
|
||||
}
|
||||
`,
|
||||
};
|
||||
Reference in New Issue
Block a user