Commit Graph
4191 Commits
Author SHA1 Message Date
Brandon Thomas 764343e08c Merge PR #2888 2026-11-03 09:08:08 -05:00
Brandon Thomas 072db0ca35 Merge PR #2842
# Conflicts:
#	crates/lottie/src/tests.rs
2026-11-03 09:05:06 -05:00
Brandon Thomas 6334d07fe1 Merge PR #2872
# Conflicts:
#	apps/effectcraft-cli/tests/it/cli.rs
2026-11-03 09:05:01 -05:00
Brandon Thomas 369608c826 Merge PR #2978 2026-11-03 09:04:56 -05:00
Brandon Thomas 5dc64bb227 Merge PR #2885 2026-11-03 09:04:55 -05:00
Brandon Thomas e52727fa91 Merge PR #2887 2026-11-03 09:04:55 -05:00
Brandon Thomas 3072f009bf Merge PR #2891 2026-11-03 09:04:54 -05:00
Brandon Thomas 21edd52ae6 Merge PR #2933 2026-11-03 09:04:53 -05:00
Brandon Thomas 8a82962335 Merge PR #2934 2026-11-03 09:04:53 -05:00
Brandon Thomas b97a8f796a Merge PR #2935 2026-11-03 09:04:52 -05:00
Brandon Thomas ff204b37fa Merge PR #2962 2026-11-03 09:04:51 -05:00
Brandon Thomas 0d640999e6 Merge PR #2812 2026-11-03 09:04:46 -05:00
Brandon Thomas 0a91567425 Merge PR #2834 2026-11-03 09:04:45 -05:00
Brandon Thomas d6b67ac56c Merge PR #2835 2026-11-03 09:04:45 -05:00
Brandon Thomas f13aef1655 Merge PR #2847 2026-11-03 09:04:45 -05:00
Brandon Thomas 2267ea4970 Merge PR #2852 2026-11-03 09:04:45 -05:00
Brandon Thomas 3170c0e34f Merge PR #2905 2026-11-03 09:04:45 -05:00
Brandon Thomas 708de30891 Merge PR #2908 2026-11-03 09:04:45 -05:00
Brandon Thomas 180d0b9d91 Merge PR #2843 2026-11-03 09:04:45 -05:00
Brandon Thomas 0e3d54f982 Merge PR #2909 2026-11-03 09:04:45 -05:00
Brandon Thomas 5720043d32 Merge PR #2922 2026-11-03 09:04:45 -05:00
Brandon Thomas 2fb7003643 Merge PR #2924 2026-11-03 09:04:45 -05:00
Brandon Thomas 7758a6b99d Merge PR #2881 2026-11-03 09:04:45 -05:00
Brandon Thomas 7ae139ebf0 Merge PR #2931 2026-11-03 09:04:45 -05:00
Brandon Thomas f50985f9e6 Merge PR #2960 2026-11-03 09:04:45 -05:00
Brandon Thomas e175a272c7 Merge PR #2824 2026-11-03 09:04:45 -05:00
zitann2020andDeepSeek V4.1 Flash e8e3262a86 i18n(ja): the work area is ワークエリア in the panel too
The panel catalog said 作業領域 for Work Area while the four menu rows say ワークエリア. The installed After Effects 2026 settles it: Edit > Preferences > Previews reads キャッシュ範囲: ワークエリアと現在の時間.

The row draws the Content-Aware Fill panel range menu and the Time Span form, so a reader met both words for
one thing depending on where they looked. One row, no other change.

