effectcraft/crates/engine/src
bflatastic 492fa6de0a Effects: OCIO custom configs read Blender's v2 transforms and warn (#410)
Cause: the config reader didn't know ColorSpaceTransform or
ExponentWithLinearTransform and passed colours through them silently.
Blender's Linear Rec.709 -> sRGB therefore stayed in its E-white XYZ
reference space (the blue cast) without the sRGB curve. Display
colorspaces, view transforms, v2 views, looks, AllocationTransform,
BuiltinTransform and .spi1d / .spimtx files were missing too, and
nothing told the user.

Fix (from the OCIO v2 documentation and the CLF "moncurve", not OCIO's
source): ExponentWithLinear, ColorSpace, Look, DisplayView, Allocation
and Builtin transforms (identity, ACES AP0/AP1 matrices, ACEScct /
ACEScc, the sRGB / P3 / Rec.1886 / gamma / PQ displays). RangeTransform
now clamps and takes one-sided ranges. Display colorspaces meet the
scene reference through the default view transform. Added v2 views,
view looks, the looks section and .spi1d / .spi3d / .spimtx files. A
conversion is built once as a flat list of steps (Config::path /
display_path) for both the CPU effect and the GPU colour program (new
moncurve and clamp ops and the ACEScc curve; a program over the
kernel's 255 ops renders on the CPU). Named-transform resolution is
limited to 16 levels and 4096 steps, and YAML nesting to 64 levels, so
hostile or looping configs stop. Transforms that are still unsupported
(Grading Primary / Tone, ACES output, HLG…), unreadable configs and
unknown spaces are now reported: a warning under the effect in Effect
Controls, and the new effect.warning query.

Tests: ocio_config::blender_like_config_converts_linear_rec709_to_srgb
(CST, display colorspaces, v1 / v2 views, allocation, looks, builtin,
range, loops), moncurve_matches_srgb_and_inverts, builtin_styles,
yaml_nesting_is_bounded, ocio::spi_files_parse,
tests_effects::ocio_effect_warns_about_unsupported_config_transforms,
gpu tests_fx_lut::ocio_custom_config_v2 (GPU = CPU).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 23:57:12 +07:00
..
commands Effects: OCIO custom configs read Blender's v2 transforms and warn (#410) 2026-10-09 23:57:12 +07:00
menus M3.13: menu bar: Group/Ungroup Shapes in the Layer menu, Window ▸ Learn, flowchart shortcuts, Center In View shortcut, Reveal in Explorer on Windows 2026-10-04 23:58:00 +07:00
autosave.rs M3.14: project files name the version that wrote them, never save unreadable, keep their format 2026-10-05 00:08:07 +07:00
camera_track.rs Effects: effect points on shape layers start at the layer centre (#227) 2026-10-08 20:33:03 +07:00
config.rs M13.1: branching history, puppet pin recording, WebAssembly plug-in API, ScriptUI model and hosts, File ▸ Scripts, deterministic render test 2026-10-03 04:07:20 -04:00
demo.rs M9.12: effect parameter fidelity – all categories 2026-10-03 00:15:06 -04:00
footage_check.rs Import: image sequences with a Sequence option, ranges, folders and missing frames (#297) 2026-10-09 18:00:07 +07:00
guard.rs Never crash: last-resort guard around command execution, and a logging panic hook 2026-10-04 13:27:33 -04:00
history.rs M13.1: branching history, puppet pin recording, WebAssembly plug-in API, ScriptUI model and hosts, File ▸ Scripts, deterministic render test 2026-10-03 04:07:20 -04:00
jobs.rs Import: dropped and picked files show an Importing card (#270) 2026-10-08 20:05:07 +07:00
learn.rs M13.5: Home ▸ Learn tab with interactive tutorials (learn.list/start/step/stop/state, coach card, target highlight) 2026-10-03 05:25:45 -04:00
lib.rs Plug-ins: Ease Presets moves out of core into a bundled ScriptUI panel 2026-10-09 21:03:12 +07:00
links.rs Rename PrintCraft to PdfCraft (storytold/pdfcraft) (#207) 2026-10-07 15:37:26 -04:00
logging.rs Logging: RUST_LOG prints to stderr, and start-up logs its milestones (#234) 2026-10-08 13:32:16 +07:00
mask_track.rs M13.36: face tracking trained model — MediaPipe Face Landmarker on a pure-Rust TFLite interpreter 2026-10-05 20:39:45 +07:00
media_browser.rs Import: Interpret Footage ▸ Preserve RGB keeps the file's values (#411) 2026-10-09 23:57:12 +07:00
media_cache.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
menus.rs Plug-ins: Ease Presets moves out of core into a bundled ScriptUI panel 2026-10-09 21:03:12 +07:00
models.rs M13.36: face tracking trained model — MediaPipe Face Landmarker on a pure-Rust TFLite interpreter 2026-10-05 20:39:45 +07:00
offload.rs M13.36: face tracking trained model — MediaPipe Face Landmarker on a pure-Rust TFLite interpreter 2026-10-05 20:39:45 +07:00
perf.rs Never crash: engine without expect() (job polling, commands, menus) 2026-10-04 13:40:46 -04:00
prefs.rs UI: Effect Controls and the Timeline have no parameter row separators, as in After Effects (#402) 2026-10-09 22:13:31 +07:00
preview.rs M13.8: Preview panel shortcuts and Align panel commands 2026-10-03 07:38:46 -04:00
psd_import.rs M13.6: PSD smart objects apply perspective quads and placed-layer warps 2026-10-03 07:21:00 -04:00
remote.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
render_queue.rs Merge pull request #384 from storytold/feat/297-image-sequences 2026-10-09 09:31:51 -04:00
roto.rs Effects: effect points on shape layers start at the layer centre (#227) 2026-10-08 20:33:03 +07:00
rq_tests.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
scriptui.rs Plug-ins: ScriptUI Panels folder scripts dock as panels and reopen, as in After Effects 2026-10-09 21:03:12 +07:00
sequence.rs Import: Interpret Footage has Start Timecode, as in After Effects (#297) 2026-10-09 20:50:39 +07:00
session_settings.rs Plug-ins: Ease Presets moves out of core into a bundled ScriptUI panel 2026-10-09 21:03:12 +07:00
shortcuts.rs M14.3: keyboard shortcut editor 2026-10-02 09:14:54 -04:00
storage.rs M13.24: web app depth (WEB-1) — GPU effects in frame workers, OPFS disk cache, storage manager 2026-10-03 18:35:03 -04:00
sysinfo.rs FreeBSD: system info reports memory, CPU model and OS version 2026-10-05 11:33:06 -04:00
templates.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
tests.rs Import: dropped and picked files show an Importing card (#270) 2026-10-08 20:05:07 +07:00
tests_3d.rs 3D: layer.newLight lists the Environment light and how to set its source; parity notes reflections (#261) 2026-10-08 11:57:55 +00:00
tests_anim_tools.rs ANM-6, CMP-5, CMP-3: Wiggler/Smoother/Motion Sketch, marker dialog + timeline markers, pre-compose options + comp navigator 2026-10-02 10:47:02 -04:00
tests_camera_track.rs M12.6: 3D Camera Tracker effect + UI 2026-10-02 23:02:47 -04:00
tests_codec_options.rs Render Queue: output files end in their format's extension once (#293) 2026-10-09 16:51:12 +07:00
tests_color_view.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
tests_disk_cache.rs Preview: Audio, Lock and Shy keep the cache; playback with audio waits for frames (#103) 2026-10-07 01:46:35 +07:00
tests_effects.rs Effects: OCIO custom configs read Blender's v2 transforms and warn (#410) 2026-10-09 23:57:12 +07:00
tests_essential.rs M13.11: essential graphics mirrored and linked properties 2026-10-03 09:38:19 -04:00
tests_essential_more.rs Merge main into M13.11 (bokeh kernel_spans/blur_levels, Essential Graphics as_type controls with mirrors and links) 2026-10-03 09:54:37 -04:00
tests_face.rs M13.36: face tracking trained model — MediaPipe Face Landmarker on a pure-Rust TFLite interpreter 2026-10-05 20:39:45 +07:00
tests_fidelity.rs M4.4: collapse transformations + slip 2026-10-02 10:14:53 -04:00
tests_frame_export.rs fix(export): keep values above 1.0 in EXR output (#339) 2026-10-08 20:22:49 -07:00
tests_history.rs M3.9: a browser session restored with unsaved changes stays modified 2026-10-05 06:33:40 +07:00
tests_keylight.rs M5.16: Key Light: keyer eyedroppers pick from the effect input (effect.pickColor); "keylight" search 2026-10-05 11:04:10 +07:00
tests_lottie.rs M11.4: Lottie export/import 2026-10-02 08:56:03 -04:00
tests_m137.rs M13.7: Save Frame As Photoshop Layers / ProEXR, Watch Folder, Vanishing Point (disabled), Create Nulls From Paths, VR Comp Editor, Help tutorials 2026-10-03 07:55:04 -04:00
tests_m145.rs Import: image sequences with a Sequence option, ranges, folders and missing frames (#297) 2026-10-09 18:00:07 +07:00
tests_markers.rs M13.33: nested comp markers on the precomp layer bar 2026-10-05 15:12:06 +07:00
tests_mask_warp.rs M13.32: web main-thread stall: Warp Stabilizer plans solved in job workers 2026-10-04 03:40:46 -04:00
tests_menu_cmds.rs Shapes: Duplicate duplicates the selected shape items, not the layer (#227) 2026-10-08 13:03:38 +07:00
tests_model3d.rs Import: a 3D model doesn't ask how to interpret its alpha (#264) 2026-10-08 21:18:52 +07:00
tests_models.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
tests_motion_blur_depth.rs M4.13: motion blur of collapsed precomps and of animated shape / text content 2026-10-05 12:35:30 +07:00
tests_paint.rs Puppet: the first pin no longer turns the layer about it (#313) 2026-10-09 12:34:00 +09:00
tests_panels.rs M13.30: Content-Aware Fill in a job worker on its GPU 2026-10-04 03:15:54 -04:00
tests_project_items.rs Edit: Delete removes selected animators, masks and shape groups (#151) 2026-10-07 13:32:40 +07:00
tests_proxy.rs Import: Interpret Footage ▸ Preserve RGB keeps the file's values (#411) 2026-10-09 23:57:12 +07:00
tests_rig3d.rs M7.7: camera/light rigs and Advanced 3D motion blur, blend modes, track mattes 2026-10-03 00:27:47 -04:00
tests_roto.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
tests_sequence.rs Import: Interpret Footage has Start Timecode, as in After Effects (#297) 2026-10-09 20:50:39 +07:00
tests_settings.rs i18n: add Ukrainian menu translation (#395) 2026-10-09 14:46:20 +02:00
tests_stubs.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
tests_styles.rs M9.4: layer styles render + commands 2026-10-02 00:00:00 -04:00
tests_tail.rs Fix variable-font animator test axis and endpoint selection 2026-10-07 21:38:19 -07:00
tests_text.rs Merge main (engine menu tree) into M9.6; wire text animation menus 2026-10-02 00:44:20 -04:00
tests_text_edit.rs test: tolerate installed variants of bundled font families 2026-10-06 16:40:12 -05:00
tests_timeline.rs Timeline: property names have the property menu (#407) 2026-10-09 22:52:56 +07:00
tests_timeline_interchange.rs Merge branch 'main' into worktree-agent-a9fea98fe9839069d (filmcraft rev 2c5ba7a: AAF and OMF interchange) 2026-10-04 00:45:00 -04:00
tests_track.rs CMP-7: Essential Graphics controls, master properties, .ectemplate templates, Responsive Design — Time 2026-10-02 22:44:06 -04:00
tests_vector_import.rs IO-2/SHP-5/PRV-2: PSD import, SVG import + vector/text conversions, persistent disk cache 2026-10-02 22:10:48 -04:00
tests_viewer.rs Viewer: the Snapping menu has After Effects' two options 2026-10-09 21:03:12 +07:00
tracking.rs Effects: effect points on shape layers start at the layer centre (#227) 2026-10-08 20:33:03 +07:00
vector.rs M13.12: Create Shapes from Vector Layer keeps images as parented footage layers in paint order 2026-10-03 09:23:29 -04:00
viewer.rs Viewer: the Snapping menu has After Effects' two options 2026-10-09 21:03:12 +07:00
warp.rs Effects: effect points on shape layers start at the layer centre (#227) 2026-10-08 20:33:03 +07:00
xml_project.rs M14.5: wire the remaining settings; keyframe assistants and labels; AE menu entries 2026-10-03 02:45:44 -04:00