effectcraft/crates/engine/src
bflatastic 7579de21c6 M13.35: Roto Brush trained model — swappable segment module, MobileSAM in pure Rust
- New L1 crate effectcraft-segment: the MaskModel interface (prompts → foreground probability),
  a registry of open-licensed models (licence must be MIT/Apache/BSD/…; URL, size, SHA-256),
  a PyTorch checkpoint reader (zip + pickle subset), dependency-free SHA-256, and MobileSAM
  (TinyViT-5M + SAM prompt encoder / two-way transformer / mask decoder) on rayon and ndarray's
  safe GEMM. Loads the official mobile_sam.pt as published; checked against candle
  (embedding 0.3% RMS, 99.9% equal mask pixels); ~0.7 s/frame encoder at 32 threads, cached
  per frame, ~0.1 s decoder.
- track::roto: segment_with / propagate_with prompt a model with the strokes or the flow-warped
  matte (box, core points, mask); its probability is a strong, unblurred prior for the same
  graph cut (strokes stay hard constraints); a failing model or one disagreeing with the flow
  (IoU < 0.5) is ignored. Prior gets a weight.
- effects::roto: Version 2.0 / 3.0 use the model chosen in Settings (set_model / model_for);
  the model id is part of the chain seed.
- engine: roto_models (roto.models, roto.model.select / install / download / remove), weights in
  the models folder (host::config_dir()/models, shared by the app, CLI and MCP), background
  loading, downloads through the system curl, verified; Settings ▸ Roto Brush page (prefs
  roto.model). host::config_dir moved from the desktop app.
- Tests: segment (kernels vs direct sums, checkpoint reader, SHA-256 vectors, registry), track
  (fake model: prior shapes the cut, failing / disagreeing models ignored; real weights with
  EFFECTCRAFT_MOBILESAM: base IoU 0.989, propagated ≥ 0.980 vs classic 0.973), engine (registry,
  verification, selection; real install + load), MCP.
- Docs: README, ROADMAP, parity (MSK-4 done: 90/2/0), preferences, agents, architecture,
  crates/segment/README.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 17:55:02 +07:00
