4323 Commits
Author SHA1 Message Date
Brandon Thomas 4aa2c6ba8b Merge pull request #734 from vangel76/fix-678-psd-drop-dialog
#678: dropped Photoshop files show the Import Photoshop File dialog
2026-10-12 03:02:56 -04:00
Brandon Thomas 64b7088867 Merge pull request #733 from vangel76/fix-473-crypto-quoted-names
#473: Cryptomatte Selection keeps quoted names with commas whole
2026-10-12 03:02:55 -04:00
Brandon Thomas a4a117c1f7 Merge pull request #731 from vangel76/fix-710-ruler-frames
#710: Timeline ruler labels frames when Time Display is Frames
2026-10-12 03:02:54 -04:00
Brandon Thomas adaa8d65bb Merge pull request #728 from vangel76/contributors-vangel76
Contributors: add vangel76 (Valentin Klein)
2026-10-12 03:02:52 -04:00
Brandon Thomas 15d50597dd Merge pull request #716 from storytold/ci-speedup-nightly-platform-checks
CI: FreeBSD and Windows ARM64 nightly and on release, not per PR
2026-10-12 03:02:51 -04:00
Brandon Thomas 0ae711ba3a Merge pull request #713 from mjohnson7cd/fix/2081-rendering-hang
fix(gpu): cap GPU readback staging buffers to prevent memory exhaustion
2026-10-12 03:02:50 -04:00
Brandon Thomas 686280cc5f Merge pull request #711 from Ni-zav/fix/704-cylinder-axis-rotation-s20261011T035800Z-cf39
fix(effects): add XYZ rotation to CC Cylinder on CPU and GPU
2026-10-12 03:02:48 -04:00
Brandon Thomas 196dd80104 Merge pull request #709 from Ni-zav/fix/684-empty-viewer-project-drop-s20261011T035800Z-cf39
fix(viewer): create a composition when dropping footage onto an empty viewer
2026-10-12 03:02:47 -04:00
Brandon Thomas d7fe6d2e56 Merge pull request #705 from tylerjenningsw/enhance/custom-ui-scale
Settings: allow custom UI scale percentages (#682)
2026-10-12 03:02:46 -04:00
Brandon Thomas 4482ad9634 Merge pull request #703 from didpublishing/fix/windows-path-tests
Tests: six engine tests no longer assume the working directory's drive on Windows
2026-10-12 03:02:44 -04:00
Brandon Thomas 162a2e2e01 Merge pull request #699 from didpublishing/fix/596-gpu-information
#596: GPU Information names the adapter, or why the GPU compositor is off
2026-10-12 03:02:43 -04:00
Brandon Thomas b84b5f47ed Merge pull request #695 from vbasky/fix/535-pixel-motion-vectors
Pixel Motion Blur: synthesize from motion vectors, honour Vector Detail (#535)
2026-10-12 03:02:42 -04:00
Brandon Thomas 62dd3ae2ed Merge pull request #694 from tylerjenningsw/enhance/gradient-editor
Shapes: edit gradient color and opacity stops (#612)
2026-10-12 03:02:40 -04:00
Brandon Thomas edfa8ee51c Merge pull request #677 from vbasky/test/651-gif-preview
Tests: an imported animated GIF plays its frames (#651)
2026-10-12 03:02:39 -04:00
Brandon Thomas dff86891d0 Merge pull request #399 from FeiLiuEM/test/variable-font-axis
Text: the variable-font test picks an axis that moves the advance
2026-10-12 03:02:38 -04:00
MarekSpodBiedry 25be439a0b Scale the timeline waveform by the layer's Audio Levels (#974) 2026-10-12 08:39:44 +02:00
MarekSpodBiedry 69d2b53892 Show the Continuously Rasterize switch on vector footage layers (#957) 2026-10-12 08:34:01 +02:00
Kristian Myram e0a23e8763 Fix #958: add vector conversion to layer context menus 2026-10-12 08:17:50 +02:00
Fabio LussiandClaude Opus 5.5 36b935aa16 docs: drop the docs workflows until the checker is on artcraft-services main
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 08:09:20 +02:00
MarekSpodBiedry 5df37babc3 Keep Footage panel overlay/insert edits at full length past the comp end (#795) 2026-10-12 08:05:22 +02:00
Kristian Myram c644c5f7e9 Fix #978: widen Project Settings dialog 2026-10-12 08:02:34 +02:00
Fabio LussiandClaude Opus 5.5 c421438012 docs: pin the docs checker to a commit and its SHA-256
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 07:13:47 +02:00
webdevtodayjason d9f80ea76f SVG: percentages inside a nested <svg> resolve against its own viewport 2026-10-11 22:36:43 -05:00
webdevtodayjason c72a556b89 Contributors: credit webdevtodayjason as Jason Brashear 2026-10-11 22:36:43 -05:00
Fabio LussiandClaude Opus 5.5 ae3e1d1034 docs(user): apply final review fixes
Part 1: verified = latest release tag policy in docs/user/AGENTS.md; released-pages sentence in root AGENTS.md. Part 6: re-pad platforms table.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:06:05 +02:00
Fabio LussiandClaude Opus 5.5 851f22cc31 docs(user): apply final review fixes
Items B-EffectCraft 1-2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:49:28 +02:00
SteamSmithandClaude Opus 5.5 011e242b74 engine: build well-formed file:// URLs for Edit Original, Reveal and File.execute
Three places built file URLs by string concatenation: Edit Original
(`file://{path}`), the Reveal commands via folder_url (`file://{dir}`) and
File.execute (`file://` with only spaces replaced by %20). On Windows that
produced `file://C:\Users\...`, and any path containing `#`, `%`, `?` or
non-ASCII characters named the wrong file (or none).

Add layer_menu::file_url: backslashes become `/`, drive paths get the third
slash (`file:///C:/...`), and bytes outside the plain path characters are
percent-encoded (UTF-8 for non-ASCII). folder_url, edit_original and
execute_file use it.

Tests: file_urls_are_well_formed, folder_url_names_the_containing_folder,
edit_original_opens_an_encoded_file_url, execute_file_opens_an_encoded_file_url.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:38:35 -04:00
Nigel Ihza Firdausy cf61eba87a test(ui): cover renaming an expression control header 2026-10-12 09:19:28 +07:00
Nigel Ihza Firdausy 94f74075f9 fix(ui): let users rename effect instances in Effect Controls (#944) 2026-10-12 09:18:57 +07:00
Fabio LussiandClaude Opus 5.5 d403aec0c3 docs: fix macOS menu paths and shortcut notes in EffectCraft docs
Sources: crates/engine/src/menus.rs (EffectCraft > Settings... on macOS, lines
~475-495; Edit > Preferences [!mac], ~658-675), crates/project/src/render_queue.rs
(RenderQueueItem.render defaults to true), issue #613 (RTX 5060 Ti comment),
docs/web.md (browser private storage).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:11:36 +02:00
Fabio LussiandClaude Opus 5.5 a6ab6a8f8c docs: add user docs for EffectCraft
Adds docs/user/ (published at getartcraft.com/docs/effectcraft), the docs-check
and docs-publish workflows (copied from craft-launcher), and a "User docs" rule
in AGENTS.md. Verified against 0.8.0.

Source notes per page:
- index: README, crates/engine/src/menus.rs, website crafting-apps.ts entry,
  docs/gaps.md (.aep).
- getting-started/install: README Downloads, gh release v0.8.0 assets,
  packaging/windows/effectcraft.wxs (per-machine, Start Menu, desktop shortcut
  box), package.ps1 (portable zip contents), launcher crates/core catalog.rs
  (EffectCraft listed), launcher docs install guide.
- guides/make-a-composition: menus.rs (Composition, Layer, Help), comp.rs
  shortcut, panels/comp_settings.rs (labels, presets, tabs), panels/home.rs,
  engine/src/learn.rs (Animate a title tutorial).
- guides/animate-with-keyframes: learn.rs, panels/timeline.rs (stopwatch, Add
  or remove keyframe), commands/prop.rs (Easy Ease F9), menus.rs (Animation).
- guides/add-an-effect: menus.rs (Effect, Window), panels/effects_presets.rs,
  commands/effect.rs, effects/src/misc.rs (Gaussian Blur parameters).
- guides/render-a-video: panels/render_queue.rs (labels), project
  render_queue.rs (format labels, default H.264, template, supports_alpha),
  commands/render_queue.rs (Cmd+M), README (Lottie).
- guides/import-footage: docs/footage.md, menus.rs, engine/src/prefs.rs
  (Sequence Footage), README (Wayland drop).
- troubleshooting/gpu-not-used: issues #596, #613; prefs.rs (Window Graphics),
  commands/app_more.rs (System Compatibility Report text), ui-egui menus.rs
  (GPU Information dialog text, checked at v0.8.0).
- troubleshooting/footage-missing: docs/footage.md (relink), commands/
  file_more.rs (Find Missing Footage), issue #652 and PR #676.
- faq/after-effects-projects: README "Where it stands", docs/gaps.md.
- faq/price-and-platforms: README (license, platforms, status), LICENSE files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:04:57 +02:00
heojunfoandClaude Opus 5.5 09b3042e20 Effects: Fractal and Turbulent Noise stay inside the layer's alpha (#939)
Masks are applied before effects, but the noise was composited with the
Opacity alpha alone, so a masked solid filled the whole layer. The result
is now multiplied by the original alpha on the CPU and on both GPU paths
(kernels.wgsl for the default settings, fx_noise.wgsl for the rest).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 10:31:31 +09:00
ThemolxandClaude Opus 5.5 91b078777e Timeline: trim all selected layers together
Dragging the in or out edge of a selected layer's bar now trims every
selected layer by the same delta from its own in/out point, as in After
Effects. layer.timing gains relative inDelta/outDelta params (seconds,
frame-snapped), clamped to the comp start/end and to one frame of layer;
the drag stays one undo step via the merge key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:16:06 +02:00
Kristian Myram b693a6286b Add Character fill and stroke eyedroppers 2026-10-12 01:49:59 +02:00
Kristian Myram 650ea35c18 Keep GPU information dialog layout steady 2026-10-12 01:30:55 +02:00
Kristian Myram 01c03fa8da Add Essential Graphics to blank Timeline context menu 2026-10-12 01:25:56 +02:00
Anton IliashenkoandClaude Opus 5.5 14b6b9c242 Composition Settings: save and delete your own presets
As in After Effects, the Preset menu in Composition Settings / New Composition gets a Save
button (asks for the name in a Choose Name window; an existing name of yours is replaced) and a
Delete button for the selected preset of yours. Your presets keep frame size, pixel aspect and
frame rate, are listed above the built-in ones and live in the settings (`compPresets`), so they
survive restarts and Reset All. Commands: `comp.savePreset`, `comp.deletePreset`, `comp.presets`.
A hand-edited settings file loses only its invalid presets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 01:16:52 +02:00
Kristian Myram 1888f0aaf3 Fix full-screen shortcut shown on Windows 2026-10-12 01:15:23 +02:00
Anton IliashenkoandClaude Opus 5.5 e108f460c4 #637: double-clicking a layer's bar acts like its name; text layers edit their text
Double-clicking a text layer in the Timeline (its name or its bar) edits its text in the
Composition viewer with the whole text selected, as in After Effects; it used to open the rename
field (Enter still renames). The layer bar had no double-click at all: it now opens a precomp,
opens footage and solids in the Layer panel and edits text, like the name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 00:35:23 +02:00
Brandon ThomasandClaude Opus 5.5 59bd63c282 Release workflow: pass the Azure signing secrets so Windows builds are signed
Since the release workflow moved to storytold/craft-common-actions, it has
passed only the Apple and WINDOWS_CERTIFICATE secrets. The signing job reads
values from the release environment, but only for names the caller lists, so
the AZURE_* names that Trusted Signing uses came through empty and Windows
builds would ship unsigned. Same fix as storytold/craft-launcher#174.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 18:02:58 -04:00
pravdomilandClaude Opus 5.5 c8968cee1f fix: View > Go to Time accepts the dialog's float frame [skip ci]
The Go to Time dialog's Frame field sends a float (5.0); time.set read
`frame` with as_i64, got None and failed with "need time, frame or
timecode". Read it as any JSON number and round.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:55:11 +02:00
MarekSpodBiedry 8927ae5781 Cap text animator range selector Start, End and Offset (#908) 2026-10-11 23:39:23 +02:00
MarekSpodBiedry 050bc4723e Resume an open mask path when the Pen clicks its last vertex (#912) 2026-10-11 23:39:07 +02:00
MarekSpodBiedry 189dec0644 Interpret Footage: apply the Loop (times) value sent as a float (#909) 2026-10-11 23:38:07 +02:00
pravdomilandClaude Opus 5.5 ffc481a4e4 UI: numeric forms open with their first number focused and selected
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:36:15 +02:00
pravdomilandClaude Opus 5.5 50eddc1207 UI: keyboard shortcuts for dialog answers
Unsaved Changes: Enter is Save, Cmd+Backspace is Don't Save.
Revert Project: Cmd+R is Revert (the button is now red).
Delete Items: Cmd+D is Delete.
Crash recovery: Enter is Open Auto-Save.
Marker: Enter is OK, Cmd+Backspace is Delete (from a focused text field too).

The macOS menu bar hands Cmd+D and Cmd+R back to the open prompt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:35:37 +02:00
pravdomilandClaude Opus 5.5 4c5d775761 Timeline: Alt-click an A/V feature switches the other layers
Alt-click on a layer's Video, Audio, Solo or Lock switch sets that layer
apart: the other layers go off (or locked), and the next Alt-click brings
them back. Backed by layer.setSwitch {others: true}, one undo step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:14:39 +02:00
pravdomilandClaude Opus 5.5 8e1d742a9d UI: dialogs open with their first text field focused and selected
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:13:53 +02:00
Fabio LussiandClaude Opus 5.5 16d9d7d30b Desktop: write log records to standard error and a rotating log file
A launch from the Dock, the Start menu or a launcher has no terminal, and
without RUST_LOG nothing reached standard error anyway, so start-up and
GPU warnings were lost unless Help > Enable Logging was already on.

The logger now writes EffectCraft's info records and everyone's warnings
to standard error and to Logs/effectcraft.log in the settings folder.
Each launch keeps the previous two runs' logs; the file is capped at
16 MiB. RUST_LOG still overrides the filter. Help > Reveal Logging File
shows this run's log unless Enable Logging is on.

Ported from storytold/pdfcraft#239.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:37:27 +02:00
pravdomilandClaude Opus 5.5 a78961a346 Viewer: Fit up to 100% follows the panel size
Magnification ▸ Fit up to 100% stored the magnification of the moment it
was picked, so the comp kept that size when the panel was maximized or
resized. It is now a fit mode like Fit, capped at 100%.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:21:52 +02:00