# Motion Graphics: changes from EffectCraft

Motion Graphics is based on EffectCraft by the ArtCraft team (https://github.com/storytold/effectcraft), commit `c3600f9b59b109da97871a43a6898683a0163cb1`,
licensed under the MIT License or the Apache License 2.0; Everyapp uses it under the Apache License 2.0.
Upstream LICENSE-APACHE, LICENSE-MIT and NOTICE are included unchanged in this folder.

Everyapp changed the files below. Everything else is unmodified upstream source.

## Text and links (rebranding)

Upstream app and suite names in interface text were replaced with Everyapp names, and links to the upstream
website, community and repository were pointed to everyapp.pro or support@everyapp.pro.

| File | Changes |
|---|---|
| `(dependency a517b38) PATCHES.md` | name: 1 |
| `(dependency a517b38) docs/egui-037-migration-plan.md` | name: 50 |
| `(dependency codecs) src/mkv.rs` | name: 1 |
| `(dependency codecs) src/mpeg.rs` | name: 3 |
| `(dependency codecs) src/mxf.rs` | name: 1 |
| `(dependency codecs) src/video.rs` | name: 7 |
| `(dependency color) README.md` | name: 3 |
| `(dependency color) src/lut.rs` | name: 1 |
| `(dependency fonts-build) README.md` | name: 3 |
| `(dependency h264) README.md` | name: 1 |
| `(dependency h264enc) README.md` | name: 1 |
| `(dependency i18n) README.md` | name: 1 |
| `(dependency interchange) README.md` | name: 3 |
| `(dependency interchange) src/aaf/read.rs` | name: 3 |
| `(dependency interchange) src/aaf/write.rs` | name: 6 |
| `(dependency interchange) src/comp.rs` | name: 1 |
| `(dependency interchange) src/fcp7.rs` | name: 1 |
| `(dependency interchange) src/fcpxml.rs` | name: 1 |
| `(dependency interchange) src/omf/read.rs` | name: 2 |
| `(dependency interchange) src/omf/write.rs` | name: 5 |
| `(dependency mxf) src/write/mod.rs` | name: 3 |
| `(dependency pdf) README.md` | name: 2 |
| `(dependency project) src/gtemplate.rs` | name: 5 |
| `(dependency project) src/lib.rs` | name: 1 |
| `(dependency ui) README.md` | name: 17 |
| `CONTRIBUTING.md` | links: 1, name: 1 |
| `README.md` | brand: 10, links: 33, name: 33, phrases: 2 |
| `ROADMAP.md` | links: 1, name: 2 |
| `apps/effectcraft-cli/src/main.rs` | name: 2 |
| `apps/effectcraft-web/js/host.js` | name: 2 |
| `apps/effectcraft-web/src/api.rs` | name: 1 |
| `apps/effectcraft-web/src/store.rs` | name: 7 |
| `apps/effectcraft-web/web/audio-worklet.js` | name: 1 |
| `apps/effectcraft-web/web/index.html` | name: 4 |
| `apps/effectcraft-web/web/manifest.webmanifest` | name: 2 |
| `apps/effectcraft-web/web/sw.js` | name: 1 |
| `apps/effectcraft-web/web/worker.js` | name: 1 |
| `apps/effectcraft/build.rs` | name: 2 |
| `apps/effectcraft/src/appimage.rs` | name: 13 |
| `apps/effectcraft/src/launch_guard.rs` | name: 1 |
| `apps/effectcraft/src/main.rs` | links: 1, name: 12 |
| `apps/effectcraft/src/sheet_dialogs.rs` | name: 2 |
| `assets/app-icon/README.md` | brand: 1, name: 3 |
| `crates/automation/src/server.rs` | name: 2 |
| `crates/av1enc/README.md` | name: 4 |
| `crates/effects/src/catalog.rs` | name: 1 |
| `crates/effects/src/ocio/effects.rs` | name: 1 |
| `crates/effects/src/ocio/registry.rs` | name: 1 |
| `crates/engine/src/cmd/animation.rs` | name: 1 |
| `crates/engine/src/cmd/app_more.rs` | name: 1 |
| `crates/engine/src/cmd/enabled.rs` | name: 2 |
| `crates/engine/src/cmd/essential.rs` | name: 4 |
| `crates/engine/src/cmd/file.rs` | name: 3 |
| `crates/engine/src/cmd/frontend.rs` | name: 3 |
| `crates/engine/src/cmd/help.rs` | brand: 1, name: 2, phrases: 3 |
| `crates/engine/src/cmd/import_project.rs` | name: 3 |
| `crates/engine/src/cmd/mask_interp.rs` | name: 1 |
| `crates/engine/src/cmd/scripts.rs` | name: 1 |
| `crates/engine/src/cmd/vpe.rs` | name: 1 |
| `crates/engine/src/home/demo.rs` | name: 3 |
| `crates/engine/src/home/links.rs` | links: 6, name: 7 |
| `crates/engine/src/home/templates.rs` | name: 1 |
| `crates/engine/src/interchange/xml_project.rs` | name: 1 |
| `crates/engine/src/menus.rs` | name: 8, phrases: 3 |
| `crates/engine/src/settings/autosave.rs` | name: 1 |
| `crates/engine/src/settings/prefs/dialog.rs` | name: 2 |
| `crates/engine/src/settings/shortcuts.rs` | name: 1 |
| `crates/engine/src/system/logging.rs` | name: 1 |
| `crates/export/src/pipeline.rs` | name: 1 |
| `crates/export/src/webm.rs` | name: 2 |
| `crates/export/src/webm_av1.rs` | name: 2 |
| `crates/expr/src/prelude.js` | name: 1 |
| `crates/hevcenc/README.md` | name: 2 |
| `crates/host/src/app_dirs.rs` | name: 6 |
| `crates/lottie/src/export.rs` | name: 1 |
| `crates/opusenc/README.md` | name: 3 |
| `crates/pdf/README.md` | name: 3 |
| `crates/render/src/disk_cache.rs` | name: 2 |
| `crates/script/src/prelude.js` | name: 11 |
| `crates/script/src/runtime.rs` | name: 2 |
| `crates/script/src/scriptui.js` | name: 2 |
| `crates/script/src/socket.rs` | name: 1 |
| `crates/segment/README.md` | name: 1 |
| `crates/segment/src/lib.rs` | name: 1 |
| `crates/svg/README.md` | name: 1 |
| `crates/ui-egui/src/header.rs` | links: 2, name: 3, phrases: 3 |
| `crates/ui-egui/src/i18n.rs` | brand: 11, name: 154, phrases: 33, translations: 22 |
| `crates/ui-egui/src/i18n/ui.rs` | brand: 8, name: 98, phrases: 38, translations: 30 |
| `crates/ui-egui/src/menus/frontend.rs` | name: 2 |
| `crates/ui-egui/src/native_menu.rs` | name: 3 |
| `crates/ui-egui/src/panels/dialogs.rs` | name: 3, phrases: 3 |
| `crates/ui-egui/src/panels/effect_controls/panel.rs` | name: 1 |
| `crates/ui-egui/src/panels/effects_presets.rs` | name: 1 |
| `crates/ui-egui/src/panels/home.rs` | links: 1, name: 5, phrases: 3 |
| `crates/ui-egui/src/panels/learn.rs` | name: 1 |
| `crates/ui-egui/src/panels/markers_ui.rs` | links: 1 |
| `crates/ui-egui/src/panels/project.rs` | name: 2 |
| `crates/ui-egui/src/panels/settings.rs` | name: 2 |
| `crates/ui-egui/src/panels/unsaved.rs` | name: 1 |
| `crates/ui-egui/src/panels/viewer_text.rs` | name: 2 |
| `crates/ui-egui/src/updates_ui.rs` | name: 1 |
| `crates/vp9enc/README.md` | name: 2 |
| `docs/architecture.md` | name: 10 |
| `docs/control-protocol.md` | name: 1 |
| `docs/effects.md` | name: 1 |
| `docs/egui-037-migration-plan.md` | name: 39 |
| `docs/fidelity/README.md` | name: 5 |
| `docs/fidelity/ae-2026-acceptance.md` | name: 1 |
| `docs/fidelity/object-matte.md` | name: 3 |
| `docs/fidelity/workflow-checks.md` | name: 1 |
| `docs/file-format-parity.md` | name: 9 |
| `docs/footage.md` | name: 6 |
| `docs/gaps.md` | links: 7, name: 8 |
| `docs/hardware-parity.md` | name: 5 |
| `docs/localization-parity.md` | name: 4 |
| `docs/mcp.md` | name: 3 |
| `docs/plugins.md` | name: 11 |
| `docs/preferences.md` | name: 15 |
| `docs/releasing.md` | brand: 1, name: 9 |
| `docs/roadmap.md` | name: 2 |
| `docs/scripting-parity.md` | name: 1 |
| `docs/target-app-parity.md` | brand: 1, name: 8 |
| `docs/ui-parity.md` | name: 1 |
| `docs/web.md` | name: 3 |

## Images

Upstream trademarks and app icons were replaced with Everyapp artwork of the same size and format.

- `apps/effectcraft-web/web/favicon.svg`
- `apps/effectcraft-web/web/favicon.svg.attribution`
- `assets/app-icon/effectcraft-1024.png`
- `assets/app-icon/effectcraft-1024.png.attribution`
- `assets/app-icon/effectcraft-macos-512.png`
- `assets/app-icon/effectcraft-macos-512.png.attribution`
- `assets/app-icon/effectcraft-small.svg`
- `assets/app-icon/effectcraft-small.svg.attribution`
- `assets/app-icon/effectcraft.icns`
- `assets/app-icon/effectcraft.icns.attribution`
- `assets/app-icon/effectcraft.ico`
- `assets/app-icon/effectcraft.ico.attribution`
- `assets/app-icon/effectcraft.svg`
- `assets/app-icon/effectcraft.svg.attribution`
- `assets/app-icon/hicolor/128x128/apps/ai.storyteller.effectcraft.png`
- `assets/app-icon/hicolor/128x128/apps/ai.storyteller.effectcraft.png.attribution`
- `assets/app-icon/hicolor/16x16/apps/ai.storyteller.effectcraft.png`
- `assets/app-icon/hicolor/16x16/apps/ai.storyteller.effectcraft.png.attribution`
- `assets/app-icon/hicolor/24x24/apps/ai.storyteller.effectcraft.png`
- `assets/app-icon/hicolor/24x24/apps/ai.storyteller.effectcraft.png.attribution`
- `assets/app-icon/hicolor/256x256/apps/ai.storyteller.effectcraft.png`
- `assets/app-icon/hicolor/256x256/apps/ai.storyteller.effectcraft.png.attribution`
- `assets/app-icon/hicolor/32x32/apps/ai.storyteller.effectcraft.png`
- `assets/app-icon/hicolor/32x32/apps/ai.storyteller.effectcraft.png.attribution`
- `assets/app-icon/hicolor/48x48/apps/ai.storyteller.effectcraft.png`
- `assets/app-icon/hicolor/48x48/apps/ai.storyteller.effectcraft.png.attribution`
- `assets/app-icon/hicolor/512x512/apps/ai.storyteller.effectcraft.png`
- `assets/app-icon/hicolor/512x512/apps/ai.storyteller.effectcraft.png.attribution`
- `assets/app-icon/hicolor/64x64/apps/ai.storyteller.effectcraft.png`
- `assets/app-icon/hicolor/64x64/apps/ai.storyteller.effectcraft.png.attribution`
- `assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg`
- `assets/app-icon/hicolor/scalable/apps/ai.storyteller.effectcraft.svg.attribution`
- `docs/brand/artcraft-logo-white.png`
- `docs/brand/artcraft-logo-white.png.attribution`
- `docs/brand/artcraft-logo-white.svg`
- `docs/brand/artcraft-logo-white.svg.attribution`
- `docs/brand/artcraft-logo.png`
- `docs/brand/artcraft-logo.png.attribution`
- `docs/brand/artcraft-logo.svg`
- `docs/brand/artcraft-logo.svg.attribution`
- `docs/brand/artcraft-mark-black.png`
- `docs/brand/artcraft-mark-black.png.attribution`
- `docs/brand/artcraft-mark-black.svg`
- `docs/brand/artcraft-mark-black.svg.attribution`
- `docs/brand/artcraft-mark.png`
- `docs/brand/artcraft-mark.png.attribution`
- `docs/brand/artcraft-mark.svg`
- `docs/brand/artcraft-mark.svg.attribution`

## Web page

`index.html` loads `everyapp-frame.js` first (progress, export rules, links) and sets a Content-Security-Policy
(`connect-src 'self' blob: data:`) so the app makes no requests to other sites.
