bflatastic
f9990f7387
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
bflatastic
aef72378f8
M13.19: the Timeline's rename field and twirl arrows work — the name field took the keyboard focus every frame (Enter and clicking away could never leave it, which also silenced every single-key shortcut); it now focuses once with the name selected, Enter or a click elsewhere commits, Escape cancels; the layer row's click area sat on top of the twirl arrow and the name field (it was registered after them) and now sits under them; Ctrl-click a layer's arrow opens every group inside
2026-10-04 01:09:20 +07:00
bflatastic
52cf74e997
M13.18: drag layer rows in the Timeline to reorder them — a line shows where they land, the selected layers move together (an unselected row moves alone), one undo step, nothing for a drop in place; layer.arrange {above: layer} for agents
2026-10-04 00:31:59 +07:00
bflatastic
bb973e2c76
M13.17: the viewer keeps its pan after a middle-button or Hand drag — egui reports no total drag on the release frame, so the pan was recomputed as the drag's start and snapped back
2026-10-04 00:31:59 +07:00
BFlat
bb06a66083
Merge pull request #2 from storytold/puppet-rigging
...
Puppet tools: pin editing, rigging to nulls, follow-through; expression runtime fix
2026-10-04 00:26:24 +07:00
bflatastic
a02bcc8441
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
bflatastic
6ec177de83
M13.15: rig puppet pins to nulls — Points Follow Nulls / Nulls Follow Points (Window ▸ Create Nulls From Paths, paths.* {pins?}) take selected pins, named pins, or every pin of a layer with no path: a null per Position / Advanced pin drives its Position (fromComp of the null's anchor, so parented nulls rig limbs), or rides on it (toComp of the pin's Position) to carry other layers; one undo step
2026-10-04 00:19:25 +07:00
bflatastic
6869cff51b
M13.14: puppet pin editing — click / Shift-click selects pins (puppet.selectPins), a drag from empty canvas or Alt-drag marquee-selects them, Select All with a pin selected takes every pin of that kind, Delete removes the selected pins instead of their layer; Advanced and Bend pins rotate by their ring and scale by its square (Shift: 15° / 5 % steps, one undo step per drag); ⌘/Ctrl-dragging one of several selected pins records them all; pins in their kind's colour, larger under the pointer; pushpin icons for the five pin tools
2026-10-04 00:19:24 +07:00
bflatastic
244cee4687
M8.1: expressions keep working on long-lived threads — boa leaves values on its VM stack when an exception unwinds through call frames (every pending host request does), so after tens to hundreds of evaluations that read layers or effects every expression on the thread failed with "maximum stack size"; a run that hits the limit now gets a fresh context and is retried once (regression test: 6000 host-reading evaluations on one thread)
2026-10-04 00:19:22 +07:00
Brandon Thomas
56b3917a14
Merge main into M13.15
...
# Conflicts:
# crates/engine/src/commands/essential.rs
2026-10-03 13:00:33 -04:00
Brandon Thomas and Claude Opus 5.5
e2d7a5a182
M13.15: qa batch tool and reply affordances
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 12:56:58 -04:00
Brandon Thomas and Claude Opus 5.5
12235b5dc5
M13.15: qa project lifecycle; Collect Files makes its folder; agents cookbook
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 12:56:41 -04:00
Brandon Thomas and Claude Opus 5.5
77ab92fb7d
M13.15: qa essential graphics template via CLI script
...
Fill's ADBE Fill-0002 is Color (documented numbering); essential.* controls by name with
a listing error; an explicit comp param satisfies a command's active-comp enablement.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 12:30:11 -04:00
Brandon Thomas and Claude Opus 5.5
fecf054e5f
M13.15: qa scenarios 1-4 (kinetic type, shape logo, compositing, tracking) and fixes
...
engine.batch + MCP batch tool; layer.newText/newShape name; prop.get evaluated
expression value; keys.select by path with errors; @uid paths; plain-JSON gradients;
addShapeItem/effect.apply return paths; unknown layers error; conform rescales
footage duration; render log name for [###]; render_frame transparent; clearer
mask errors; truncated groups in flat get_layer.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 12:09:41 -04:00
Brandon Thomas
a4f4d72f27
Merge branch 'main' into worktree-agent-a4b0610bd14276508
2026-10-03 10:53:00 -04:00
Brandon Thomas and Claude Opus 5.5
750868244a
M13.13: GPU Circle, Ellipse, Iris Wipe, Bevel Alpha, Bevel Edges, Gaussian Blur (Legacy)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 10:53:00 -04:00
Brandon Thomas and Claude Opus 5.5
ea292a6e81
M13.13: fuse 8/16 bpc quantise into the layer composite; steady-state bench traffic
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 10:44:52 -04:00
Brandon Thomas and Claude Opus 5.5
9ff0e5aa3c
M13.13: gpu texture pool, Auto per-comp backend choice, warp-family GPU ports
...
- gpu: pooled working textures (released once every encoder that could read
them is submitted), shared zero images, reused readback staging buffers,
direct readback into Image; NaN-poisoned scratch images under test and
NaN-aware diffs; validation errors panic under test
- render: AutoPick (per comp / scale / path EWMA of CPU vs GPU frame times,
warm-up and periodic re-probe) behind Backend::Auto; viewer uses it too;
cached adjustment footprints (uploaded once)
- gpu fx_warp: Warp, Bezier Warp, CC Bend It, CC Page Turn, Smear, Reshape,
Color Emboss, Cartoon; sliding-histogram median for large radii; CC Power
Pin perspective < 100
- cli: bench --gpu reports Auto and per-frame upload / readback MB
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 10:31:31 -04:00
Brandon Thomas and Claude Opus 5.5
25aebc11d7
Merge main into M13.11
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 10:29:28 -04:00
Brandon Thomas and Claude Opus 5.5
cb516c91c3
M13.11: scriptui concave fills, real images, wasm cfg gating
...
onDraw fillPath tessellates any path (non-zero winding trapezoid
decomposition: concave, self-intersecting, holes) instead of egui's
convex-only polygon. ScriptUIImage holds a file path or embedded PNG/JPEG
bytes; drawImage, image controls and icon buttons draw the decoded image.
Script-host thread code (host_main, run_threaded, ToHost::Start) is gated
off wasm32.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 10:28:56 -04:00
Brandon Thomas and Claude Opus 5.5
dc132bc219
Merge main into M13.11 (bokeh kernel_spans/blur_levels, Essential Graphics as_type controls with mirrors and links)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:54:37 -04:00
Brandon Thomas and Claude Opus 5.5
f35c820c53
Merge main into M13.12
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:51:48 -04:00
Brandon Thomas and Claude Opus 5.5
5db4bff461
M13.12: docs (pdf README, parity, plug-ins), EPS Type 3 fonts reported
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:51:22 -04:00
Brandon Thomas and Claude Opus 5.5
2f1788bdf6
M13.12: script socket port validation, resource-string trailing commas, parser and socket edge-case tests
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:48:14 -04:00
Brandon Thomas and Claude Opus 5.5
c1e79d7bb2
M13.4: engine tests after merge (12 formats; templates name the module)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:44:54 -04:00
Brandon Thomas and Claude Opus 5.5
88384197f9
M13.12: plug-in ABI hardening (memory limit, manifest length, slider schema) and tests
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:42:44 -04:00
Brandon Thomas and Claude Opus 5.5
d774d11231
M13.11: essential graphics mirrored and linked properties
...
Adding a property already in the Essential Graphics panel adds a mirror
(EgKind::Mirror: own name and place, one value in the comp and in every
instance; editing, reverting or pushing either acts on both). A property
control can also drive further properties of the comp (links follow the
main property both ways and take instance values). essential.addMirror,
essential.linkProperty, essential.unlinkProperty; panel badges and menu;
ExtendScript addToMotionGraphicsTemplate(As), canAddToMotionGraphicsTemplate,
motionGraphicsTemplateName, controller count/name and
exportAsMotionGraphicsTemplate.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:38:19 -04:00
Brandon Thomas and Claude Opus 5.5
bb24b931a6
M13.11: advanced 3d gpu
...
Advanced 3D runs render entirely on the GPU: every motion-blur sub-sample
rasterised, resolved and averaged, the depth-based iris depth of field
(Classic 3D bokeh spans, highlight boost, progressive levels), the sRGB
encode and the composite over the GPU canvas (Accelerator::render_3d,
Renderer::prepare_adv_run, adv3d.wgsl). Wireframe outlines draw on the GPU.
Fixes NaN environment lookups for straight up/down normals on Metal.
bench --gpu gains an Advanced 3D comp (--adv3d).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:38:11 -04:00
Brandon Thomas and Claude Opus 5.5
c3532df7ef
M13.12: Variable Font Axes animators change advances (text re-spaced)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:34:15 -04:00
Brandon Thomas and Claude Opus 5.5
454df5d143
Merge main into M13.4 (codec completion)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:24:05 -04:00
Brandon Thomas and Claude Opus 5.5
fdeb146fb2
M13.12: Create Shapes from Vector Layer keeps images as parented footage layers in paint order
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:23:29 -04:00
Brandon Thomas and Claude Opus 5.5
374d21e6a5
M13.4: opus extreme-input tests, SILK doc
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:23:03 -04:00
Brandon Thomas and Claude Opus 5.5
1906d9d639
M13.4: WebM Opus uses the module's bitrate and application (SILK / hybrid / CELT), low-bitrate export test
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:17:57 -04:00
Brandon Thomas and Claude Opus 5.5
3eeba31c43
M13.4: opus SILK (NB/MB/WB, mid/side stereo) and hybrid (SWB/FB) modes
...
Application/Mode/Bandwidth API with OpusEncoder::with_application and
with_mode; SILK analysis-by-synthesis encoder mirroring the decoder's
fixed-point reconstruction with noise feedback, LTP, NLSF quantisation and
per-frame rate control; hybrid CELT from band 17 in the shared range coder;
pre-skip 120 in every mode. Oracle tests against filmcraft-opus and ffmpeg
(native opus + libopus).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:16:07 -04:00
Brandon Thomas and Claude Opus 5.5
9379ba1267
M13.10: clippy (FRAC_1_SQRT_2 in the Colorama test)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:14:38 -04:00
Brandon Thomas and Claude Opus 5.5
740faf1c1f
M13.12: EPS text (show variants, charpath, stringwidth, embedded Type 1/CFF, fallback fonts)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:01:10 -04:00
Brandon Thomas and Claude Opus 5.5
5c54ccd8d0
Merge main into M13.10
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:59:35 -04:00
Brandon Thomas and Claude Opus 5.5
248cf6af3a
M13.10: visual editors for Lumetri curves, Colorama output cycle, Glow colour map, Reshape correspondence points; scrolling Preview, AE-style comp tabs; web docs
...
Effect Controls: Lumetri RGB and hue/saturation curve graphs, Colorama's
palette wheel, Glow's colour map strip and Arbitrary Map curves, Reshape
correspondence buttons and viewer handles (all prop.set, one undo step per
gesture, automation ids). Preview panel scrolls; Composition/Timeline tabs
get close, label swatch and viewer lock; Effect Controls tab the layer
swatch; dropdowns elide long text. Fix the browser start (no default disk
cache folder on wasm32). Browser smoke test covers frame workers, waiting
renders and the Media Browser.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:59:04 -04:00
Brandon Thomas and Claude Opus 5.5
f309381cd3
M13.9: gpu crate docs, tidy GPU_EFFECTS
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:57:33 -04:00
Brandon Thomas and Claude Opus 5.5
d0df520bc1
M13.12: pdf CCITT G3/G4 images, parser robustness tests and panic fixes
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:54:05 -04:00
Brandon Thomas and Claude Opus 5.5
3d536cfe5a
M13.12: pdf /W2 and /DW2 vertical metrics, CMap WMode
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:48:25 -04:00
Brandon Thomas and Claude Opus 5.5
d15b69c734
M13.12: pdf knockout/isolated transparency groups, group alpha and masks on group results
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:46:41 -04:00
Brandon Thomas and Claude Opus 5.5
4ce3651723
Merge main into M13.9
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:43:44 -04:00
Brandon Thomas and Claude Opus 5.5
b0b8d4c01a
M13.12: pdf mesh shadings (types 4-7) and function-based shadings
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:42:49 -04:00
Brandon Thomas and Claude Opus 5.5
05b229825e
M13.9: gpu Refine Soft / Hard Matte (single-frame refinement)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:41:11 -04:00
Brandon Thomas and Claude Opus 5.5
5bb6768766
M13.10: web frame workers fed by project diffs, offloaded Roto Brush propagation, non-blocking wait jobs, browser Media Browser
...
Viewer frames render in long-lived Web Workers holding a project replica
(engine::remote: structural JSON diff/patch, Mirror, FrameServer); the
frame cache hands jobs to a RemoteFrames renderer (UI-thread fallback).
Roto Brush propagation runs in a job worker and streams segmentations
back (FrameSeg binary form), relayed to frame workers. Control-channel
wait:true commands whose job is offloaded reply when it ends. The Media
Browser browses a pluggable Browser: the file system on the desktop;
browser storage and File System Access folders on the web.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:36:00 -04:00
Brandon Thomas and Claude Opus 5.5
0fbde2f4ec
Merge M13.9 gpu stylize and distort (fx_stylize)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:32:18 -04:00
Brandon Thomas and Claude Opus 5.5
6e556690ad
M13.9: gpu Color Stabilizer apply pass
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:28:27 -04:00
Brandon Thomas and Claude Opus 5.5
7f6e9c5e41
M13.9: gpu Twirl (Legacy), CC Ripple Pulse, CC Power Pin (full perspective), CC Flo Motion
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:25:22 -04:00
Brandon Thomas and Claude Opus 5.5
6cbb6bfb93
Merge M13.9 gpu noise, blurs and time (fx_noise)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 08:21:23 -04:00