{
  "added_at": "2026-10-17",
  "additional_evidence_urls": [
    "https://github.com/storytold/photocraft/blob/5f65579ecb44047c2a619036c18ff273202e1389/Cargo.toml",
    "https://github.com/storytold/photocraft/blob/5f65579ecb44047c2a619036c18ff273202e1389/docs/target-app-parity.md",
    "https://github.com/storytold/photocraft/blob/5f65579ecb44047c2a619036c18ff273202e1389/crates/io/tests/corpus.rs",
    "https://github.com/storytold/photocraft/blob/5f65579ecb44047c2a619036c18ff273202e1389/crates/psd/tests/corpus.rs",
    "https://github.com/storytold/photocraft/blob/5f65579ecb44047c2a619036c18ff273202e1389/LICENSE-MIT",
    "https://github.com/storytold/photocraft/blob/5f65579ecb44047c2a619036c18ff273202e1389/LICENSE-APACHE",
    "https://github.com/storytold/photocraft/blob/5f65579ecb44047c2a619036c18ff273202e1389/NOTICE",
    "https://github.com/storytold/photocraft/blob/5f65579ecb44047c2a619036c18ff273202e1389/docs/brand/LICENSE-brand.txt"
  ],
  "category": "reconstruction-cases",
  "description_en": "The authors describe this Rust image editor as a clean-room reimplementation of Photoshop-style workflows. Its document engine, UI and automation interfaces share editing commands, while the source distinguishes PSD editor round trips from byte preservation in the standalone file codec.",
  "description_zh": "作者将这款 Rust 图像编辑器描述为 Photoshop 风格流程的净室重实现。文档引擎、界面与自动化接口共用编辑命令；源码区分编辑器中的 PSD 往返处理与独立文件编解码器的字节保留。",
  "entry_url": "https://awesomerea.org/resources/photocraft-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/photocraft-case/",
  "evidence_url": "https://github.com/storytold/photocraft/blob/5f65579ecb44047c2a619036c18ff273202e1389/README.md",
  "group": "cases",
  "id": "photocraft-case",
  "json_url": "https://awesomerea.org/resources/photocraft-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/photocraft-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/photocraft-case/index.md",
  "name": "PhotoCraft: editor workflow reconstruction and PSD round-trip boundaries",
  "name_zh": "PhotoCraft：编辑流程重建与 PSD 往返边界",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "scope",
    "testing",
    "limits",
    "license"
  ],
  "requirements": [
    "The pinned workspace identifies version 0.9.0 and declares Rust 1.95+ for source builds with Cargo. Native and WebAssembly paths have platform-specific dependencies; optional font inputs and reference documents are separate.",
    "This is an implemented document/compositing engine and editing interface, not merely a screenshot mockup.",
    "The editor-level corpus tests compare rendering before and after export/reimport. Separate PSD codec tests compare bytes for parseable files, with a named malformed-file exception. Editor saves are explicitly not byte-identical to their inputs.",
    "The project remains alpha and distinguishes menu-command coverage from behavioral fidelity. Its dated parity assessment retains gaps in PSD exchange, typography, professional workflows, performance and plug-in compatibility.",
    "Project code is MIT OR Apache-2.0, subject to NOTICE; fonts, artwork and other assets retain separate terms. ArtCraft branding is excluded; published modified versions must remove it, apart from contribution-only forks."
  ],
  "requirements_zh": [
    "固定版本工作区标明 0.9.0，声明源码构建使用 Rust 1.95+ 与 Cargo。原生和 WebAssembly 路径各有平台依赖，可选字体输入与参考文档另行提供。",
    "它包含文档／合成引擎与编辑界面，并非只有截图模型。",
    "编辑器层面的语料测试比较导出再导入前后的渲染结果；独立 PSD 编解码测试对可解析文件比较字节，并列出一个畸形文件例外。编辑器保存明确不保证与输入逐字节相同。",
    "项目仍处于 alpha，并区分菜单命令覆盖率与行为保真度。注明日期的对比评估保留 PSD 交换、排版、专业流程、性能及插件兼容性等缺口。",
    "项目代码采用 MIT OR Apache-2.0，并须遵守 NOTICE；字体、美术和其他素材另有条款。ArtCraft 品牌不在这些代码许可内；公开发布修改版须移除品牌，仅用于向上游提议改动的 fork 除外。"
  ],
  "targets": [
    "app"
  ],
  "url": "https://github.com/storytold/photocraft",
  "verification": "source-reviewed",
  "verified_at": "2026-10-17"
}
