From 728a272681a29538adf5ae54b7189a4f71eab425 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Wed, 30 Sep 2026 11:14:32 -0400 Subject: [PATCH] Asset rules: no Adobe assets ever; every asset open-licensed with an entry in assets/ATTRIBUTION.md Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 8 ++++++++ CLAUDE.md | 8 ++++++++ NOTICE | 2 ++ assets/ATTRIBUTION.md | 15 +++++++++++++++ 4 files changed, 33 insertions(+) create mode 100644 assets/ATTRIBUTION.md diff --git a/AGENTS.md b/AGENTS.md index 79eaa839c..7b1bce3a4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -18,6 +18,14 @@ LightCraft is a clean-room, open-source, pure-Rust photo library + non-destructi - **Quality gates** before every commit: `cargo xtask ci` (fmt, clippy -D warnings, tests, layers, wasm). - **Commits:** one task id per commit (`M2.3: local Laplacian highlights/shadows`). Only green states. End messages with the attribution line required by the environment. +## Assets: icons, images, fonts (ABSOLUTE RULE — never violate) +- **Never use any iconography, image, artwork, font, sound or other asset from Adobe products** (no Lightroom/Creative Cloud icons, no screenshots, no presets/profiles/LUTs, no UI bitmaps — not even as a temporary placeholder or "reference copy"). Observing Adobe's UI to imitate *layout and behaviour* is allowed; copying or tracing its assets is not. +- Every asset in the repository must be one of: **our own original work** (e.g. icons drawn in code as vectors, procedurally generated demo photos), **public domain / CC0**, **Creative Commons** (CC-BY / CC-BY-SA with attribution honoured), **OFL** (fonts), or **permissive open-source** (MIT/Apache-2.0/BSD/ISC) — or contributed by a person who created the asset and licenses it openly. +- **Every asset must have an entry in `assets/ATTRIBUTION.md`** (path, title, author/creator, source URL or "original work", licence, date added, modifications) and its licence text when required (e.g. `assets/fonts/OFL-*.txt`). Add the entry in the same commit as the asset. Assets without an attribution entry must not be committed. +- Icons drawn in code (e.g. `crates/ui-egui/src/icons.rs`) are original work and are recorded in `assets/ATTRIBUTION.md` as such; do not trace them from Adobe icons. +- Demo/test images: generated procedurally by `lightcraft-scenes`, or CC0 downloads kept in the gitignored `corpus/` with their source recorded. Screenshots of Adobe apps live only in the gitignored `plan/` and are never committed or published. +- When in doubt about an asset's licence: don't use it. + ## Running and looking at the app - `cargo run --release -p lightcraft -- --control 7980` opens the desktop app with the JSON-lines control server (see `docs/control-protocol.md`). - For UI work, **look at the result**: drive via the control channel and take `ui.screenshot`, compare with `plan/lightroom/screenshots/`. diff --git a/CLAUDE.md b/CLAUDE.md index 79eaa839c..7b1bce3a4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -18,6 +18,14 @@ LightCraft is a clean-room, open-source, pure-Rust photo library + non-destructi - **Quality gates** before every commit: `cargo xtask ci` (fmt, clippy -D warnings, tests, layers, wasm). - **Commits:** one task id per commit (`M2.3: local Laplacian highlights/shadows`). Only green states. End messages with the attribution line required by the environment. +## Assets: icons, images, fonts (ABSOLUTE RULE — never violate) +- **Never use any iconography, image, artwork, font, sound or other asset from Adobe products** (no Lightroom/Creative Cloud icons, no screenshots, no presets/profiles/LUTs, no UI bitmaps — not even as a temporary placeholder or "reference copy"). Observing Adobe's UI to imitate *layout and behaviour* is allowed; copying or tracing its assets is not. +- Every asset in the repository must be one of: **our own original work** (e.g. icons drawn in code as vectors, procedurally generated demo photos), **public domain / CC0**, **Creative Commons** (CC-BY / CC-BY-SA with attribution honoured), **OFL** (fonts), or **permissive open-source** (MIT/Apache-2.0/BSD/ISC) — or contributed by a person who created the asset and licenses it openly. +- **Every asset must have an entry in `assets/ATTRIBUTION.md`** (path, title, author/creator, source URL or "original work", licence, date added, modifications) and its licence text when required (e.g. `assets/fonts/OFL-*.txt`). Add the entry in the same commit as the asset. Assets without an attribution entry must not be committed. +- Icons drawn in code (e.g. `crates/ui-egui/src/icons.rs`) are original work and are recorded in `assets/ATTRIBUTION.md` as such; do not trace them from Adobe icons. +- Demo/test images: generated procedurally by `lightcraft-scenes`, or CC0 downloads kept in the gitignored `corpus/` with their source recorded. Screenshots of Adobe apps live only in the gitignored `plan/` and are never committed or published. +- When in doubt about an asset's licence: don't use it. + ## Running and looking at the app - `cargo run --release -p lightcraft -- --control 7980` opens the desktop app with the JSON-lines control server (see `docs/control-protocol.md`). - For UI work, **look at the result**: drive via the control channel and take `ui.screenshot`, compare with `plan/lightroom/screenshots/`. diff --git a/NOTICE b/NOTICE index d74266de7..4594e78f2 100644 --- a/NOTICE +++ b/NOTICE @@ -6,5 +6,7 @@ This product bundles third-party material under the following licences: - Source Sans 3 (assets/fonts/SourceSans3-*) — SIL Open Font License 1.1. See assets/fonts/OFL-SourceSans3.txt. - Inter (assets/fonts/Inter-*.ttf) — SIL Open Font License 1.1. See assets/fonts/OFL-Inter.txt. +Every bundled asset (fonts, icons, images) and its licence is listed in assets/ATTRIBUTION.md. + Algorithms are implemented from public specifications and papers (see crate READMEs). Rust dependencies (egui, eframe, image, rayon, serde, …) are permissively licensed (MIT/Apache-2.0/BSD/ISC/Zlib) and fetched through crates.io. diff --git a/assets/ATTRIBUTION.md b/assets/ATTRIBUTION.md new file mode 100644 index 000000000..5b000bd29 --- /dev/null +++ b/assets/ATTRIBUTION.md @@ -0,0 +1,15 @@ +# Asset attribution + +Every asset shipped in this repository is listed here (see the asset rules in `AGENTS.md`). No asset may come from +Adobe products. Add an entry in the same commit as the asset. + +| Path | Asset | Creator | Source | Licence | Added | Modifications | +|---|---|---|---|---|---|---| +| `assets/fonts/SourceSans3-Regular.ttf`, `-Semibold.ttf`, `-Bold.ttf`, `-It.ttf` | Source Sans 3 | Paul D. Hunt | https://github.com/adobe-fonts/source-sans | SIL Open Font License 1.1 (`assets/fonts/OFL-SourceSans3.txt`) | 2026-09-30 | none | +| `assets/fonts/Inter-Regular.ttf`, `-Medium.ttf`, `-SemiBold.ttf` | Inter | Rasmus Andersson | https://github.com/rsms/inter | SIL Open Font License 1.1 (`assets/fonts/OFL-Inter.txt`) | 2026-09-30 | none | +| `crates/scenes/` (generated images) | Procedural demo photographs | LightCraft contributors | original work (generated at runtime, no source imagery) | MIT OR Apache-2.0 | 2026-09-30 | n/a | +| `crates/ui-egui/src/icons.rs` (when added) | UI icons drawn as vector paths in code | LightCraft contributors | original work | MIT OR Apache-2.0 | 2026-09-30 | n/a | + +Notes +- Source Sans 3 is an open-source (OFL) typeface; it is used as a general-purpose UI font. It is distributed under the + OFL and is not an asset taken from any Adobe application.