Skip to content

feat: add vse-gamma-cross example witnessing the blend-curve closed form#90

Merged
TMHSDigital merged 1 commit into
mainfrom
feat/vse-gamma-cross
Jul 21, 2026
Merged

feat: add vse-gamma-cross example witnessing the blend-curve closed form#90
TMHSDigital merged 1 commit into
mainfrom
feat/vse-gamma-cross

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

Summary

The GAMMA_CROSS blend-curve witness from the ROADMAP pool (follow-up to vse-cut-list): tiny per-frame renders across a crimson→teal cross, asserted against the fade's actual math per frame. AI-generated sequencer code assumes the cross is the naive lerp — it is not.

Contract witnessed

  1. The cross blends in a gamma-0.5 space: out = ((1-t)·√A + t·√B)². Mid-cross from crimson (0.85, 0.10, 0.22) and teal (0.06, 0.75, 0.80) is (0.341, 0.349, 0.463)0.115 darker on red than the sRGB lerp (0.455, 0.425, 0.510). Every sample asserted within 5e-3 (2× the 8-bit quantization step + fit residual; measured 2.93e-3), mid lerp deviation asserted material (≥0.05).
  2. t = (frame − start) / duration, never 1 inside the effect — the last frame blends at (duration−1)/duration. Endpoint-inclusive is off by a frame-step.
  3. Pixel witnesses demand view_transform = 'Standard' — factory-default AgX tone-maps samples and poisons the fit (measured 0.146 on red during authoring). Also caught: deleting a consumed input strip orphans-and-deletes its effect (Strip 'GC' not in scene) — remove effects first.

Version witness: blend math identical on 4.5.11 and 5.1.2 (samples match to the quantization step); creation contract from vse-cut-list re-gated (strips, length= vs frame_end=).

Falsification evidence (temporary breaks, restored after measurement):

Probe Break Exit Measured
A naive lerp as the expectation 6 deviation 0.1138 at mid
B endpoint-inclusive t 5 t 0.129 vs 0.125
C cross inputs swapped 4 GC inputs are not T1 -> T2

Contact-sheet gate: vse-gamma-cross-contact-sheet.webp — verdicts: stage darkness ✓, wedge warmth ✓, subject fill ✓, saturation ✓ (most color-varied of the set), thumbnail legibility ✓ (fade row + framed contrast panel). Mean luminance 137.5 vs calibration 139.4 / 100.1 / 143.4 — mid-range.

Proven by live run vs inspection:

  • Live run, local: check exit 0 on .scratch/blender-5.1.2-windows-x64/blender.exe (Blender 5.1.2, hash ec6e62d40fa9) and .scratch/blender-4.5.11-windows-x64/blender.exe (Blender 4.5.11 LTS, hash 4db51e9d1e1e) — identical values (samples=8 q_err=2.93e-3 lerp_mid_dev=0.115). Render exit 0 on both binaries (EEVEE), pixels iterated (5 drafts: teal-wash timeline bug, caption occlusions, clipping). All probes live.
  • Live run, CI: both smoke series on the PR head SHA — see checks.
  • Inspection only: nothing claims otherwise.

Test plan

  • Validate, validate-manifest, validate-counts (README substring 29 examples)
  • Blender 5.1 smoke + Blender 4.5 smoke — new step runs examples/vse-gamma-cross/vse_gamma_cross.py --
  • Ecosystem drift; Socket Security
  • Local binaries: .scratch/blender-5.1.2-windows-x64/blender.exe (5.1.2), .scratch/blender-4.5.11-windows-x64/blender.exe (4.5.11 LTS)

Integration: example dir + README, gallery.json entry, plugin manifest, smoke step, top-level README ("Mesh, curves & text" category now 9, beside vse-cut-list; counts 28→29), generated pages read character-by-character (alt and callout full), ROADMAP entry shipped-marked.

🤖 Generated with Kimi Code

AI-generated sequencer code assumes GAMMA_CROSS is the naive linear mix;
it blends in a gamma-0.5 space and the mid dips 0.115 below the sRGB lerp.
Per-frame sample renders pin the closed form ((1-t)*sqrt(A)+t*sqrt(B))^2
with t=(frame-start)/duration — never 1 inside the effect — on both
versions. Documents the AgX-default sampling trap that poisons pixel
witnesses and the orphan-delete of effects whose inputs are removed first.

Signed-off-by: fOuttaMyPaint <TMhospitalitystrategies@gmail.com>
@github-actions github-actions Bot added documentation Improvements or additions to documentation ci labels Jul 21, 2026
@TMHSDigital
TMHSDigital merged commit a93af61 into main Jul 21, 2026
9 checks passed
@TMHSDigital
TMHSDigital deleted the feat/vse-gamma-cross branch July 21, 2026 01:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant