github storytold/effectcraft v0.22.0
EffectCraft v0.22.0

one hour ago

What's Changed

  • OCIO config: a mismatched closing bracket ends a flow collection; multiline flows parse in linear time by @dylanmtaylor in #2939
  • Roto Brush: keep frozen mattes in a session without their model (#2833) by @JonRC in #2834
  • Import: EDL source timecodes land on each file's own time (#2832) by @JonRC in #2835
  • Lottie: read the closed flag older Bodymovin files keep outside the path by @JonRC in #2842
  • Text animators: a later animator's Opacity can show characters an earlier one hid by @JonRC in #2843
  • Lottie: warn when embedded glyphs (chars) are not imported by @JonRC in #2847
  • Import: BT.2020 PQ and HLG video gets the Rec. 2100 profile (#2849) by @JonRC in #2852
  • G2: --save runs on one project take turns, so no edit is lost by @JonRC in #2872
  • Export: H.264, HEVC and AV1 tag the frames' own colour (#2879) by @JonRC in #2881
  • Viewer: the Rotation tool turns a child around its own anchor by @barchukmov in #2887
  • Puppet: a click where the deformed layer is empty creates nothing by @barchukmov in #2891
  • UI: Composition Settings widens to fit a longer translation (#2841) by @ljkx in #2892
  • SAM 2: read the wgpu env variables and refuse adapters without compute shaders (#2900) by @JonRC in #2905
  • Layer and item names: a second layer or a copy of v-b1.mp4 is v-b1.mp4 2 (#2904) by @JonRC in #2908
  • Text animators: say that animator indexes count from 1 (#2907) by @JonRC in #2909
  • Match Grain: take no sample box beside transparent pixels (#2919) by @JonRC in #2922
  • material.set: name the Material Options a layer doesn't have (#2917) by @JonRC in #2924
  • Panels: the panel menu stays as wide as its contents (#2864) by @barchukmov in #2933
  • Panels: the gutter keeps rows clear of the scroll bar (#2867) by @barchukmov in #2934
  • Viewer, Timeline: a middle-drag pans and moves no layer (#2854) by @barchukmov in #2935
  • Cryptomatte eyedropper: pick IDs in the viewer from the Selection (#473) by @MatejKozlovsky in #2957
  • 3D Camera Tracker: Effect Controls say how many frames a partial solve solved (#2959) by @JonRC in #2960
  • Effect Controls: Shift-click selects a range of effects by @barchukmov in #2962
  • i18n(ja): the work area is ワークエリア in the panel too by @zitann2020 in #2978
  • Pre-compose: layers left behind drop links to moved layers; default names are numbered by @nanox333 in #2979
  • Render Queue EXR sequences are scan-line, not tiled (#2805) by @HEOJUNFO in #2812
  • test(cli): a child that exits before draining stdin breaks the write, not the test by @rahul05ranjan in #2819
  • 3D Camera Tracker: a partial solve is not reported as solved (#2822) by @JonRC in #2824
  • Motion Tile: mirror folds sample the edge texel, not the transparent outside (#2820) by @rahul05ranjan in #2825
  • Fix #2803: Timewarp plays an animated Speed as a rate by @arnav-hiwarkar in #2878
  • Viewer: dragged layers snap to other layers' midpoints and center lines by @barchukmov in #2885
  • Timeline: box selection selects a keyframe as soon as it touches it by @barchukmov in #2888
  • CLI: props prints an enum's label next to its number (#2928) by @JonRC in #2931
  • i18n: complete the Traditional Chinese effect names (#2037) by @tommy1616 in #2981
  • Path booleans: sparse winding numbers and bounded merge runs by @dylanmtaylor in #2946
  • Mask feather: bound the variable feather's distance pass by @dylanmtaylor in #2947
  • Settings: when recovering from a bad value, try only the settings' own pages one by one by @dylanmtaylor in #3010
  • GPU: free effect working textures after each call instead of at frame end by @MatejKozlovsky in #1523
  • gpu: memory back-pressure for frames in flight (fixes OOM at 3–4 frames in flight) by @MatejKozlovsky in #1550
  • gpu: run Content-Aware Fill's PatchMatch and flow on the GPU by @gmrmad1 in #1856
  • Preview: debounce GPU OOM bursts and recover the frame budget by @howdeploy in #3025
  • Fix GPU/CPU parity in numerical effects by @skylartaylor in #1490
  • GPU: Posterize and CC Grid Wipe match the CPU on AMD and Intel (#1605) by @00xJS in #1836
  • GPU: build effect kernels on first use, each family from a module of its own (fixes #1590) by @00xJS in #1705
  • #1487: size the GPU memory cap from the card's video memory where Linux reports it (depends on #1550) by @00xJS in #1706
  • OCIO: refuse a .csp LUT whose header claims an oversized table before reserving it by @dylanmtaylor in #2938
  • After Effects project import (.aep / .aepx); export follows by @vangel76 in #2558
  • Content-Aware Fill: drop redundant full-range copies (#2570 phase 1) by @gmrmad1 in #2806
  • Pass the Linux signing key to the release workflow by @dylanmtaylor in #3074
  • About: credits column widths come from a tested fit_widths by @FredApps in #3039
  • G8: Plug-in Library: install, preview and update community WebAssembly effects by @iseemhlyfta in #2524
  • Frames cache: edits keep the frames they can't reach by @nazar-gavrylyk in #2795
  • Plug-ins: external effect helpers (safe, out-of-process native effects) + plug-in API 2 by @glumbis in #889
  • Effect ▸ Install Effect Plug-in… and plug-in bundles (wasm + ScriptUI panel in one go) by @justanshh in #2749
  • Timeline: a double-click on the composition marker bin adds a marker at the current time (#1826) by @ZIDAN44 in #3091
  • expr: an expression cannot rebind a prelude name for the next one (#2133) by @Anubhav-Rai in #2176
  • Grow the buffer to the pinned quad so Corner Pin draws outside the layer rectangle (#1938) by @MarekSpodBiedry in #1967
  • Export: use conformant ProRes alpha run termination by @skylartaylor in #2225
  • Content-Aware Fill: spill the range and stream the output (#2570 phases 2-4) by @gmrmad1 in #3079
  • Multi-layer EXR: one decode per frame shared by the picture and EXtractoR / Cryptomatte, picture-only decode for footage alone (#474) by @vangel76 in #2920
  • perf(media): tell the media pool which EXR footage effects read (#474) by @vangel76 in #2929
  • EXR export: no compand / tone mapping, and the output space's own curve (#2913) by @vangel76 in #2916
  • HDR Highlight Compression: match After Effects' compression curve by @vangel76 in #3133
  • .aep import: read effect values stored as default-state records by @vangel76 in #3134
  • Cryptomatte: Matte Only puts the matte in RGB with alpha 1, as After Effects does by @vangel76 in #3130
  • Render Queue OpenEXR: choose compression and half or 32-bit float by @vangel76 in #2915
  • Reveal newly created mask controls in the Timeline by @arnav-hiwarkar in #3149
  • After Effects project export, every chunk built in code (stacked on #2558) by @vangel76 in #2594
  • Report offline footage and recover automatically when media returns by @arnav-hiwarkar in #3161
  • Copy the shared house rules into AGENTS.md by @FredApps in #3162
  • contributors: set names for vangel76 by @vangel76 in #3041
  • Skip the startup update check when started for an agent by @vangel76 in #3097
  • Effects: Write-on and Stroke Brush Size go up to 200 px (#2980) by @vangel76 in #3021
  • EXR export: write the output space's chromaticities attribute by @vangel76 in #3038
  • Import: EDL clips without a SOURCE FILE link the file beside the list (#2836) by @vangel76 in #3019
  • Home screen: leave it when a menu command opens a composition by @vangel76 in #3092
  • Disk cache: stamp footage files for the salt off the UI thread by @vangel76 in #3106
  • Scripting: After Effects match names for 14 effects and Casts Shadows by @vangel76 in #3122
  • .aep import: map HDR Highlight Compression, Echo, Linear Wipe, Offset and Color Stabilizer by @vangel76 in #3119
  • .aep import: name the After Effects version in the report; 25.x and 24.x copies import like 2026 by @vangel76 in #3136
  • Color Stabilizer and Linear Wipe: match After Effects (sample positions, feather) by @vangel76 in #3135
  • Timeline: one selection box spans the layer list and the time graph by @vangel76 in #3075
  • Project panel: the Name column fits long names and resizes by @vangel76 in #3094
  • Viewer: Alt-drag duplicates the dragged layers by @vangel76 in #3076
  • Layer: Quick Set Anchor, nine anchor points with Position compensation by @vangel76 in #3080
  • Masks: set the corner roundness of a Rounded Rectangle mask by @vangel76 in #3077
  • Viewer exposure on the full float range of 32 bpc frames by @vangel76 in #2937
  • Cryptomatte: the Layer popup lists the footage's Cryptomatte layers (#473) by @vangel76 in #3020
  • Project panel: fix main's clippy failure in show() by @FredApps in #3173
  • Timeline: hover texts for the icon-only column headers and layer switches by @vangel76 in #3096
  • Accessibility (gap 25), slice 2: Info, Flowchart, Script Console and the 3D Camera Tracker block named, described and keyboard-operable (builds on #1339) by @vangel76 in #1341
  • .aep import: map the Cryptomatte plug-in to EffectCraft's Cryptomatte by @vangel76 in #3109
  • Posterize on the GPU: divide by the levels exactly by @FredApps in #3179
  • EXR golden test: compare samples near, not bit for bit by @FredApps in #3181
  • Display pass tests: a virtual GPU gets the software tolerance by @FredApps in #3182

New Contributors

Full Changelog: v0.21.1...v0.22.0

Don't miss a new effectcraft release

NewReleases is sending notifications on new releases.