effectcraft/docs
vangel76 560767dfe7 #783: Object Matte tracks in the background and freezes
Problem: Object Matte computed its frames only on demand while rendering, so
playing a shot stalled on every untracked frame, there was no progress or way
to stop, and nothing kept the mattes once computed.

Fix: Object Matte runs through Roto Brush's job machinery (one job slot,
cancellable with roto.cancel, a worker thread on the desktop, a Web Worker in
the browser, never the UI thread). objectMatte.propagate computes the frames
around the reference frame (clipped to the layer) outward, filling the same
content-keyed segmentation cache the renderer reads; the engine's sync now
queues an instance for background tracking when its frames or prompt change.
objectMatte.freeze stores the final mattes in a new hidden Frozen parameter
(Roto Brush's FrozenCache format) under a key of the input, prompt, span,
model and matte settings; renders use them without segmenting while the key
matches; a frozen prompt is refused until objectMatte.unfreeze. Freeze is one
undo step and is dropped if the prompt changed meanwhile.
objectMatte.status reports progress, frozen state and computed frames. Effect
Controls shows Freeze / Unfreeze and Track / Stop with a status line (progress
banner). The frontend now polls Roto Brush / Object Matte jobs on their own:
before, a finished job (and so a Freeze result) was only picked up while a
Warp Stabilizer job was active. Job progress is set before the worker starts.

Tests: engine tests_roto::object_matte_background_job_cancel_and_freeze
(queued by the edit, returns at once with progress, cancel keeps a partial
result, completion computes all 25 frames, frozen renders recompute nothing,
unfreeze recomputes, undo restores); effects object_matte job_frames and
frozen-matte tests (stored pattern used, key mismatch and damaged data
ignored); ui-egui ui_object_matte Effect Controls Freeze end to end.
docs/agents.md: Object Matte section; docs/effects.md regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 14:02:50 +02:00
..
brand Licensing: standard LICENSE files, NOTICE, ArtCraft brand terms 2026-10-04 10:05:24 -04:00
fidelity Keyframes: auto-Bezier spatial tangents follow After Effects 2026-10-11 02:44:49 +05:30
images M0.11: README rewrite with headless screenshots (hero, graph editor, effects, 3D, render queue) 2026-10-01 23:31:40 -04:00
agents.md #783: Object Matte tracks in the background and freezes 2026-10-11 14:02:50 +02:00
architecture.md UI.9: retain shared docking across upstream workspace changes 2026-10-10 19:25:49 -06:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#228) 2026-10-07 21:16:47 -04:00
control-protocol.md UI.9: share docking transactions and preserve viewer lifecycle 2026-10-10 17:14:12 -06:00
effects-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
effects.md #783: Object Matte tracks in the background and freezes 2026-10-11 14:02:50 +02:00
file-format-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
footage.md Import: only dropped files default to stills; scripts and agents naming a frame still get its run (#431) 2026-10-10 20:15:24 +00:00
gaps.md #783: Object Matte effect from a point / box prompt, tracked 2026-10-11 13:32:10 +02:00
hardware-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
localization-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
mcp.md MCP: --automation-read-root / --automation-write-root confine the agent's file access (#500) 2026-10-10 22:54:57 +00:00
plugins.md Plug-ins: Ease Presets moves out of core into a bundled ScriptUI panel 2026-10-09 21:03:12 +07:00
preferences.md Merge pull request #589 from JeremyYao/fix/amd-vulkan-launch-guard 2026-10-10 16:29:06 +00:00
releasing.md Release prep: 0.8.0 and a Linux riscv64 release build (#669) 2026-10-10 21:08:18 -04:00
roadmap.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
scripting-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
target-app-parity.md #783: Object Matte effect from a point / box prompt, tracked 2026-10-11 13:32:10 +02:00
testing.md Effects: the sim golden test accepts macOS 27's libm hash for Mr. Mercury (#232) 2026-10-08 13:36:09 +07:00
ui-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
web.md Web: the layer and footage caches stay small enough for eight stacked clips 2026-10-09 16:44:15 -05:00