You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 0c818a9
Browse filesBrowse the repository at this point in the historyBrowse files
fix(examples): seat the vse-cut-list monitor and stand its caption up (#245)
Render path only; the Bay scene is staging. The monitor neck butted its
top face onto the bezel's bottom on one plane with half its depth behind,
and the PROGRAM caption lay flat on the desk 6 mm up, unreadable from the
camera. The neck now rises 0.10 m into the bezel, the base sits 5 mm into
the desk, and the caption stands on the desk's front face. Sequencer frame,
checks and exit codes unchanged on all three binaries.
Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
<imgsrc="assets/vse-cut-list-hero.webp" alt="A monitor on a plinth showing a sequencer frame of four colour blocks with a cut-list caption strip." loading="lazy" decoding="async" />
599
+
<imgsrc="assets/vse-cut-list-hero.webp" alt="A monitor on a desk labelled PROGRAM, showing a sequencer frame of four colour blocks with a cut-list caption strip." loading="lazy" decoding="async" />
<metaproperty="og:image:alt" content="A monitor on a plinth showing a sequencer frame of four colour blocks with a cut-list caption strip." />
19
+
<metaproperty="og:image:alt" content="A monitor on a desk labelled PROGRAM, showing a sequencer frame of four colour blocks with a cut-list caption strip." />
<metaname="twitter:description" content="The sequencer API rename from 4.5 LTS to 5.x — strips (never .sequences), new_effect ending in length= vs frame_end=, and left_handle/right_handle/duration replacing the deprecated frame_final_*. A deterministic cut list — color programs, a clamped GAMMA_CROSS, a scene strip, a text strip — asserted before and after save/reload." />
<metaname="twitter:image:alt" content="A monitor on a plinth showing a sequencer frame of four colour blocks with a cut-list caption strip." />
25
+
<metaname="twitter:image:alt" content="A monitor on a desk labelled PROGRAM, showing a sequencer frame of four colour blocks with a cut-list caption strip." />
26
26
<style>
27
27
/* fonts are deployed by the landing build (docs/fonts/) */
<p>The sequencer API rename from 4.5 LTS to 5.x — strips (never .sequences), new_effect ending in length= vs frame_end=, and left_handle/right_handle/duration replacing the deprecated frame_final_*. A deterministic cut list — color programs, a clamped GAMMA_CROSS, a scene strip, a text strip — asserted before and after save/reload.</p>
269
269
</header>
270
270
<mainid="main">
271
-
<buttonclass="detail-hero" id="heroZoom" type="button" aria-label="View full size: A monitor on a plinth showing a sequencer frame of four colour blocks with a cut-list caption strip.">
272
-
<imgsrc="../assets/vse-cut-list-hero.webp" alt="A monitor on a plinth showing a sequencer frame of four colour blocks with a cut-list caption strip." width="1280" height="720" />
271
+
<buttonclass="detail-hero" id="heroZoom" type="button" aria-label="View full size: A monitor on a desk labelled PROGRAM, showing a sequencer frame of four colour blocks with a cut-list caption strip.">
272
+
<imgsrc="../assets/vse-cut-list-hero.webp" alt="A monitor on a desk labelled PROGRAM, showing a sequencer frame of four colour blocks with a cut-list caption strip." width="1280" height="720" />
273
273
</button>
274
274
<pclass="zoom-hint">Rendered headless by the example itself — click to zoom.</p>
275
275
<divclass="callout"><spanclass="tag">witnesses</span> Each side hard-fails the other's spelling: TypeError on the wrong end kwarg, AttributeError on .sequences. The cross clamps to the source overlap, effect strips consume their inputs only when stacked above them, and a same-scene scene strip renders transparent.</div>
@@ -287,6 +287,7 @@ <h1>vse-cut-list</h1>
287
287
<ul><li>A GAMMA_CROSS asked to outlast its inputs' overlap is <strong>silently clamped</strong> to the overlap — request length 9 over a (25, 33) overlap, get (25, 33).</li><li>A scene strip pointing at its <strong>own</strong> scene is a feedback loop and renders transparent (alpha 0) — the "stage" is silently absent. Source a separate scene.</li><li>Effect strips <strong>consume</strong> their inputs: input strips never composite on their own channel, and the effect's transform applies on top of the inputs' transforms. Consumption requires the effect on a channel <strong>above</strong> its inputs; below, they keep painting independently.</li><li>An empty <code>bpy_prop_collection</code> is falsy — <code>se.strips or se.sequences</code> silently falls through to the legacy accessor on an empty timeline. Always branch on <code>hasattr</code>.</li></ul>
288
288
<p><strong>Version divergence:</strong> the whole example is the divergence — gated on the <code>bpy.app.version</code> tuple (<code>>= (5, 0, 0)</code>), never on <code>version_string</code> (<code>"4.5.11 LTS"</code> is not bare semver). Each side asserts its own canonical contract plus the other side's removal/bridge state. Measured values are identical on 4.5.11 and 5.1.2, including the pixel witness. <strong>5.2 LTS COLOR strips bake readonly <code>width</code>/<code>height</code> from the scene render resolution at <code>new_effect</code> time</strong> (4.5/5.1 have no intrinsic size — scale is a fraction of the output frame). The pixel check sets 96×54 <em>before</em> building the cut list; creating at factory 1920×1080 then rendering 96×54 makes 0.36-scaled cells larger than the output, C covers the frame, and TL samples amber <code>(0.949, 0.62, 0.102)</code> instead of crimson.</p>
289
289
<p><strong>Render:</strong> the program wall <em>is</em> the sequencer output at frame 29 (mid cross) — crimson A, teal B, amber long-runner C, and the 50/50 cross blend, over the Stage scene strip showing the dark studio. An off-by-one in end-exclusive span math drops its cell to the dark stage; the caption strip carries the closed form. The hero presents that authentic frame on a reference monitor in a dark-studio editing bay — the pixels on the screen are the genuine sequencer output (evidence); only the bay around them is staged (presentation). Rendered locally with EEVEE (GPU host); the checks and <code>--check-pixels</code> need no GPU (Cycles CPU).</p>
290
+
<p>In the bay, each part bites the one it rests on. The monitor's neck rises 0.10 m into the bezel, the stand base sits 5 mm into the desk, and the "PROGRAM" caption stands on the desk's front face. The neck used to butt its top face onto the bezel's bottom on one plane, with half its depth hanging out behind, and the caption lay flat on the desk top 6 mm up, where the camera read it as a smear. None of this touches the sequencer frame or any check.</p>
290
291
<h2>Framing measurement</h2>
291
292
<p>The gallery still renders from the dedicated <code>Bay</code> scene (camera <code>BayCam</code>), not <code>bpy.context.scene</code> — a framing measurement with <code>examples/gallery_framing.py</code> must be handed that (scene, camera) pair explicitly.</p>
<imgsrc="../assets/vse-cut-list-hero.webp" alt="A monitor on a plinth showing a sequencer frame of four colour blocks with a cut-list caption strip." />
1071
+
<imgsrc="../assets/vse-cut-list-hero.webp" alt="A monitor on a desk labelled PROGRAM, showing a sequencer frame of four colour blocks with a cut-list caption strip." />
Copy file name to clipboardExpand all lines: examples/gallery.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -316,7 +316,7 @@
316
316
"name": "vse-cut-list",
317
317
"dir": "examples/vse-cut-list",
318
318
"teaches": "The sequencer API rename from 4.5 LTS to 5.x — strips (never .sequences), new_effect ending in length= vs frame_end=, and left_handle/right_handle/duration replacing the deprecated frame_final_*. A deterministic cut list — color programs, a clamped GAMMA_CROSS, a scene strip, a text strip — asserted before and after save/reload.",
319
-
"alt": "A monitor on a plinth showing a sequencer frame of four colour blocks with a cut-list caption strip.",
319
+
"alt": "A monitor on a desk labelled PROGRAM, showing a sequencer frame of four colour blocks with a cut-list caption strip.",
320
320
"witnessesFix": "Each side hard-fails the other's spelling: TypeError on the wrong end kwarg, AttributeError on .sequences. The cross clamps to the source overlap, effect strips consume their inputs only when stacked above them, and a same-scene scene strip renders transparent.",
0 commit comments