M11.4: Lottie export/import

New crate effectcraft-lottie (L3): export a comp to Lottie JSON / dotLottie
(precomp and base64 image assets; shape, solid, null, precomp, image and text
layers or glyph shapes; transforms with parenting, separated position,
anchor; keyframes with speed/influence converted to normalised i/o tangents,
hold keys, spatial ti/to; all shape items incl. gradients, dashes, trim,
repeater and path operators; masks, track mattes, blend modes, time remap,
timing, markers, optional expressions, a few Lottie effects) with a warnings
list for what Lottie cannot express, and the inverse import. Commands
file.exportLottie / file.importLottie with File > Export / Import entries.
Round-trip tests (values and rendered frames) and hand-written fixtures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Brandon Thomas
2026-10-02 08:56:03 -04:00
co-authored by Claude Opus 5.5
parent 5273f1ba96
commit c4100bcf80
32 changed files with 3767 additions and 4 deletions
Generated
+18
View File
@@ -1191,6 +1191,7 @@ dependencies = [
"effectcraft-effects",
"effectcraft-geom",
"effectcraft-keyframe",
"effectcraft-lottie",
"effectcraft-path",
"effectcraft-project",
"effectcraft-raster",
@@ -1275,6 +1276,23 @@ dependencies = [
"serde_json",
]
[[package]]
name = "effectcraft-lottie"
version = "0.1.0"
dependencies = [
"effectcraft-color",
"effectcraft-effects",
"effectcraft-keyframe",
"effectcraft-path",
"effectcraft-project",
"effectcraft-render",
"effectcraft-text",
"effectcraft-time",
"kurbo",
"serde_json",
"thiserror 2.0.21",
]
[[package]]
name = "effectcraft-media"
version = "0.1.0"