feat(skills): motion-blur-streak — per-frame-driven form for elements riding a baked track - #3781
Open
jbernard077 wants to merge 1 commit into
Open
Conversation
… riding a baked track Extends rules/motion-blur-streak.md with a Per-Frame-Driven Carve-In: when an element is driven from a baked track (tracked insert, shake-matched title) there is no tween window to share, so the envelope becomes a per-frame function of the track delta — velocity-gated text-free silhouette ghosts (Path B, the default for driven subtrees) or a rotate/blur/counter-rotate filter sandwich (Path A), streak axis from atan2 of the delta. Adds the Values rows, the constraint, and updates the rules-index row.
jbernard077
force-pushed
the
feat/motion-blur-streak-driven-tracks
branch
from
September 8, 2026 21:09
fc41a2b to
7589a22
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
rules/motion-blur-streak.mdteaches two paths (directional SVG blur, echo/ghost trail) that bothride a tween window. An element driven per frame from a baked track — a tracked insert or
callout, a title matched to camera shake — has no window to share. This PR adds that form as a
carve-in of the same rule, measured on both render lanes.
What's added
own delta inside the frame-lookup driver —
speed = hypot(dx, dy), axis fromatan2(dy, dx).lead (same box, border, radius, fill; no content;
aria-hidden+data-layout-allow-overlap)trailing at −0.25 / −0.5 of the per-frame delta, opacity
min(0.32, 0.05 × speed)above a4 px/frame gate and slaved to the lead's own opacity.
feGaussianBlur "σ 0"with
σ = min(SIGMA_MAX, 0.5 × speed), counter-rotate the content.TRAIL_GATE,TRAIL_K · TRAIL_MAX,TRAIL_OFFSETS,SIGMA_MAX), oneconstraint, an updated description/tags line, the
rules-index.mdrow, and the hook-regeneratedskills-manifest.json.Validation
A product-free driven-card composition (one baked, seeded track; a per-frame canvas plate and a
3D-transformed panel loading the rasterizer) rendered as PNG sequences with static-frame dedup off,
hashed frame by frame:
feGaussianBlur)hyperframes check: 0 errors, 0 warnings on the preview composition (the three-card stress variantsare not check-clean by design — the cards cross the lab's own mode label and GL-renderer HUD
readout, which a real composition would not carry — and are used only for the hash measurement).
The rule therefore ships the driven form as a preference, not a prohibition: Path B is the
default for driven subtrees because it costs no per-frame filter raster and its text-free clones give
the layout and contrast checkers nothing new to flag; Path A
is legitimate when a true blur is the look, with the note that a per-frame-driven filter is the first
thing to re-measure on a new host (an earlier build, 2026-08, saw 1-LSB
feGaussianBlurjitterunder per-frame load and shipped Path B for that reason).
Fit against current HEAD
Anchors re-verified against
main@ 250afc3: the section sits between the Camera-TravelCarve-Out and Values; the existing Recipe and Variations are unchanged, Critical Constraints gains
one cross-reference rewording (two carve-outs instead of one) and one new driven-form bullet.
Preview media
(one baked track, two cards: Path A driven blur on the left, Path B text-free ghost trail on the
right; HUD shows per-frame speed and angle; the track stops for the last second so both cards
settle sharp)
pr-c-driven-trail.mp4
🤖 Generated with Claude Code