mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-14 19:26:56 -04:00
VectorCraft had an Additional Plug-ins Folder preference but nothing loaded from it. Port PhotoCraft's wasmi plug-in host (same sandbox, manifest and parameter schema) as the new vectorcraft-plugins crate (L2), extended for vector documents: - Object filters read the selected paths and compound paths as JSON (native PathData and Paint forms: geometry, fills, strokes, gradients, opacity) and return the objects to keep, change, add or delete; the output is validated in full and applied as one undo step (plugin.run). A failing plug-in leaves the document untouched. - Live-effect plug-ins are geometry effects in the appearance stack (effect id plugin.<id>), re-evaluated (and cached) when the object or parameters change, editable, exported and baked by Expand Appearance; a missing plug-in leaves the geometry as is. - plugin.list / info / run / install / remove / reload; the preference folder installs every *.wasm at startup and when it changes; File > Open of a .wasm installs it (web). - Object > Plug-ins and Effect > Plug-ins menus with dialogs generated from the parameter schema (live preview), the Appearance panel's fx menu, docs/plugins.md, an original example plug-in (Desaturate, a Rust crate outside the workspace) and fuzzing of the plug-in boundary (engine/tests/plugin_fuzz.rs). Tool plug-ins and paint-changing live effects are left for later (docs/plugins.md). Co-Authored-By: Claude Opus 5.5 <[email protected]>
32 lines
1.9 KiB
Plaintext
32 lines
1.9 KiB
Plaintext
VectorCraft
|
|
Copyright (c) 2026 ArtCraft Team and the VectorCraft contributors.
|
|
Licensed under the MIT License or the Apache License, Version 2.0, at your option
|
|
(LICENSE-MIT, LICENSE-APACHE).
|
|
|
|
The ArtCraft name, wordmark and logos in docs/brand/ are trademarks of the ArtCraft Team. They are
|
|
not open source and are not covered by the license above; their terms are in
|
|
docs/brand/LICENSE-brand.txt.
|
|
|
|
Third-party material
|
|
|
|
This product bundles third-party material under its own licenses, listed below. The per-file
|
|
list (author, source, license) is in ASSETS.md.
|
|
|
|
- Lucide icons (assets/icons/*.svg except dc-*.svg) — ISC License; the icons Lucide derived from Feather are also under the MIT License (Cole Bemis). See assets/icons/LICENSE-lucide.txt.
|
|
- Source Sans 3 and Source Serif 4 (assets/fonts/Source*) — SIL Open Font License 1.1. See assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt.
|
|
- Inter (assets/fonts/Inter-*.ttf) — SIL Open Font License 1.1. See assets/fonts/OFL-Inter.txt.
|
|
- JetBrains Mono (assets/fonts/JetBrainsMono-*.ttf) — SIL Open Font License 1.1. See assets/fonts/OFL-JetBrainsMono.txt.
|
|
- egui's default fonts, compiled into the app through the epaint_default_fonts crate — Ubuntu Light
|
|
(Ubuntu Font Licence 1.0), Hack (MIT), Noto Emoji (SIL Open Font License 1.1) and emoji-icon-font
|
|
(MIT). Their license texts ship with that crate.
|
|
|
|
Rust dependencies (vello_cpu, kurbo, peniko, skrifa, harfrust, usvg, linesweeper, egui, eframe, …) are
|
|
fetched through crates.io under their own permissive licenses (mostly MIT and/or Apache-2.0; also
|
|
BSD, ISC, Zlib, BSL-1.0 and Unicode-3.0).
|
|
|
|
JPEG export uses the jpeg-encoder crate (MIT OR Apache-2.0, and the IJG License): this software is
|
|
based in part on the work of the Independent JPEG Group.
|
|
|
|
WebAssembly plug-ins run in the wasmi interpreter (MIT OR Apache-2.0); its wasmparser dependency is
|
|
under the Apache License 2.0 with the LLVM exception.
|