6.3 KiB
6.3 KiB
Roadmap
Status legend: ✅ done · 🟡 in progress · ⬜ not started. Updated 2026-09-30.
Parity metric: cargo xtask parity measures how much of Photoshop's menu tree is live and
writes parity.md. It is the headline number for "how close are we", next to the PSD
composite oracle and the test count.
| M | Status | Where we are |
|---|---|---|
| M0 Skeleton | ✅ | workspace, xtask (layers / wasm / ci / stats / corpus / parity), CI workflow |
| M1 Foundation | ✅ | geom, color (27 blend modes), raster (COW tiles, any depth), doc, ops, cms (ICC) |
| M2 PSD v1 | ✅ | photocraft-psd: 134/135 real files byte-exact round trip |
| M3 Viewer app | ✅ | egui shell (Pro / Studio / Classic themes), 13+ codecs, native and web (trunk) builds |
| M4 Native format + engine | ✅ | 500+ commands, .pcraft (incremental, autosave, crash recovery), CLI, persistent preferences |
| M5 GPU compositor | 🟡 | wgpu compositor drives the canvas, layer effects included (≤1/255 vs CPU); vector masks, uncached pattern fills, artboards and a few clip cases fall back to the CPU |
| M6 Paint + select | 🟡 | brush engine, all selection tools, multi-layer selection, snapping + smart guides, free transform + warp; native tablet backends pending |
| M7 Adjust + filters | 🟡 | 16 adjustment layers + destructive-only adjustments, 70+ filters incl. Blur Gallery, Actions record/replay, Fade |
| M8 PSD v2 | 🟡 | adjustments (incl. Selective Color, Color Lookup), fills, effects, patterns, text, shapes, smart objects, alpha channels; oracle 111/170 |
| M9 Text, vector, styles | 🟡 | type engine + Warp Text, shapes / pen / paths, all 10 effects on CPU and GPU (parity ≤1/255, 30/31 corpus effect files on the GPU) |
| M10 Smart features | 🟡 | classical Select Subject / Object, content-aware fill and scale, healing, auto-align / auto-blend; ML backend not started |
| M11 Automation + formats | 🟡 | MCP (headless + live bridge), batch, Image Processor, prefs over MCP; DoD test passes (10 agent tasks over MCP, automation/tests/agent_tasks.rs); JP2 / DICOM / DPX / C2PA pending |
| M12 Pro parity | 🟡 | CMYK / Lab / Indexed / Bitmap / Duotone, ICC + soft proofing, channels + Quick Mask, smart-object stack modes; print, HDR, photomerge, timeline, artboards, layer comps pending |
Menu parity: 518 / 625 (82.9%) on 2026-10-01, up from 224 (35.8%) the day before. See parity.md.
Current focus (infrastructure before the long tail)
Landed on 2026-10-01: multi-layer selection, live smart objects + smart filters, alpha channels + Quick Mask, patterns, Warp, preferences, snapping, ~33 filters, the remaining core adjustments.
Next:
- Fidelity: the PSD oracle (111/170). Bevel/emboss, satin, inner glow; modern
Brightness/Contrast and grayscale Levels curves; channel restrictions (
brst); Lab-space blending; Photoshop smart filters inSoLd. - Layer Comps and Artboards (File/Layer/View items and export depend on them).
- GPU layer effects (the last big CPU fallback on the canvas).
- Puppet Warp, Perspective Warp, Liquify, Vanishing Point, Camera Raw / Lens Correction.
- Panels: Patterns, Styles, Glyphs, Character/Paragraph Styles, Timeline; Custom Shape tool.
- Print, Photomerge, Merge to HDR, video layers.
Milestone definitions
Each milestone has a definition of done (DoD) and must leave main green on all Tier-1 platforms plus a wasm build.
| M | Name | Scope (key items) | DoD / acceptance |
|---|---|---|---|
| M0 | Skeleton | Workspace, all crate stubs, lints, xtask (layers check, ci), CI matrix, testkit |
cargo test --workspace green; cargo check --target wasm32-unknown-unknown -p photocraft-engine -p photocraft-ui-egui green; layering check passes |
| M1 | Foundation | geom, color (formats, blend math for all 27 modes, sRGB/linear), raster (sparse COW tiles, U8/U16/F32), doc (full type model incl. CMYK/Lab/adjust/smart), ops (history) | Property tests (proptest) on tile COW and history; blend-mode reference tests against published formulas |
| M2 | PSD v1 | photocraft-psd: header, resources, layer records, channel data (raw/RLE/ZIP/ZIP+pred), masks, groups (lsct), unicode names, unknown-block passthrough, merged image, PSB; writer |
Round-trip byte-stability tests; synthetic PSD generator tests; fuzz target; ≥150 unit tests |
| M3 | Viewer app | codecs (png/jpeg/tiff/webp/gif/bmp/tga/pnm/qoi/exr/hdr, all read+write), CPU compositor, egui shell (menu from registry, canvas pan/zoom, layers panel, history), open/save, native + web build | Opens PNG/JPEG/PSD, shows layers, toggles visibility, undo/redo, saves PNG/PSD; web build loads a file from the browser |
| M4 | Native format + engine | .pcraft bundle, command registry with schemas, jobs/cancellation, snapshots via arc-swap, CLI (convert, run, inspect) |
CLI parity tests: every GUI command also runs headless |
| M5 | GPU compositor | wgpu planner backend, tile residency, parity tests vs CPU (all blend modes), viewport on GPU, mips | GPU vs CPU ≤1/255; pan/zoom 60 fps on a 100 MP / 20-layer document |
| M6 | Paint + select | platform input (pen: macOS/Windows/Linux/web), brush engine v1, eraser, marquee/lasso/wand, move, free transform, crop | Brush latency <1 frame; selection-restricted paint tests |
| M7 | Adjust + filters | 16 adjustment layers, first 30 filters, schema-generated dialogs + live preview, actions record/replay | Golden tests at 8/16/32f; action replay determinism |
| M8 | PSD v2 | adjustment layers, fill layers, lfx2 effects (descriptor parser), text (EngineData) preserve+render, smart objects, vector masks | Composite-oracle pass rate ≥90% on corpus |
| M9 | Text, vector, styles | parley text layers, shapes/pen/paths, all 10 layer effects on GPU | Visual goldens; PSD text round-trip |
| M10 | Smart features | ml (ort native / ort-web on the web), Select Subject/Object/Sky, Remove BG, Remove tool, content-aware fill, healing, AI denoise, RAW develop |
Quality benchmarks on a public dataset; timing budgets |
| M11 | Automation + formats | MCP server, batch, scripting, remaining formats (JP2, DICOM, DPX…), C2PA | An agent completes 10 scripted edit tasks via MCP |
| M12 | Pro parity | CMYK/Lab UI, print, HDR display, photomerge/HDR merge, timeline, layer comps, artboards, symmetry, neural filters | xtask parity ≥ 90% of Photoshop menu checklist |