Commit Graph
3871 Commits
Author SHA1 Message Date
Kristian MyramandClaude Sonnet 5.5 a62d59da4b S2.40: SAM 2 as the Roto Brush object tracker
ObjectTracker interface in the segment crate (prompts on some frames, the
clip tracked both ways, each frame streamed with confidence and an occluded
flag), implemented by SAM 2. MaskModel::tracker() is None for other models.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 92ac189a49 S2.31: load SAM 2 through the install flow; SAM 2 as a MaskModel
Sam2Mask wraps the image path behind the Roto Brush's MaskModel interface
(cached frame encoding, bilinear mask resize). The engine loads the verified
weights natively (not on wasm). Checked with the real file: install, notice,
load, use by Roto Brush 3.0, deselect.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 e5842c0c92 S2.30: SAM 2.1 Tiny in the model registry
Apache-2.0 entry pinned to a Hugging Face commit with its SHA-256 and size,
listed in Settings > Roto Brush and installable with the existing verified
install flow. No weights are bundled.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 d1bff2baf6 S2.24: video tracking matches Sam2VideoModel on a synthetic clip
Click on frame 2 of a 7-frame clip with an occlusion, tracked forwards and
backwards: IoU 1.0000 on all 9 frame results, worst mask-logit error 0.0038,
object scores equal to 3 decimals.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 5b0cc57f87 S2.23: video tracker session
Per-object memory banks, prompts on any frame, forward and backward
propagation with streaming results, cancellation, object pointers with
temporal encoding, pruning of memories no later frame can use, and checked
input handling. Hostile-input and cancel tests.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 ea2899d077 S2.22: memory attention with rotary encoding matches PyTorch
Self and cross attention with axial 2-D RoPE (keys tiled over memory frames,
object-pointer tokens left unrotated). Max abs error 2.6e-5.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 e4f4fea0f2 S2.21: memory encoder matches PyTorch
Mask down-sampler, feature fuser and projection, sine position encoding,
occlusion embedding and bfloat16 rounding of stored memories. Max abs error
3.5e-6 on the memory features, 6e-8 on the position encoding.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 5aa52c5ba3 S2.14: sam2_bench example and first CPU speedups
Encode 5.0 s -> 3.4 s per 1024x1024 frame in release on 16 threads (fused
softmax, queries scaled before the matmul, flat 2-D linear layers); a click
on an encoded frame is about 120 ms. Reference tests unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 8a6ad6f5e9 S2.13: prompt encoder and two-way mask decoder match PyTorch
A click on the synthetic image: mask logits within 1.1e-4 (range 11.6), IoU
head 1e-6, object score 2e-5, prompt embeddings 1e-7.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 d2291926f0 S2.12: FPN neck and vision encoder match PyTorch
Max abs error 9.7e-6 on the features, 6e-8 on the sine position encodings.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 92b3a34732 S2.11: Hiera backbone matches PyTorch block by block
Weights loader with shape/finite validation (S2.10), patch embed, bicubic
positional embedding, window/global attention, query pooling. Reference test
(skips without weights): max abs error 2.6e-5 over all 12 blocks.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 36a22733a2 S2.4: effectcraft-sam2 crate skeleton
Native-only, Apache-2.0, forbid(unsafe_code), panic lints denied, NOTICE,
layer 3. Empty on wasm32.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 48997fcd3d S2.2: make the reference script run without torchvision
Preprocess by hand, tap the neck's ModelOutput, report forward time.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 fd2aedb000 S2.2: reference script that dumps per-stage SAM 2 tensors
Not yet run: it needs the weights.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:30 +01:00
Kristian MyramandClaude Sonnet 5.5 9cb48399c3 S2.0: record the SAM 2 decisions D1-D6
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:29 +01:00
Kristian MyramandClaude Sonnet 5.5 71e44deb84 S2.50: effectcraft-cli bench --roto on synthetic clips
Synthetic Roto Brush clips with known mattes (movement, lighting change,
occlusion, leaving and re-entering) and a runner that compares the classical
engine with MobileSAM when installed. Needs no weights; SAM 2 plugs in later.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-30 08:43:29 +01:00
BFlat a16f37d896 Merge pull request #2667 from storytold/land/2663
Fix pretend-version testing for update prompts (#2663)
2026-10-30 14:40:34 +07:00
BFlat d242bab1e6 Merge pull request #701 from vbasky/fix/687-adjustment-footprint-key
Cache/GPU: adjustment footprint ignores the effect stack; upload starvation is reported (#687)
2026-10-30 14:39:17 +07:00
BFlat 3a8ff240f6 Merge pull request #2669 from storytold/fix/ui-egui-tests-one-binary
ui-egui: the accessibility and keyboard tests join the one test binary
2026-10-30 14:36:59 +07:00
BFlat ace7d56311 Merge pull request #1287 from vbasky/fix/1218-wheel-scrub
Viewer: mouse-wheel scrubbing over the Composition monitor (#1218)
2026-10-30 14:30:01 +07:00
BFlat 18ab2e3f3b Merge pull request #2664 from zitann2020/ui/2589-unselected-self-drop
ui: the composition the drop lands in is left out even when unselected (#2589)
2026-10-30 14:19:18 +07:00
bflatasticandClaude Opus 5.5 697556f252 ui-egui: the accessibility and keyboard tests join the one test binary
#1339 was written before ui-egui's integration tests became modules of one binary
(`tests/it/main.rs`), so its six test files landed at the top of `tests/`, each its own crate
and link. They move into `tests/it/` as modules; the a11y module's doc names the new path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 14:04:01 +07:00
bflatastic 0ea9867f94 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 13:57:46 +07:00
bflatastic e9ca27e55c Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 13:57:35 +07:00
bflatastic 742a085f2b Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 13:57:18 +07:00
BFlat 1f15f8a53b Merge pull request #2665 from storytold/docs/gaps-ci-gate
docs: gaps.md says the CI gate runs on pull requests (gap 4 closed)
2026-10-30 13:51:02 +07:00
bflatastic c68581185a Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 13:45:18 +07:00
Dylan M. Taylor 36c8d8a71c UPD.1: honor app pretend versions in update checks (#2663) 2026-10-30 02:44:42 -04:00
bflatasticandClaude Opus 5.5 8fde08d269 Keep the screen() helper's doc comment on screen() in ui_viewer tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 13:34:05 +07:00
bflatastic a2d44e1020 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 13:31:43 +07:00
bflatastic c4ed3a52ed Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 13:31:39 +07:00
bflatastic 491677b1d8 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 13:30:52 +07:00
bflatastic e1aeda77ec Merge main into #2664 2026-10-30 13:30:48 +07:00
bflatasticandClaude Opus 5.5 b66a83389d docs: gaps.md says the CI gate runs on pull requests (gap 4 closed)
Since #2204, ci.yml runs `cargo xtask ci` through craft-common-actions' shared gate on every
pull request and push to main; gaps.md still listed "No CI gate on pull requests" as gap 4 and
in the Stability row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 13:29:10 +07:00
BFlat 72bd4a0366 Merge pull request #1339 from vangel76/feat-gap25-a11y-audit
Accessibility (gap 25): an AccessKit audit test; names, roles and keyboard operation for Effects & Presets, Settings and Render Queue
2026-10-30 13:19:46 +07:00
Dylan M. Taylor c8a40733cc UPD.1: honor app pretend versions in update checks 2026-10-30 02:14:08 -04:00
BFlat ded4252f99 Merge pull request #2662 from storytold/fix/2269-timeline-export-background
Premiere Pro export pre-renders in the background (#2269)
2026-10-30 13:08:28 +07:00
zitann2020andDeepSeek V4.1 Flash f3aad4829a ui: the composition the drop lands in is left out even when unselected (#2589)
Co-Authored-By: DeepSeek V4.1 Flash <noreply@deepseek.com>
2026-10-30 14:56:28 +09:00
BFlat c52164b57e Merge pull request #2658 from dotCooCoo/fix/font-substitute-test-installed-families
Make font substitute test work when original fonts are installed
2026-10-30 12:48:32 +07:00
BFlat 255af9e2b3 Merge pull request #2657 from storytold/fix/2371-slip-clamped
layer.slip reports the requested shift and whether it was clamped (#2371)
2026-10-30 12:47:13 +07:00
BFlat 29e13dc359 Merge pull request #2655 from storytold/fix/2152-discrete-undo-steps
Discrete property choices are one undo step each (#2152)
2026-10-30 12:44:31 +07:00
bflatastic 5b056fcb30 Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	crates/ui-egui/src/lib.rs
2026-10-30 12:38:03 +07:00
bflatasticandClaude Opus 5.5 68738d4b1b Premiere Pro export pre-renders in the background (#2269)
File ▸ Export ▸ Adobe Premiere Pro Project… pre-rendered every layer Premiere can't show to
ProRes 4444 with the window waiting: minutes on a large comp, which Windows reports as not
responding. The export now runs as a job (Window ▸ Progress, cancellable, with per-layer
progress) when started from its dialog (`background: true`); without it, the command still
waits and returns the same result.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 12:36:05 +07:00
BFlat fbb5488214 Merge pull request #2648 from zitann2020/i18n/ja-panel-rows
i18n(ja): the panel catalog's last 65 rows
2026-10-30 12:34:57 +07:00
BFlat 39a1cf9e67 Merge pull request #2649 from zitann2020/ui/2589-self-drop
ui: a drop that holds the target composition lands the rest of the selection (#2589)
2026-10-30 12:32:53 +07:00
BFlat b4c61f3db7 Merge pull request #2650 from zitann2020/ui/2588-timeline-drop
ui: a file dropped on the Timeline joins that composition (#2588)
2026-10-30 12:31:28 +07:00
Dylan M. Taylor e136844b53 Update prompt shows the app accent color (#2656)
UPDATE_APP gains our accent (#e0368f, our colour in ArtCraft Launcher). The prompt draws it
on the UPDATE chip, the buttons and the What's new underline, and says "by ArtCraft"
(craft-update's default developer); #2646 gave it our icon.

craft-update is pinned to storytold/craft-libs main at 1065653e7 (#434).
2026-10-30 01:29:03 -04:00
dotCooCoo 1981d86c54 Make font substitute test work with installed originals 2026-10-29 22:22:07 -07:00
bflatasticandClaude Opus 5.5 f6f242d6dd layer.slip reports the requested shift and whether it was clamped (#2371)
A slip on a layer with no source handles succeeded with `delta: 0` and nothing else, which
read like a no-op bug. The result now carries `requested` (seconds) and, per layer, `clamped`
when the source could not move that far.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 12:20:30 +07:00
bflatasticandClaude Opus 5.5 53a0532c1f Discrete property choices are one undo step each (#2152)
Timeline and Effect Controls value editors sent every write with the property's scrub merge
key, so two separate picks from a drop-down (or two check box toggles) on the same property
folded into one undo step. Drop-down, check box, layer and mask picks now record their own
step; scrubs and typed numbers still merge as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 12:15:50 +07:00