The Ease Presets panel (#254) is modelled on a third-party panel, so, as with third-party tools in After Effects, it isn't core any more: it is `extensions/scriptui-panels/Ease Presets.jsx`, a ScriptUI panel bundled as an optional extension (Window ▸ Ease Presets.jsx), written only against the public scripting API. Clicking a preset eases every pair of neighbouring selected keyframes in one undo step (per dimension, along the motion path for spatial properties, the keys' other sides as they play); the fields edit the working curve, which the panel draws; From Keys, Save, Rename and Delete as before. The twelve built-in curves are unchanged. Scripting API fixes it needed (After Effects parity): - `app.settings` lasts between runs (`script_settings.json` in the settings folder; `script.settings.get` / `script.settings.save`). - Per-key methods (`setTemporalEaseAtKey`, `setInterpolationTypeAtKey`, `removeKey`, the continuous / auto-Bezier / roving setters) no longer change the user's key selection (they selected the key they edited). - `keyInTemporalEase` / `keyOutTemporalEase` report linear and auto-Bezier sides as they play, `keyIn/OutSpatialTangent` the tangents the motion path plays. - `selectedProperties` includes the properties of selected keyframes. - `isInterpolationTypeValid` is false for Linear / Bezier on values that only hold. Removed from core: Window ▸ Ease Presets, the `keys.easePreset.*` commands, `engine::ease_presets` and the `ease_presets.json` store, `keyframe::EaseCurve` (nothing else used it) and the egui panel. User presets saved by the v0.6.0 panel move into the panel's app.settings section the first time settings load (the old file is left as is). Docs: plugins.md (bundled extensions), parity.md, gaps.md G8, agents.md. Test: app_settings_last_between_runs, per_key_methods_keep_the_key_selection_and_report_eases_as_they_play, spatial_tangents_are_reported_as_the_path_plays (each fails before), the_ease_presets_panel_eases_every_selected_pair_in_one_undo_step, a_typed_curve_scales_to_each_dimension_and_follows_motion_paths, user_presets_save_rename_delete_and_persist, presets_saved_by_the_old_core_panel_carry_over (script, through the panel's controls), ease_presets_panel_eases_the_selected_keys_from_its_list (UI: the panel docks and a click on a preset eases the keys). Co-Authored-By: Claude Opus 5.5 <[email protected]>
14 KiB
Attribution
Every non-code asset in EffectCraft, with its author, source and licence. Each file listed here also has
a <file>.attribution sidecar with full details. The rules are in AGENTS.md §1: no Adobe
iconography, images or other Adobe assets; open licences only; every asset attributed.
cargo xtask assets checks that this index and the sidecars cover every asset in the repository.
Asset files
| Asset | Author | Source | Licence |
|---|---|---|---|
assets/fonts/Inter-Regular.ttf |
The Inter Project Authors | https://github.com/rsms/inter | OFL-1.1 (assets/fonts/OFL-Inter.txt) |
assets/fonts/Inter-Medium.ttf |
The Inter Project Authors | https://github.com/rsms/inter | OFL-1.1 (assets/fonts/OFL-Inter.txt) |
assets/fonts/Inter-SemiBold.ttf |
The Inter Project Authors | https://github.com/rsms/inter | OFL-1.1 (assets/fonts/OFL-Inter.txt) |
assets/fonts/Inter-Bold.ttf |
The Inter Project Authors | https://github.com/rsms/inter | OFL-1.1 (assets/fonts/OFL-Inter.txt) |
assets/fonts/Inter-Italic.ttf |
The Inter Project Authors | https://github.com/rsms/inter | OFL-1.1 (assets/fonts/OFL-Inter.txt) |
assets/fonts/NotoSerif-Regular.ttf |
The Noto Project Authors | https://github.com/notofonts/latin-greek-cyrillic | OFL-1.1 (assets/fonts/OFL-NotoSerif.txt) |
assets/fonts/JetBrainsMono-Regular.ttf |
The JetBrains Mono Project Authors | https://github.com/JetBrains/JetBrainsMono | OFL-1.1 (assets/fonts/OFL-JetBrainsMono.txt) |
apps/effectcraft-web/web/favicon.svg |
EffectCraft contributors | Original work: web app icon, a copy of assets/app-icon/effectcraft-small.svg (the unicorn app icon) |
MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
packaging/macos/dmg/background.svg |
@XusBadia | Original work: macOS DMG Finder window background, derived from the EffectCraft app icon (assets/app-icon/effectcraft.svg); rendered to a TIFF by packaging/macos/package.sh at package time |
MIT OR Apache-2.0 (LICENSE-MIT, LICENSE-APACHE) |
assets/app-icon/effectcraft-1024.png |
EffectCraft contributors | Original work: effectCraft app icon, 1024 px (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/effectcraft-macos-512.png |
EffectCraft contributors | Original work: effectCraft runtime Dock icon (macOS) (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/effectcraft-small.svg |
EffectCraft contributors | Original work: effectCraft app icon, light vector (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/effectcraft.icns |
EffectCraft contributors | Original work: effectCraft macOS app icon (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/effectcraft.ico |
EffectCraft contributors | Original work: effectCraft Windows app icon (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/effectcraft.svg |
EffectCraft contributors | Original work: effectCraft app icon, master vector (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/hicolor/128x128/apps/ai.storyteller.effectcraft.png |
EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 128x128 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/hicolor/16x16/apps/ai.storyteller.effectcraft.png |
EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 16x16 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/hicolor/24x24/apps/ai.storyteller.effectcraft.png |
EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 24x24 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/hicolor/256x256/apps/ai.storyteller.effectcraft.png |
EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 256x256 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/hicolor/32x32/apps/ai.storyteller.effectcraft.png |
EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 32x32 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/hicolor/48x48/apps/ai.storyteller.effectcraft.png |
EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 48x48 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/hicolor/512x512/apps/ai.storyteller.effectcraft.png |
EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 512x512 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/hicolor/64x64/apps/ai.storyteller.effectcraft.png |
EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor 64x64 (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg |
EffectCraft contributors | Original work: effectCraft app icon, Linux hicolor scalable (owner's ArtCraft unicorn drawing, vectorised) | MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) |
crates/lottie/tests/fixtures/bouncing-ball.json |
EffectCraft contributors | Original work: hand-written Lottie test fixture (bouncing ball, eased position keys) | MIT OR Apache-2.0 |
crates/lottie/tests/fixtures/shapes-gradient.json |
EffectCraft contributors | Original work: hand-written Lottie test fixture (star, rectangle, gradient fill, dashed stroke, trim paths) | MIT OR Apache-2.0 |
crates/lottie/tests/fixtures/precomp-matte-text.json |
EffectCraft contributors | Original work: hand-written Lottie test fixture (precomp, track matte, parented text) | MIT OR Apache-2.0 |
crates/lottie/tests/fixtures/legacy-masks.json |
EffectCraft contributors | Original work: hand-written Lottie test fixture (legacy keyframes, masks) | MIT OR Apache-2.0 |
crates/svg/tests/fixtures/basic-shapes.svg |
EffectCraft contributors | Original work: hand-written SVG test fixture (basic shapes, groups, transforms) | MIT OR Apache-2.0 |
crates/svg/tests/fixtures/paths-gradients.svg |
EffectCraft contributors | Original work: hand-written SVG test fixture (path data, gradients, CSS, use) | MIT OR Apache-2.0 |
crates/model/tests/fixtures/quad.gltf |
EffectCraft contributors | Original work: glTF 2.0 test fixture (textured quad, node hierarchy, translation animation; data URIs) | MIT OR Apache-2.0 |
crates/model/tests/fixtures/quad.glb |
EffectCraft contributors | Original work: binary glTF test fixture (the same quad with its texture in the BIN chunk) | MIT OR Apache-2.0 |
crates/model/tests/fixtures/cube.obj |
EffectCraft contributors | Original work: Wavefront OBJ test fixture (unit cube, two materials) | MIT OR Apache-2.0 |
crates/model/tests/fixtures/cube.mtl |
EffectCraft contributors | Original work: MTL test fixture (materials of cube.obj) | MIT OR Apache-2.0 |
Screenshots
Screenshots of EffectCraft itself, rendered headlessly, showing only procedurally generated demo content.
| Asset | Author | Source | Licence |
|---|---|---|---|
docs/images/effectcraft-hero.png |
EffectCraft contributors | Original work: screenshot of EffectCraft (EffectCraft main window) | MIT OR Apache-2.0 |
docs/images/effectcraft-3d.png |
EffectCraft contributors | Original work: screenshot of EffectCraft (EffectCraft Classic 3D) | MIT OR Apache-2.0 |
docs/images/effectcraft-graph-editor.png |
EffectCraft contributors | Original work: screenshot of EffectCraft (EffectCraft Graph Editor) | MIT OR Apache-2.0 |
docs/images/effectcraft-effects.png |
EffectCraft contributors | Original work: screenshot of EffectCraft (EffectCraft effects) | MIT OR Apache-2.0 |
docs/images/effectcraft-render-queue.png |
EffectCraft contributors | Original work: screenshot of EffectCraft (EffectCraft Render Queue panel with the demo compositions queued for H.264 and ProRes export) | MIT OR Apache-2.0 |
Code-drawn assets (original work, MIT OR Apache-2.0)
- UI icons drawn in code:
crates/ui-egui/src/icons.rs. - Procedural demo content (solids, shapes, gradients, text animations):
crates/engine/src/demo.rs. - Built-in project templates (Lower Third, Title Card, Logo Reveal, Kinetic Type, Social Square, Vertical Story,
Slideshow, 3D Text Orbit) built from engine commands, and their thumbnails rendered by our own renderer:
crates/engine/src/templates.rs. - Text animator presets (Typewriter, Fade Up Characters, Bounce In Words, Tracking In, Scramble, Blur In, Jitter,
Drop In Lines):
crates/engine/presets/text_animators.json(sidecar.attribution). - Sample scripts (File ▸ Scripts) and ScriptUI panel:
crates/engine/scripts/Rename Layers.jsx,crates/engine/scripts/Sort Layers by In Point.jsx,crates/engine/scripts/Create Null at Selected Layers.jsx,crates/engine/scripts/Render Queue Batch.jsx,crates/engine/scripts/ScriptUI Panels/Layer Tools.jsx(sidecars.attribution). - Bundled extension (ScriptUI panel) with its twelve built-in ease presets:
extensions/scriptui-panels/Ease Presets.jsx(sidecar.attribution). - Example effect plug-in:
examples/plugins/posterize-bands(plug-in API v1, WebAssembly).
Trained models (optional downloads, not bundled)
The repository and the installers contain no model weights. These models are downloaded only when
a user asks (Settings ▸ Roto Brush, Settings ▸ Face Tracking, or the roto.model.* /
face.model.* commands), unmodified from their authors' official location, checked against a
pinned SHA-256 and stored in the user's models folder with a <file>.NOTICE.txt naming their
authors, licence and source. EffectCraft runs them with its own Rust implementation and is not
affiliated with or endorsed by their authors.
| Model | Authors | Source | Licence |
|---|---|---|---|
MobileSAM (mobile_sam.pt) |
Chaoning Zhang et al., building on Meta AI's Segment Anything and Microsoft's TinyViT | https://github.com/ChaoningZhang/MobileSAM | Apache-2.0 |
MediaPipe Face Landmarker (face_landmarker.task: BlazeFace short-range detector, Face Mesh V2, blendshapes) |
Google LLC | https://developers.google.com/edge/mediapipe/solutions/vision/face_landmarker (model cards: https://storage.googleapis.com/mediapipe-assets/MediaPipe%20BlazeFace%20Model%20Card%20(Short%20Range).pdf, https://storage.googleapis.com/mediapipe-assets/Model%20Card%20MediaPipe%20Face%20Mesh%20V2.pdf) | Apache-2.0 |
Formats and parameters from other open-source projects
Written in Rust for EffectCraft; no code is copied. They follow published specifications and configuration from these Apache-2.0 projects:
crates/segment/src/tflite.rsreads TensorFlow Lite files using the field layout of TensorFlow Lite'sschema.fbs(The TensorFlow Authors, https://github.com/tensorflow/tensorflow, Apache-2.0).crates/segment/src/mediapipe.rsfollows MediaPipe's published face landmarker graph: the SSD anchor layout, detection decoding, crop sizes and the face-mesh point indices it uses (Google LLC, https://github.com/google-ai-edge/mediapipe, Apache-2.0).crates/segment/src/mobilesam.rsfollows the MobileSAM, TinyViT and Segment Anything architectures and their Apache-2.0 reference code.
First-party brand marks
The ArtCraft name, wordmark and logos are trademarks of the ArtCraft Team. They are not open source and are not
covered by the project licence; they may be used only unmodified and only as part of this repository and EffectCraft,
under docs/brand/LICENSE-brand.txt. Forks and modified versions must remove them
(AGENTS.md §1.8).
| File | Author | Source | Licence |
|---|---|---|---|
docs/brand/artcraft-logo-white.png |
ArtCraft Team | Original work: first-party ArtCraft brand mark (ArtCraft wordmark, light ink for dark backgrounds) | ArtCraft brand terms, not open source (docs/brand/LICENSE-brand.txt) |
docs/brand/artcraft-logo-white.svg |
ArtCraft Team | Original work: first-party ArtCraft brand mark (ArtCraft wordmark, light ink for dark backgrounds) | ArtCraft brand terms, not open source (docs/brand/LICENSE-brand.txt) |
docs/brand/artcraft-logo.png |
ArtCraft Team | Original work: first-party ArtCraft brand mark (ArtCraft wordmark (symbol + "ARTCRAFT"), dark ink for light backgrounds) | ArtCraft brand terms, not open source (docs/brand/LICENSE-brand.txt) |
docs/brand/artcraft-logo.svg |
ArtCraft Team | Original work: first-party ArtCraft brand mark (ArtCraft wordmark (symbol + "ARTCRAFT"), dark ink for light backgrounds) | ArtCraft brand terms, not open source (docs/brand/LICENSE-brand.txt) |
docs/brand/artcraft-mark-black.png |
ArtCraft Team | Original work: first-party ArtCraft brand mark (ArtCraft symbol ("A" mark), black) | ArtCraft brand terms, not open source (docs/brand/LICENSE-brand.txt) |
docs/brand/artcraft-mark-black.svg |
ArtCraft Team | Original work: first-party ArtCraft brand mark (ArtCraft symbol ("A" mark), black) | ArtCraft brand terms, not open source (docs/brand/LICENSE-brand.txt) |
docs/brand/artcraft-mark.png |
ArtCraft Team | Original work: first-party ArtCraft brand mark (ArtCraft symbol ("A" mark), blue) | ArtCraft brand terms, not open source (docs/brand/LICENSE-brand.txt) |
docs/brand/artcraft-mark.svg |
ArtCraft Team | Original work: first-party ArtCraft brand mark (ArtCraft symbol ("A" mark), blue) | ArtCraft brand terms, not open source (docs/brand/LICENSE-brand.txt) |