Brandon Thomas
81ac7151bc
M13.3: CameraSolve distortion field in UI test after merge
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 04:53:56 -04:00
Brandon Thomas
104c154194
Merge main into M13.3 (tracking completion)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 04:36:19 -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
0bce3f2e49
M13.3: Subspace Warp content-preserving mesh warp, face tracker library
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 04:08:23 -04:00
Brandon Thomas
f713eb9bfd
Merge branch 'worktree-agent-a84b59936d09d9772'
2026-10-03 03:45:57 -04:00
Brandon Thomas
bfeab98913
Merge branch 'main' into worktree-agent-a84b59936d09d9772
2026-10-03 03:43:46 -04:00
Brandon Thomas
0ed7bf69af
Merge main into M13.6 panels and content tools (Footage window label on the real panel; no stubs left)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 03:43:46 -04:00
Brandon Thomas
4210f00302
M14.5: fmt after merge
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 03:40:59 -04:00
Brandon Thomas
871362ba96
Merge branch 'worktree-agent-aba044eaf08eded94'
...
# Conflicts:
# crates/render/src/three_d/compose.rs
2026-10-03 03:33:36 -04:00
Brandon Thomas
fa27d000ea
Merge main into M14.5 (settings and menus)
...
Display Color Space setting joins the live list; View3D::Default maps to view.3d.default for
the Assign Shortcut submenu; stub tests use the stubs that remain.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 03:29:39 -04:00
Brandon Thomas
a5be68499e
Merge main into M13.6 panels and content tools
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 03:23:13 -04:00
Brandon Thomas
e362cae4c7
M13.6: panel polish (log-density scopes, narrow-panel layouts) and an offscreen panels snapshot test
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 03:21:30 -04:00
Brandon Thomas
ebcb8c95ce
Merge branch 'worktree-agent-a8dea01e1a1d42946'
2026-10-03 03:18:47 -04:00
Brandon Thomas
b29d833b2d
M13.6: Lumetri Scopes, Footage, Media Browser, Metadata, Progress and Content-Aware Fill panels; Content-Aware Fill, Scene Edit Detection, Auto-trace, Align Video to Data
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 03:12:36 -04:00
Brandon Thomas
b17d2c05e6
Merge main into M14.5 (settings and menus)
...
Reconciled with main's keyframe labels (same Keyframe::label field; keys.setLabel and
keys.selectLabelGroup from main are kept, M14.5's duplicates removed; Edit ▸ Label on
selected keys delegates to the label helper), proxies (RenderOpts::proxy next to
nested_switches/draft_shadows), offloaded renders (Work carries nested_switches), wasm
audio pump (preview mix rate), variable font axes and mask feather points.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 03:11:45 -04:00
Brandon Thomas
e7fdd6fdbd
Merge main into M12.7 (environment background layers keep their 3D runs on the CPU path)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 03:03:21 -04:00
Brandon Thomas
f85468c694
M12.7: docs (architecture, parity, gpu crate docs)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 03:00:29 -04:00
Brandon Thomas
c4a8c141b5
M12.7: bench --gpu adds an adjustment-layer comp, speedup and GPU-vs-CPU agreement columns
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:59:57 -04:00
Brandon Thomas
ea3e983876
Merge GPU colour effects into M12.7 (docs/effects.md regenerated: GPU badges)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:54:53 -04:00
Brandon Thomas
7c9d865d19
Merge branch 'worktree-agent-a15cecfec57d5290d'
2026-10-03 02:52:40 -04:00
Brandon Thomas
01701193c4
M7.7: merge fixes (Exposure param path, remaining stubs list, effects doc)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:51:56 -04:00
Brandon Thomas
79d3d65478
Merge GPU blur/transition/generate effects into M12.7
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:47:46 -04:00
Brandon Thomas
be27a910f5
Merge GPU distort/stylize effects into M12.7
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:47:03 -04:00
Brandon Thomas
91ab3a3fc5
M12.7: GPU colour effects (Color Balance, Vibrance, Lumetri, Black & White, Tritone, Colorama, Channel Mixer, Selective Color, Linear Color Key, Key Light)
...
fx_color kernels mirror the CPU effects operation for operation: one per-pixel
pass for the point effects, Lumetri with its Sharpen luminance blur, and Key
Light's matte pipeline (pre-blur, clip, rollback, despot, shrink/grow, softness,
edge band) as plane passes. CPU fallback: Key Light with Inside/Outside masks or
Hard Colour after Screen Softness, Colorama with Interpolate Palette off.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:46:52 -04:00
Brandon Thomas
c8623b1864
M12.7: GPU blur/transition/generate effects (radial, camera lens, CC radial fast, wipes, venetian, cell pattern, checkerboard, grid, 4-color, noise, add grain)
...
Kernels in fx_generate.wgsl mirror the CPU effects; wipe edges use f64
per-column/per-row terms uploaded as (hi, lo) pairs. CPU helpers shared
with the GPU are now public (camera_lens_spans, gen_mode, pattern_kind,
GrainLook, place_layer). GPU tests in tests_fx_generate.rs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:46:09 -04:00
Brandon Thomas
f855a4b55b
M14.5: wire the remaining settings; keyframe assistants and labels; AE menu entries
...
Settings: 56 of 59 not-yet-wired settings now change behaviour (nested-comp switches,
constant vertex count, related-item time sync, match-name pick whip, split-layer order,
Home on open, motion path span, internal wireframes, zoom quality, label-coloured tabs,
mask colour cycling, gradients, grid/guide styles, text engine, font preview/recent/native
names, missing frames, unlabeled alpha, drag import, default output folder, segmenting,
bit depth names, preview sample rate, disk/media/conformed-audio caches, RAM reserve and
low-memory reduction, Video Preview window, 3D reference axes/extended viewer/draft
shadows, script file gate + File.execute warning, expression editor options and error
banner). Three stay display-only and are documented.
Features: Convert Audio to Keyframes, RPF Camera Import (JSON/CSV camera data),
keyframe colour labels + Select Keyframe Label Group, Recent Animation Presets.
Menus: Edit > History, File > Import Recent Footage, Replace Footage > With Layered
Comp, Save a Copy As XML (.ecprojx, opens again), Composition > VR (Create VR
Environment, Extract Cubemap), Assign Shortcut to 3D view / workspace, Window viewer
labels + open viewers, Help > System Compatibility Report / Enable Logging / Reveal
Logging File. Dynamic menu nodes (@dynamic:…) shared by the egui and native menus.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:45:44 -04:00
Brandon Thomas
0e3b354520
M12.7: GPU particles (CC Particle World, CC Particle Systems II, Particle Playground cannon): compute-shader simulation with GPU checkpoints, CPU as the oracle
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:44:36 -04:00
Brandon Thomas
fcc09cf095
M12.7: GPU distort/stylize effects (Turbulent Displace, Displacement Map, Wave Warp, Ripple, Twirl, Bulge, CC Lens, Mesh Warp, Mosaic, Find Edges, Emboss)
...
Compute kernels in shaders/fx_distort.wgsl mirroring the CPU effects; per-row/column
structure (map coordinates, wave phase, tile bounds, mesh triangle buckets) is computed
in f64 on the CPU and uploaded. Displacement Map fetches its map layer through the
effect host as the CPU does and samples it on the GPU. CPU oracle tests in
tests_fx_distort.rs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:42:43 -04:00
Brandon Thomas
86b8e24417
Merge branch 'main' into worktree-agent-a15cecfec57d5290d
...
# Conflicts:
# crates/effects/src/ocio.rs
# crates/engine/src/commands/stubs.rs
# docs/parity.md
2026-10-03 02:26:19 -04:00
Brandon Thomas
9994f5d309
M7.7: viewer and colour completion
...
View > Switch 3D View > Default, Split with New Locked Viewer, Use Display Color
Management (sRGB/P3 display in Settings > Previews), Simulate Output (Rec. 709/2020,
P3, sRGB, Linear, NTSC, PAL, Mac 1.8, Custom; Preserve RGB). Project Settings: Color
Engine (OCIO built-in config with ACEScg/ACES2065-1 working spaces), HDR clip/compand/
tone map, output space incl. Rec. 2100 PQ/HLG (SMPTE ST 2084, BT.2100, BT.2408
reference white; GPU curves too), Time Display Feet + Frames (35mm/16mm) display and
entry. OCIO effects read custom .ocio configs (YAML subset; Matrix/File/Exponent/Log/
LogAffine/CDL/Range/Group transforms, roles, displays/views).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:25:56 -04:00
Brandon Thomas
9a6389db86
M12.7: GPU effect family modules (colour, distort, generate) scaffolding; clippy fixes
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:25:12 -04:00
Brandon Thomas
878b47b5ed
M12.7: adjustment layers on the GPU (effect stacks resident on the device, CPU fallback per non-GPU effect)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:23:01 -04:00
Brandon Thomas
b8a56eb4a9
M13.6: scopes, content-aware fill (PatchMatch/flow propagation/membrane), cut detection and auto-trace algorithms
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:21:14 -04:00
Brandon Thomas
be282ce194
Merge main into M12.7 (bokeh DOF: the GPU 3D path takes the CPU's bokeh-blurred plane buffers)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:17:50 -04:00
Brandon Thomas
aafe46e091
M12.7: Classic 3D runs on the GPU (per-pixel depth sort, lights, ray-cast shadows, DOF); Auto sends 3D comps to the GPU
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 02:15:01 -04:00
Brandon Thomas
afd69fb97c
Merge branch 'worktree-agent-a2255b65f530fbf80'
2026-10-03 00:44:59 -04:00
Brandon Thomas
d0197a084c
Merge main into M13.5 long-tail polish
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:35:54 -04:00
Brandon Thomas
8fc0e257ff
M13.5: new StrokeStyle/ShapePath fields in the merged SVG and PSD importers
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:35:39 -04:00
Brandon Thomas
e3ae230387
Merge branch 'worktree-agent-a856b07f7d85d575f'
2026-10-03 00:28:01 -04:00
Brandon Thomas
8696d1e9ba
M7.7: camera/light rigs and Advanced 3D motion blur, blend modes, track mattes
...
Layer > Camera > Create Stereo 3D Rig (left/right eye comps with expression-linked eye
cameras, Stereo 3D Controls effect, stereo comp through 3D Glasses), Create Orbit Null,
Create Cameras from 3D Model; Layer > Light > Create Lights from 3D Model
(KHR_lights_punctual), Control Light with Camera, Create Environment Light Background
Layer (equirectangular sky drawn through the camera). glTF cameras and punctual lights
are parsed by effectcraft-model.
Advanced 3D: per-sample motion blur over the comp shutter, and blend modes / track
mattes / Preserve Transparency composited through the 2D path in depth order.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:27:47 -04:00
Brandon Thomas
a4f32f8df2
Merge main into M13.5 long-tail polish
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:25:09 -04:00
Brandon Thomas
08daf72e3f
M13.5: parity notes for the long-tail polish
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:24:37 -04:00
Brandon Thomas
7537eea85c
M13.5: Animate Text > Variable Font Axes
...
Text: text.animatorFontAxes (replaces the stub) lists the layer font's
variation axes (skrifa) or adds an animator property that offsets one axis
(weighted by the selectors, from the axis default); the renderer redraws each
character's outline at its design-space position (cached per location). The
Timeline's Animate: menu lists the font's axes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:24:05 -04:00
Brandon Thomas
b6e1f3ad0c
Merge branch 'worktree-agent-a387e042a6a5de07f'
2026-10-03 00:23:30 -04:00
Brandon Thomas
1d965bd596
Merge main into M9.12 effect fidelity work
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:23:15 -04:00
Brandon Thomas
5b4e936e9d
M13.5: ROI resize handles, Pan Behind snapping, 3D reference axes
...
Viewer: the region of interest has corner and edge handles that resize it
from the opposite corner/edge; Pan Behind snaps the anchor point (layer
features, guides, grid) and measures from the press point (it lagged by the
drag threshold); Choose Grid and Guide Options > 3D Reference Axes toggles a
world-axis triad seen through the view's camera (Settings > 3D).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:18:06 -04:00
Brandon Thomas
b2b8e08ed7
M13.5: Graph Editor snapping to markers, layer ends and work area
...
ANM-4: the Graph Editor's reference graph and key snapping already existed;
Snap now also targets comp and layer markers, layer in/out points and the
work area (graph_tools::comp_snap_times), with a unit test.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:18:06 -04:00
Brandon Thomas
355a6255a2
M9.12: effect parameter fidelity – all categories
...
Align every effect's display name, category, parameter names, order,
twirl-down groups, popup options, units, defaults and ranges with the
public After Effects effect reference, and implement controls that were
ignored or missing where cheap. One commit because the categories share
the registry, migration tables and GPU kernels (only green states).
Infrastructure
- effects::migrate: saved instances are upgraded on project open
(Session::replace_project → upgrade_effects): renamed ids
(PARAM_ID_ALIASES), params moved into twirl-down groups, popup values
remapped by label (POPUP_LABEL_ALIASES), refreshed names/UI hints,
added params created with legacy_default values that keep old renders.
- flatten_params also keys nested props by match path (group/param), so
effects declare grouped params with `group/param` ids; layer-source
companions sit next to grouped layer params.
- lookup() resolves old effect names (EFFECT_NAME_ALIASES).
- Registry-wide test: unique ids/names, non-empty names, defaults in
range, popup defaults within options, value kinds match UI.
- docs/effects.md generated from the registry (catalog.rs) with GPU /
32-bpc badges and per-effect status; a test keeps it current.
Batches
- Blur & Sharpen, Channel, 3D Channel, Perspective, Text, Utility:
Camera Lens Blur iris/highlight groups, Compound Blur layer, Camera-
Shake Deblur method/strength, Invert full channel list (CPU HLS/YIQ),
Set Channels/Set Matte layers, Channel Combiner targets, 3D Channel
Extract clamp/invert.
- Color Correction: temporal smoothing + scene detect for Auto Color/
Contrast/Levels and Shadow/Highlight, Brightness & Contrast legacy
switch, Change to Color tolerance group, Leave Color, Photo Filter
presets, Exposure channels, Levels clip popups, Colorama phase source,
Color Link sample list, Lumetri groups (CPU + GPU kernels).
- Distort: Bulge, Displacement Map layer/behaviour, Magnify, Optics
Compensation resize, Ripple conversion, Transform sampling, Turbulent
Displace types/pinning/evolution, Wave Warp types/pinning, Twirl and
Ripple radius fixes.
- Generate: 4-Color Gradient, Checkerboard, Grid, Circle size/feather/
blending, Advanced Lightning types, Cell Pattern, Radio Waves, Fractal
palettes, Scribble/Vegas names.
- Keying, Matte, Obsolete: Color Difference Key partials/views, Unmult
controls, Key Light groups, Refine Soft/Hard Matte, Roto Brush groups,
Mocha shape moved to Matte, Spill Suppressor accuracy, Basic/Path Text
groups.
- Noise & Grain, Immersive Video, Audio, Time: Fractal/Turbulent Noise
full control set (noise3.rs, GPU), grain look groups, Remove Grain,
VR effects, Compressor/Gate/Distortion controls, Timewarp groups,
VR Sphere to Plane name.
- Simulation: AE twirl-down groups for all simulations, Foam strength,
Particle Playground barrel radius and mapper targets.
- Stylize, Transition: Glow looping/dimensions/alpha (CPU + GPU),
Mosaic averaging, Cartoon groups, Roughen Edges evolution, Texturize
layer, Gradient Wipe layer, Radial Wipe both, Card Wipe options.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:15:06 -04:00
Brandon Thomas
d2ccf737a8
M13.5: Layer Style dialog
...
LYR-9: Layer > Layer Styles > Layer Style Options... (layer.style.options)
and choosing a style from that menu open a Layer Style dialog: style list
with check boxes (Blending Options first) and the selected style's controls
built from its layerStyles properties, edited live through prop.set (one
undo step per control); Cancel rolls back everything done since it opened.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 00:11:19 -04:00
Brandon Thomas
a89a9a3d3c
Merge branch 'main' into worktree-agent-a387e042a6a5de07f
2026-10-03 00:03:49 -04:00