Co-Authored-By: DeepSeek V4.1 Flash <noreply@deepseek.com>
2026-11-03 22:14:57 +09:00
Dylan M. Taylor d025b59e6d OCIO config: a mismatched closing bracket ends a flow collection, and multiline flows are assembled in linear time (#2939) 2026-11-03 06:03:05 -05:00
Bar BorerandClaude Opus 5.5 220d85f4fc Effect Controls: Shift-click selects a range of effects
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 11:53:55 +02:00
JonRC 940a57e865 3D Camera Tracker: Effect Controls say how many frames a partial solve solved (#2959)
A solve with unsolved frames drew the same block as a full one, so it
looked complete. It now gets one more line in the warning colour,
"Partial solve: N of M frames solved", under the status line, and the
editor grows by that line only then. The line is an automation element,
so agents can read it too.
2026-11-03 04:08:39 -03:00
heojunfoandClaude Opus 5.5 a5f0af1f57 test(export): name the tiled bit in the EXR version check
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 15:33:34 +09:00
Bar BorerandClaude Opus 5.5 8ff461b35b Panels: a window widened under the open panel menu gives it its width back (#2864)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 06:17:54 +02:00
Bar BorerandClaude Opus 5.5 dc28883993 Tests: build the viewer tests' EvalCtx from the session's active comp
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 05:35:02 +02:00
Bar BorerandClaude Opus 5.5 6c49ef819d Tests: trim the key box tests to what #2857 changes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 05:16:27 +02:00
Bar BorerandClaude Opus 5.5 8a37ff6b43 Tests: trim the midpoint snap tests to what #2855 changes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 05:07:59 +02:00
Bar BorerandClaude Opus 5.5 325c029d06 Viewer: the Rotation tool measures its angle on screen about the anchor (#2870)
One comp-space path: the pivot is the anchor where it shows and a flipped
parent reverses the turn, so the separate parent-space frame and the moved
parent_to_comp go. Under uneven or skewed parents the layer's edge tracks the
pointer slightly less exactly. The empty-layer marker goes back to main's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 04:59:16 +02:00
Bar BorerandClaude Opus 5.5 72d0b3aa08 Viewer, Timeline: a middle-drag pans and moves no layer (#2854)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 04:57:19 +02:00
Bar BorerandClaude Opus 5.5 f1767c3349 Panels: the gutter keeps rows clear of the scroll bar (#2867)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 04:57:14 +02:00
Bar BorerandClaude Opus 5.5 fe6031a36f Panels: the panel menu stays as wide as its contents (#2864)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 04:57:08 +02:00
JonRC 34b3795c00 CLI: props prints an enum's label next to its number (#2928)
The text listing printed enum values as bare numbers, which are 0-based
where After Effects scripting counts from 1, so Range Selector Shape 2
read as Ramp Up was Ramp Down. Print the label from the property's
options, as props --json already lists them: "0 (Square)".
2026-11-02 23:52:47 -03:00
JonRC 12a61c5cc9 Export tests: check the bitstream colour on the bare elementary stream
The bitstream check read ffprobe's first-frame tags from the MP4, which
ffmpeg can fill from the colr box when a stream says nothing itself. Copy
the video out as a bare h264, hevc or obu stream first, so only the SPS VUI
or AV1 color_config counts.
2026-11-02 23:24:09 -03:00
JonRC 1b5c28ee1d Follow-up to #2919: Match Grain matches no grain without a clean sample box
A source with no box-sized area clear of transparent pixels (a small
layer inside a blur's padding) got no sample boxes, and
grain_stats_boxes then measured the whole image, edge included. With no
clean box Match Grain now matches no grain, as After Effects applies
none when its samples hold transparent areas. Compensate for Existing
Noise took the same route through the layer's own boxes, so a layer
with no clean box now has nothing taken off. grain_stats_boxes keeps
its empty-list fallback.
2026-11-02 23:17:04 -03:00
JonRC 583ba084b6 Fix #2917: material.set names the Material Options a layer doesn't have
A 3D model layer keeps its file's materials, so it has no Base Color,
Metallic, Roughness or Emissive. material.set refused them with "no
Material Options property matched (..., baseColor, metallic, roughness,
...)", naming the parameters it had just refused, and next to a
parameter the layer has it dropped them and reported success.

A parameter that none of the given layers has now fails the command
(nothing is set), naming it and the properties the first layer has. A
value of the wrong type is its own error. The parameter list says which
layer kinds take which.
2026-11-02 23:13:02 -03:00
Bar BorerandClaude Opus 5.5 fa0c260630 Puppet: refuse only a mesh that repeats one already there (#2865)
Cut the fix down: a click off every mesh makes nothing only when the art it resolves to
already has a mesh with that outline. The nearest-art fallback in `region` stays, so a
near miss beside separate art still meshes it. `mesh::outline` is as it was and the
`newMesh` option of puppet.addPin is back.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 04:00:19 +02:00
Bar BorerandClaude Opus 5.5 5593c6e8b3 Tests: give the key box test's comp a frame rate, so its keys stay on whole seconds
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 03:57:05 +02:00
JonRC c6ab02b83a Fix #2919: Match Grain takes no sample box beside transparent pixels
A box's own pixels had to be opaque, but the high-pass that measures its
grain reads 3 px around it, and a transparent pixel there is black once
unpremultiplied. A blur earlier in the stack pads the layer with
transparent pixels, so boxes along that border measured the edge as
strong, smooth colour grain, and Match Grain drew 12 px colour cells
from a clean source on the frames that picked them. Boxes now need their
3 px surround opaque too (a summed-area table keeps the check O(1) per
candidate). Remove Grain picks its boxes the same way.
2026-11-02 22:49:52 -03:00
Bar BorerandClaude Opus 5.5 9431089493 Puppet: decide a marquee from where the button went down (#2865)
The drag branch asked what was under the pointer when the drag was recognised, by which
time a quick drag has already reached the art, so no gesture started at all.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 03:37:31 +02:00
Brandon ThomasandClaude Opus 5.5 7870b5916a Release 0.21.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.21.0
2026-11-02 19:26:55 -05:00
JonRC 0b59d2b8c4 Follow-up to #2907: say that a uid wins over an index for animator
animator_uid matches a uid before an index, so an animator whose uid
equals an index is picked over the one at that position. The four
commands that take `animator` (layer.addTextAnimatorProperty,
layer.addTextSelector, text.addSelector, text.animatorFontAxes) now say
so; text.addSelector also said only `uid|index` before. The test gives a
second animator uid 1 and checks that `animator: 1` picks it.
2026-11-02 21:14:22 -03:00
JonRC 5e8e6f829e SAM 2: the gpu_matmul example reads WGPU_POWER_PREF too (#2900) 2026-11-02 20:43:58 -03:00