..
commands M13.35: Roto Brush trained model — swappable segment module, MobileSAM in pure Rust 2026-10-05 17:55:02 +07:00
menus M3.13: menu bar: Group/Ungroup Shapes in the Layer menu, Window ▸ Learn, flowchart shortcuts, Center In View shortcut, Reveal in Explorer on Windows 2026-10-04 23:58:00 +07:00
autosave.rs M3.14: project files name the version that wrote them, never save unreadable, keep their format 2026-10-05 00:08:07 +07:00
camera_track.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
config.rs M13.1: branching history, puppet pin recording, WebAssembly plug-in API, ScriptUI model and hosts, File ▸ Scripts, deterministic render test 2026-10-03 04:07:20 -04:00
demo.rs M9.12: effect parameter fidelity – all categories 2026-10-03 00:15:06 -04:00
footage_check.rs M3.9: closing a modified project asks to save it first; the modified mark follows undo 2026-10-04 23:02:14 +07:00
guard.rs Never crash: last-resort guard around command execution, and a logging panic hook 2026-10-04 13:27:33 -04:00
history.rs M13.1: branching history, puppet pin recording, WebAssembly plug-in API, ScriptUI model and hosts, File ▸ Scripts, deterministic render test 2026-10-03 04:07:20 -04:00
jobs.rs M13.32: web main-thread stall: Warp Stabilizer plans solved in job workers 2026-10-04 03:40:46 -04:00
learn.rs M13.5: Home ▸ Learn tab with interactive tutorials (learn.list/start/step/stop/state, coach card, target highlight) 2026-10-03 05:25:45 -04:00
lib.rs M13.35: Roto Brush trained model — swappable segment module, MobileSAM in pure Rust 2026-10-05 17:55:02 +07:00
links.rs M13.30: the ArtCraft mark in the Tools bar, About and Home; VectorCraft sibling link 2026-10-05 12:49:47 +07:00
logging.rs Never crash: last-resort guard around command execution, and a logging panic hook 2026-10-04 13:27:33 -04:00
mask_track.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
media_browser.rs M13.10: web frame workers fed by project diffs, offloaded Roto Brush propagation, non-blocking wait jobs, browser Media Browser 2026-10-03 08:36:00 -04:00
media_cache.rs M14.5: wire the remaining settings; keyframe assistants and labels; AE menu entries 2026-10-03 02:45:44 -04:00
menus.rs M13.32: View ▸ New Viewer — several Composition viewers 2026-10-05 15:00:11 +07:00
offload.rs M13.32: web main-thread stall: Warp Stabilizer plans solved in job workers 2026-10-04 03:40:46 -04:00
perf.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
prefs.rs M13.35: Roto Brush trained model — swappable segment module, MobileSAM in pure Rust 2026-10-05 17:55:02 +07:00
preview.rs M13.8: Preview panel shortcuts and Align panel commands 2026-10-03 07:38:46 -04:00
psd_import.rs M13.6: PSD smart objects apply perspective quads and placed-layer warps 2026-10-03 07:21:00 -04:00
remote.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
render_queue.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
roto.rs M13.35: Roto Brush trained model — swappable segment module, MobileSAM in pure Rust 2026-10-05 17:55:02 +07:00
roto_models.rs M13.35: Roto Brush trained model — swappable segment module, MobileSAM in pure Rust 2026-10-05 17:55:02 +07:00
rq_tests.rs M13.4: engine tests after merge (12 formats; templates name the module) 2026-10-03 09:44:54 -04:00
scriptui.rs M13.11: scriptui concave fills, real images, wasm cfg gating 2026-10-03 10:28:56 -04:00
session_settings.rs M13.35: Roto Brush trained model — swappable segment module, MobileSAM in pure Rust 2026-10-05 17:55:02 +07:00
shortcuts.rs M14.3: keyboard shortcut editor 2026-10-02 09:14:54 -04:00
storage.rs M13.24: web app depth (WEB-1) — GPU effects in frame workers, OPFS disk cache, storage manager 2026-10-03 18:35:03 -04:00
sysinfo.rs M12.8: the app no longer freezes every 10 s on Windows: the system memory is read in the background 2026-10-05 07:05:17 +07:00
templates.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
tests.rs Compositions: reject zero and negative frame rates instead of panicking 2026-10-03 09:31:41 -07:00
tests_3d.rs M7.3: Auto-Orient (along path, towards camera), Draft 3D, 3D switch off drops Z 2026-10-01 22:42:27 -04:00
tests_anim_tools.rs ANM-6, CMP-5, CMP-3: Wiggler/Smoother/Motion Sketch, marker dialog + timeline markers, pre-compose options + comp navigator 2026-10-02 10:47:02 -04:00
tests_camera_track.rs M12.6: 3D Camera Tracker effect + UI 2026-10-02 23:02:47 -04:00
tests_codec_options.rs M13.4: engine tests after merge (12 formats; templates name the module) 2026-10-03 09:44:54 -04:00
tests_color_view.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
tests_disk_cache.rs M4.14: content-keyed RAM preview frames; proxies in the disk cache's content key 2026-10-05 14:39:17 +07:00
tests_effects.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
tests_essential.rs M13.11: essential graphics mirrored and linked properties 2026-10-03 09:38:19 -04:00
tests_essential_more.rs Merge main into M13.11 (bokeh kernel_spans/blur_levels, Essential Graphics as_type controls with mirrors and links) 2026-10-03 09:54:37 -04:00
tests_face.rs M13.3: face tracking methods, Face Track Points / Measurements, camera lens distortion, docs 2026-10-03 04:36:12 -04:00
tests_fidelity.rs M4.4: collapse transformations + slip 2026-10-02 10:14:53 -04:00
tests_frame_export.rs M13.7: Save Frame As Photoshop Layers / ProEXR, Watch Folder, Vanishing Point (disabled), Create Nulls From Paths, VR Comp Editor, Help tutorials 2026-10-03 07:55:04 -04:00
tests_history.rs M3.9: a browser session restored with unsaved changes stays modified 2026-10-05 06:33:40 +07:00
tests_keylight.rs M5.16: Key Light: keyer eyedroppers pick from the effect input (effect.pickColor); "keylight" search 2026-10-05 11:04:10 +07:00
tests_lottie.rs M11.4: Lottie export/import 2026-10-02 08:56:03 -04:00
tests_m137.rs M13.7: Save Frame As Photoshop Layers / ProEXR, Watch Folder, Vanishing Point (disabled), Create Nulls From Paths, VR Comp Editor, Help tutorials 2026-10-03 07:55:04 -04:00
tests_m145.rs M13.2: Create VR Environment nests the scene as a collapsed 3D precomp in each face comp (lights copied) 2026-10-03 04:22:49 -04:00
tests_markers.rs M13.33: nested comp markers on the precomp layer bar 2026-10-05 15:12:06 +07:00
tests_mask_warp.rs M13.32: web main-thread stall: Warp Stabilizer plans solved in job workers 2026-10-04 03:40:46 -04:00
tests_menu_cmds.rs M5.15: J / K and Select All Keyframes use what the Timeline shows; Graph Editor Auto-Select Graph Type 2026-10-05 10:36:55 +07:00
tests_model3d.rs CMP-7: Essential Graphics controls, master properties, .ectemplate templates, Responsive Design — Time 2026-10-02 22:44:06 -04:00
tests_motion_blur_depth.rs M4.13: motion blur of collapsed precomps and of animated shape / text content 2026-10-05 12:35:30 +07:00
tests_paint.rs M13.16: puppet Follow-Through — puppet.follow (Puppet tool bar ▸ Follow-Through…) makes pins trail a leader pin for hair, cloth and overlapping action: each follower's Position adds the leader's displacement from rest delayed by `delay` (the k-th nearest by k × delay with Cascade), scaled by Amount, keeping its own keyframes; leader = the first selected pin, followers = the others; one undo step; reachable over MCP (execute_command) 2026-10-04 00:19:26 +07:00
tests_panels.rs M13.30: Content-Aware Fill in a job worker on its GPU 2026-10-04 03:15:54 -04:00
tests_project_items.rs M14.4: scripting with an After Effects-style JavaScript object model 2026-10-02 22:13:09 -04:00
tests_proxy.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
tests_rig3d.rs M7.7: camera/light rigs and Advanced 3D motion blur, blend modes, track mattes 2026-10-03 00:27:47 -04:00
tests_roto.rs M13.10: web frame workers fed by project diffs, offloaded Roto Brush propagation, non-blocking wait jobs, browser Media Browser 2026-10-03 08:36:00 -04:00
tests_roto_models.rs M13.35: Roto Brush trained model — swappable segment module, MobileSAM in pure Rust 2026-10-05 17:55:02 +07:00
tests_settings.rs M12.8: the app no longer freezes every 10 s on Windows: the system memory is read in the background 2026-10-05 07:05:17 +07:00
tests_stubs.rs Merge main into M10.2 (render queue + VP9 inter) 2026-10-03 05:09:51 -04:00
tests_styles.rs M9.4: layer styles render + commands 2026-10-02 00:00:00 -04:00
tests_tail.rs M13.12: Variable Font Axes animators change advances (text re-spaced) 2026-10-03 09:34:15 -04:00
tests_text.rs Merge main (engine menu tree) into M9.6; wire text animation menus 2026-10-02 00:44:20 -04:00
tests_text_edit.rs M13.2: OpenType features (stylistic sets, figures, fractions, ordinals, dlig, true small caps / superscripts with faux fallback), Character panel OpenType popup, text.fontFeatures 2026-10-03 03:53:05 -04:00
tests_timeline.rs M13.20: every Timeline property shortcut — double presses AA (Material Options), PP (paint / Roto Brush / Puppet), SS (selected properties), RR (Time Remap), TT (Mask Opacity), MM (all mask properties; a single M now shows Mask Path), FF (missing effects), EE (expressions) next to LL and UU; Alt+Shift+A/P/S/R/T add or remove a keyframe at the current time on every selected layer in one undo step (keys.toggleTransform: separated X/Y/Z Position, Orientation and X/Y/Z Rotation on 3D layers); Ctrl/Cmd+` twirls the selected layers open or closed (from a reveal, their full tree) 2026-10-04 01:10:33 +07:00
tests_timeline_interchange.rs Merge branch 'main' into worktree-agent-a9fea98fe9839069d (filmcraft rev 2c5ba7a: AAF and OMF interchange) 2026-10-04 00:45:00 -04:00
tests_track.rs CMP-7: Essential Graphics controls, master properties, .ectemplate templates, Responsive Design — Time 2026-10-02 22:44:06 -04:00
tests_vector_import.rs IO-2/SHP-5/PRV-2: PSD import, SVG import + vector/text conversions, persistent disk cache 2026-10-02 22:10:48 -04:00
tests_viewer.rs M13.5: stroke taper/wave/multi-dashes, radial gradient highlight, variable-width mask feather, adaptive motion-blur samples 2026-10-02 23:22:53 -04:00
tracking.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
vector.rs M13.12: Create Shapes from Vector Layer keeps images as parented footage layers in paint order 2026-10-03 09:23:29 -04:00
viewer.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
warp.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
xml_project.rs M14.5: wire the remaining settings; keyframe assistants and labels; AE menu entries 2026-10-03 02:45:44 -04:00