bflatastic
f95eface83
M13.20: docs — README (Timeline shortcuts and Puppet tools), control protocol (reveal / keyAt / twirlSelected UI commands, timeline.layer.<id>.row and viewer.puppetPin.<uid> element ids), agents guide (Timeline: layer.arrange above, reveal shortcuts, keys.toggleTransform, rename), architecture (puppet selection, rigging and follow-through; per-thread expression context recovery), parity (M13.17–M13.20)
2026-10-04 01:10:36 +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
Brandon Thomas
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
6102d1523e
Merge branch 'worktree-agent-a5320bec04bab3dac'
...
# Conflicts:
# docs/parity.md
2026-10-03 05:09:10 -04:00
Brandon Thomas
d209fa001f
M13.3: face tracking methods, Face Track Points / Measurements, camera lens distortion, docs
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 04:36:12 -04:00
Brandon Thomas
00eb951711
M13.1: ScriptUI frontend (dialogs, palettes, dockable panels), script menus, example plug-in, docs
...
- ui-egui: scriptui_view draws script windows at engine layout bounds; PanelKind::ScriptPanel; File ▸ Scripts and Window menu list scripts/panels (egui + native menus)
- examples/plugins/posterize-bands (WebAssembly, API v1); host plug-in tests; desktop loads <config>/Plug-ins
- MCP: script_ui and history tools; docs/plugins.md, agents.md, parity, architecture, ATTRIBUTION
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 04:24:01 -04:00
Brandon Thomas
197b27b6f4
Merge main into M12.6 (3D Camera Tracker)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 23:03:57 -04:00
Brandon Thomas
cba8d7e737
M12.6: 3D Camera Tracker effect + UI
...
Effect > Perspective > 3D Camera Tracker (Shot Type, Horizontal Angle of
View, Show/Render Track Points, Track Point Size, Target Size, Advanced:
Solve Method, Method Used, Average Error, Detailed Analysis, Auto-delete
Points Across Time, Hide Warning Banner); tracks and solve stored in the
effect with keys (frame edits re-track, setting / deleted-point edits only
re-solve). Background job (Analyzing in background (step 1 of 2) / Solving
camera banner, cancel, one undo step). Commands: track.camera (replaces the
stub), camera.analyze/cancel/solveStatus/points/selectPoints/
createFromSolve/create/setGroundPlane/deletePoints; the one-node 3D Tracker
Camera keyed per frame and text / solids / nulls / shadow catcher + light on
the target plane, Create Multiple. Viewer: depth-sized coloured targets,
hover target plane, click / shift / marquee selection, AE right-click menu,
Delete; Effect Controls Analyze / Cancel / Create Camera; Tracker panel
Track Camera. Solver: adaptive noise thresholds, denser keyframes, quick
tripod check, faster Cholesky and parallel Schur complement.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 23:02:47 -04:00
Brandon Thomas
93f4fe7314
Merge branch 'main' into worktree-agent-ad0c2eed1a8890262
...
# Conflicts:
# crates/effects/Cargo.toml
# crates/ui-egui/src/panels/mod.rs
# docs/parity.md
2026-10-02 22:27:43 -04:00
Brandon Thomas
ed72e67155
M6.7: refine edge + freeze + UI
...
Refine Edge tool (Alt+W cycles Roto Brush / Refine Edge), Layer panel
roto strokes with matte overlays (Alpha Boundary in pink, Alpha, Alpha
Overlay, View Search Region), segmentation span bar, Freeze/Propagate in
the Layer panel and Effect Controls, background propagation polling,
docs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 22:27:22 -04:00
Brandon Thomas
78cd313d3c
M14.4: scripting with an After Effects-style JavaScript object model
...
New crate effectcraft-script (L4): boa runtime with app/Project/CompItem/
Layer/PropertyGroup/Property/TextDocument/MarkerValue/RenderQueue/File
object model over engine commands (undoable, undo groups), AE match-name
table, file/network security gate. Entry points: script.run command,
File > Scripts > Run Script File (.jsx/.js), Window > Script Console,
effectcraft-cli script, MCP run_script. Engine: project.delete/duplicate,
prop.renameGroup/setGroupEnabled/removeGroup/duplicateGroup/moveGroup.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 22:13:09 -04:00
Brandon Thomas
9645ff9a66
M6.6: mask tracking + mask interpolation; M12.5: Warp Stabilizer
...
Mask tracking (track.mask, background job with progress/cancel, one undo
step, Mask Path keys; Tracker panel mask mode; Layer > Mask > Track Mask),
Mask Interpolation panel + mask.interpolate, and the Warp Stabilizer
effect (Effect > Distort, AE parameter groups, warp.analyze/cancel/status,
analysis stored in the effect, invalidation on source/in/out/remap edits,
viewer banner, crop/auto-scale/synthesize edges, track points).
Adds the effects -> track same-layer edge.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 21:14:29 -04:00
Brandon Thomas
744ccd6b48
M9.10: on-canvas text editing
...
Type tool point/box text creation, double-click editing, caret and selection
in the viewer (viewer_text.rs), keyboard/IME/clipboard, box handles; engine
text.edit/endEdit/setSelection/moveCaret/insert/delete, layer.setText range,
caret insertion style, Paste Text and Match Formatting / Paste Text
Formatting Only (stubs removed); Character/Paragraph/Properties panels act
on the selection.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 10:34:13 -04:00
Brandon Thomas
e1f72413e0
Merge branch 'worktree-agent-a94e35b1679a89a56'
...
# Conflicts:
# README.md
# crates/engine/Cargo.toml
# crates/engine/src/commands/mod.rs
# crates/engine/src/lib.rs
# crates/ui-egui/src/panels/viewer.rs
2026-10-02 09:26:35 -04:00
Brandon Thomas
c4100bcf80
M11.4: Lottie export/import
...
New crate effectcraft-lottie (L3): export a comp to Lottie JSON / dotLottie
(precomp and base64 image assets; shape, solid, null, precomp, image and text
layers or glyph shapes; transforms with parenting, separated position,
anchor; keyframes with speed/influence converted to normalised i/o tangents,
hold keys, spatial ti/to; all shape items incl. gradients, dashes, trim,
repeater and path operators; masks, track mattes, blend modes, time remap,
timing, markers, optional expressions, a few Lottie effects) with a warnings
list for what Lottie cannot express, and the inverse import. Commands
file.exportLottie / file.importLottie with File > Export / Import entries.
Round-trip tests (values and rendered frames) and hand-written fixtures.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 08:56:03 -04:00
Brandon Thomas
e57e6a5120
M12.3: tracker panel + apply
...
Tracker panel (Window > Tracker): Track Camera / Warp Stabilizer (disabled),
Track Motion / Stabilize Motion, Motion Source, Current Track, Track Type,
Position/Rotation/Scale, Motion Target with Edit Target..., Options...
(Motion Tracker Options dialog), Analyze (1 frame back, back, forward,
1 frame forward; stop while running) with progress, Reset and Apply (Apply
Dimensions dialog). Track point widgets in the viewer: feature and search
regions with corner handles, attach point crosshair and track path, all
draggable through track.setPoint (one undo step per drag). Automation ids for
every widget; headless UI test.
Tracker: featureless regions no longer drift (ties keep the prediction, only
confident matches predict motion). docs/agents.md: tracking example.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 08:52:20 -04:00
Brandon Thomas
7f43d537ed
M14.1: ship .mcp.json (headless + bridge servers)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 21:49:20 -04:00
Brandon Thomas
c672e03160
M14.1: MCP server + agent CLI
...
- crates/automation (L5, no egui): hand-rolled JSON-RPC 2.0 MCP server over
stdio (initialize, ping, tools/list, tools/call); headless backend (in-process
Session) and bridge backend (desktop control channel). Tools: list_commands,
execute_command, get_project/comp/layer, get/set_property, add_keyframe,
render_frame (inline PNG), open/save_project, undo/redo; bridge-only
screenshot, ui_* and raw control passthrough.
- effectcraft-cli: info, commands, exec, run, props, get, set, render-frame,
mcp [--bridge PORT]; --json, --project/--demo/--empty, --save/--save-as.
- engine: prop.get, layer.tree node paths + time, Session::resolve_comp,
render_rgba8, execute_checked (rejects unknown params, lists accepted keys).
- control channel: render.frame; engine.execute runs every engine command
directly (no dialogs, validated params).
- docs: control-protocol.md, agents.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 21:40:31 -04:00