- ROADMAP.md: the oracle floor is 145 of 258 (crates/io/tests/corpus.rs, gaps.md G1), not 133 of 256; 953 open issues, not 579. - docs/architecture.md: ~539,000 lines in ~1,310 files and ~8,040 #[test] functions, recounted 2026-10-13. - README.md: "a layer kind filter" instead of "layer filters"; only the Kind filter exists. - AGENTS.md: drop an empty bullet at the end of section 7. Co-authored-by: Claude Opus 5.5 <[email protected]>
8.3 KiB
PhotoCraft roadmap
Stage: alpha · next: beta, ~30 points (ready for real work ~45% → ~75%, with reliable PSD) and ~1,100–1,800 h away
Last reviewed: 2026-10-11 · Last updated: 2026-10-13 · Change: minor (oracle floor 145 of 258 and 953 open issues, as in gaps.md and on GitHub; toolbox count 56 of 68, 12 missing) · Target: Adobe Photoshop 2026
PhotoCraft's one-page summary of how close it is to Adobe Photoshop 2026 (27.11.0, measured from the installed app on 2026-10-10) at version 0.6.0. Detail: target-app parity (methodology, weights, evidence), gaps (the ranked work list), roadmap (milestones, current focus), scorecard and menu checklist (both generated and measured), architecture.
Hours are Opus 5.5 agent wall-clock hours for one agent working sequentially, calibrated from this repository's 1,004 merged PRs (see calibration). About 80% of the work parallelizes.
Headline numbers
| Value | Kind | |
|---|---|---|
| Feature breadth | ~76% | partly measured: menus 628/628, tools 56/68, panels 30/35, formats 13+4 of 31 |
| Ready for real work | ~45% (40–50%) | estimated: weighted by dimension below |
| Mainstream practitioner | ~43% (38–48%) | estimated: weekly areas of a typical pro, with discounts (method) |
| Essentials user | ~61% (55–67%) | estimated: core features only (method) |
| Remaining to beta | ~1,100–1,800 h | estimated |
| Remaining to full parity | ~2,300–4,100 h | estimated; AI and plug-ins need owner decisions |
Readiness by audience
| Audience | Ready % | Opus 5.5 agent-hours to ~95% | Work that dominates |
|---|---|---|---|
| Full target (ready for real work) | ~45% (additive weighted sum: 46%) | 2,300–4,100 | Everything below, plus AI tier, plug-in/scripting ecosystem, video, localization, hardware |
| Mainstream practitioner | ~43% | 1,700–2,800 | Depth in the 11 weekly areas (1,180–2,000), performance budgets, stability on real machines, PSD exchange with Photoshop |
| Essentials user | ~61% | 400–700 | Startup and GPU robustness, brush and transform responsiveness, Type tool, discoverability (flyouts, commit buttons), AVIF/PDF open |
Hours calibrated as in Remaining effort (2–9 h per checklist item, 8–20 h per format or subsystem, from the repo's 1,004 merged PRs); each tier is a subset of the one above. About 80% parallelizes (independent crates and command modules); performance architecture and the PSD writer are the serial parts.
Why alpha. Core workflows (open, layer, select, paint, adjust, filter, type, save) work end to end, and breadth is high, but 953 issues are open (2026-10-13), 22 of 25 performance budgets are missed, and PSDs we write are not yet reliably accepted by Photoshop (#1281, #2469). Beta needs ~75% ready and no blocking PSD gap. The alpha gate passes: all six core workflows (retouch, composite, cut-out, design, paint, PSD exchange) complete end to end and save and reopen; four are partial in depth, none blocked.
By dimension
| Dimension | % ready | Hours to full | Doc |
|---|---|---|---|
| Features (depth) | 55% (breadth 76%) | 600–1,000 | target-app-parity |
| UI/UX fidelity (tools, handles, modifiers, brush feel, panels) | 40% | 350–600 | ui-parity, brush-parity, context-menu-parity |
| File formats | 60% (presence ~80%) | 300–500 | file-format-parity |
| Hardware (GPU, pen, displays) | 50% | 80–150 | hardware-parity |
| Localization | 55% | 80–140 | localization-parity |
| Performance | 25% (3/25 budgets met, measured) | 200–350 | scorecard |
| Stability | 45% | 150–250 | gaps |
| Platforms | 80% | 30–60 | scorecard |
| Ecosystem / plug-ins / scripting | 15% | 250–450 | gaps |
| AI features | 10% | 300–600 | gaps |
Features
| Area | % ready | Hours |
|---|---|---|
| Layers, masks, blend modes, smart objects, styles | 65% | 150–250 |
| Selections, Select and Mask, channels | 55% | 120–200 |
| Painting and brush engine | 55% | 150–250 |
| Retouching (healing, clone, patch, remove, content-aware) | 50% | 100–180 |
| Transform, warp, puppet, liquify | 55% | 100–180 |
| Adjustments and filters | 70% | 120–200 |
| Type | 40% | 120–200 |
| Vector shapes and paths | 55% | 80–140 |
| Colour management and modes | 70% | 60–100 |
| Camera Raw and computational photo | 45% | 120–200 |
| Automation, actions, scripting | 45% | 120–200 |
| File I/O | 60% | 300–500 |
| Print, export, Save for Web | 50% | 60–100 |
| Video / timeline, data-driven graphics | 30% | 100–200 |
| Workspace, panels, preferences | 40% | 150–250 |
| AI / generative | 10% | 300–600 |
Rows and evidence: target-app-parity › Feature areas.
Languages
Measured with the cargo xtask i18n-coverage key universe (1,608 keys). partial everywhere
because engine messages are still English. Detail: localization-parity.
| Language | Code | UI strings | Status |
|---|---|---|---|
| English | en |
100% | full |
| Simplified Chinese | zh-hans |
100% | partial |
| Spanish | es |
100% | partial |
| Hindi | hi |
0% | none |
| Arabic | ar |
0% (RTL shell only) | none |
| French | fr |
100% | partial |
| Portuguese (Brazil) | pt-br |
100% | partial |
| Indonesian | id |
100% | partial |
| Japanese | ja |
100% | partial |
| German | de |
100% | partial |
| Korean | ko |
100% | partial |
| Vietnamese | vi |
0% | none |
Also shipped: Traditional Chinese, Russian, Ukrainian, Czech, Polish, Greek, Dutch, Italian (8).
Upcoming
| Rank | Milestone | Estimate |
|---|---|---|
| 1 | PSD that Photoshop trusts: Save As corruption, Photoshop re-open check, Photoshop-oracle floor 145 → 200+ of 258 | 150–250 h |
| 2 | Performance budgets: the 22 over-budget scenarios and the 150-layer GPU crash | 200–350 h |
| 3 | User bug backlog to under 100 open | 250–400 h |
| 4 | Brush and transform feel (brush-parity, ui-parity rows) | 160–290 h |
| 5 | The 12 missing tools | 60–100 h |
Detail and the next releases: docs/roadmap.md.
Progress log
| Date | Entry |
|---|---|
| 2026-10-10 | Full re-measure against Photoshop 2026 27.11.0 (installed bundle inspected): breadth ~76%, ready ~45%, alpha. Progress docs reorganized to the craftrules standard (parity.md → parity-checklist.md, parity-estimate.md merged into target-app-parity.md). 0.6.0 released. |
| 2026-10-09 | Remove tool, Rotate View, crop rotation; OpenRaster and Paint.NET; 39 Affinity documents in the corpus |
| 2026-10-08 | 0.5.0. Affinity import; Magnetic Lasso, Pattern Stamp, Mixer Brush, Pencil, Patch, Vertical Type on the toolbar |
| 2026-10-07 | 0.3.0. 10 UI languages; shortcut audit 214 → 0 failures; TIFF decode 10× faster |
| 2026-10-05 | 0.2.0, first signed and notarized release. Honest assessment: ready for real work 25–35% |
| 2026-10-03 | Menu breadth 625/625 |
| 2026-10-01 | Menu breadth 224 → 532 of 625 in a day |
| 2026-09-30 | First commit |
Revision history
| Date | Change | Summary |
|---|---|---|
| 2026-10-13 | minor | Focus item 1 quoted the oracle floor as 133 of 256; it is 145 of 258 (crates/io/tests/corpus.rs, gaps.md G1). Open issues 579 → 953 (2026-10-13) |
| 2026-10-11 | minor | Toolbox count 56 of 68 (12 missing) with the Convert Point tool (#3204) |
| 2026-10-10 | minor | Readiness by audience with hours per tier |
| 2026-10-10 | minor | Mainstream-practitioner and essentials-user numbers added |
| 2026-10-10 | minor | Alpha gate result (passes; stays alpha) in the stage explanation |
| 2026-10-10 | major | First version, per craftrules standards/progress-docs.md |