Brandon Thomas and Claude Opus 5.5
cc5c831c0a
media: WebM VP9 alpha imports as straight alpha (FilmCraft 2c5ba7a)
...
Bump the FilmCraft crates from 89cfbf2 to 2c5ba7a (118 commits; no API
changes needed here), whose Matroska reader now decodes the VP9 alpha
stream from BlockAdditions. The compositing QA scenario now checks that
WebM renders round-trip their alpha like ProRes 4444.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 23:57:57 -04:00
Brandon Thomas and Claude Opus 5.5
081ce79de3
Merge M13.14 agent-interface audit + lazy open (worktree-agent-a5f8967ebd42ce98b)
...
The branch's commits say M13.14; on main that id is the puppet work, so this arc is M13.21.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 17:23:10 -04: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
Brandon Thomas
91bd8ca7c8
Merge main into M13.14
...
# Conflicts:
# crates/engine/src/lib.rs
# docs/agents.md
2026-10-03 13:13:50 -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
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 and Claude Opus 5.5
0d5f60c4b7
M13.14: agent-interface audit (every command over MCP, control channel and exec --list; automation ids for every widget)
...
- command.describe / list_commands {schemas} give each command's params JSON Schema;
MCP describe_command, add_effect, list_effects and get_state (app.capabilities)
- effectcraft-cli exec --list [--schemas]
- headless UI audit: every panel kind's interactive egui widgets are covered by
automation ids (fixed: timeline navigator, label swatch, bar trim edges, group and
property name cells)
- command lookup is indexed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 09:59:23 -04:00
Brandon Thomas and Claude Opus 5.5
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 and Claude Opus 5.5
89c9b1b6ee
M13.1: branching history, puppet pin recording, WebAssembly plug-in API, ScriptUI model and hosts, File ▸ Scripts, deterministic render test
...
- engine: History keeps undone lines as branches; edit.history.list/goto; History panel tree; MCP history tool
- puppet.recordPin / puppet.recordOptions; viewer Cmd-drag records; Record Options form
- effects::plugin (EffectPlugin trait, register_plugin, API v1); effectcraft-plugin (wasmi, sandboxed, fuel-limited); effect.plugins.load/list
- ScriptUI: engine scriptui model + layout + scriptui.* commands; script crate scriptui.js and script-host threads (dialogs block show())
- File ▸ Scripts: install script / ScriptUI panel, sample scripts, window.scriptPanel
- host test: bit-identical renders across runs and thread counts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 04:07:20 -04:00
Brandon Thomas and Claude Opus 5.5
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 and Claude Opus 5.5
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