Repository navigation
feat(studio): motion blur panel with Off / Subtle / Strong - #6112
Conversation
There was a problem hiding this comment.
Verdict: REQUEST CHANGES · 1 blocker · 0 important · 1 nit · head 58269250
The panel works out the change against the preview DOM, but the write goes to the bytes on disk. Whenever those two differ, it can save a different level from the one picked, and undo inside the 1.5 s hold makes them differ. Details ↓ inline.
Scope
Read the whole diff and traced useVariablesPersist → persistSdkCandidateMutation (the candidate is cloned from readProjectFile, not the live session). Ran the 3 panel/model test files locally (28 pass), plus a throwaway repro for the blocker. On this stacked head only the perf/preview/regression workflows ran, so for the full suite I'm relying on your local run. No prior reviews.
— Genesis (Claude)
393e017 to
00442fe
Compare
c06409c to
b3c9c09
Compare
There was a problem hiding this comment.
Verdict: APPROVE — 2 resolved, 0 open, 0 new · 58269250 → b3c9c097
Verification
Edits are now computed from the candidate root inside the mutation. The NothingToChange throw comes back out of persistSdkCandidateMutation as the same error instance and is swallowed, so a no-op writes no file and records no undo step. Ran the panel, model, dock and layout tests plus core motionBlurSettings locally: 112 pass. With the fix reverted, the new disagree test and the locked-level test fail. The first commit is unchanged after the rebase (range-diff =). regression and preview-regression are green; Player Safari perf was still running.
— Genesis (Claude)
b40dc36 to
4ce56ce
Compare
b3c9c09 to
050626a
Compare
There was a problem hiding this comment.
Verdict: APPROVE · 0 blocker · 0 important · 0 nits · 050626a2
The patch is line-for-line identical to b3c9c097 (compared with b40dc365...b3c9c097), which @heygengenesis approved after both of its findings were fixed. I also read the readConfig move onto readMotionBlurSettings. It only differs on invalid values: an empty shutter now means 240 instead of 0, and a non-numeric samples value now means auto instead of 16. Both are improvements.
— Genesis (pr-review)
4ce56ce to
0b4c3b8
Compare
a54a4d4 to
e0b2dcf
Compare
The base branch was changed.
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
One three-way control in the right dock. Subtle is the default blur (240 deg shutter, samples sized to the smear); Strong is 720 deg and 64 samples. Writes the root data-motion-blur attributes through the SDK so renders match and undo works; reads live attributes from the preview. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The edits were worked out against the preview DOM but written to the file, so a stale preview (undo inside the hold, a slow reload) could save a level other than the one picked. They are now computed inside the mutation from the candidate's root. While locked to a sub-composition no level is shown. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
e0b2dcf to
1e38c94
Compare
Edit accuracy: accurate 271 (base branch 271), smooth 170 of thoseThe gate passes. Quarantined, measured but not gated (0) |
Five tabs overflowed the default dock width by 10px and clipped a label (Studio: load smoke). The tab is now titled Blur. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Verdict: APPROVE — 0 open, 0 new · b3c9c097 → 82cadf3d
Verification
The rebase onto main left both earlier commits patch-identical (range-diff =). 82cadf3d only retitles the dock tab to "Blur" and updates the docs line. Nothing in code or tests matched on the old tab title; the panel heading and the radiogroup label still say "Motion blur". The latest CI and PR captures runs at this head are green; the earlier failed/cancelled pair was superseded.
— Genesis (Claude)
What
A Motion blur tab in Studio's right dock with one three-way control: Off / Subtle / Strong.
data-motion-blurand leaves the other attributes alone.It writes the root attributes through the SDK, so a render uses the same setting and Undo works. It reads the live preview root, so it follows undo and outside edits. Locked with a note when a sub-composition is open (blur is read from the main root).
Adds
@hyperframes/core/motion-blur-settings(attribute names, limits, parse and write helpers); the capture runtime now reads its config through it so editors and runtime share defaults.Rebased onto
mainafter #6106 to #6108 merged. The dock tab is titled Blur: with five tabs, "Motion blur" overflowed the default dock width by 10px.Verified
data-motion-blur="on"; Strong added shutter 720 and samples 64.Before
The fifth tab ("Motion blur") is clipped at the default dock width.
After
The tab is titled Blur and fits; the panel shows Off / Subtle / Strong.
🤖 Generated with Claude Code