* Mirror the shell for right-to-left UI languages (DIST-220-4) Arabic, Hebrew, Persian and Urdu read right to left, but the window's chrome was hard-wired left to right, so an RTL catalog (#2505) would put Arabic labels into a left-to-right layout. The reading direction now follows the language code (i18n::dir_for_code: ar, ckb, dv, fa, he, ps, sd, ug, ur, yi), so a catalog needs no extra setting and the LANGUAGES rows are unchanged. In a right-to-left language the shell mirrors: - the menu bar starts at the right with File; menus open under their title's right edge, and the arrow keys step through them in screen order - the toolbox docks on the right, the panel dock and its rail on the left; tool flyouts open towards the canvas and their corner marks and the header chevrons follow - the title, options and status bars read from the right, with the workspace controls and the Fit/progress group at the left end; the title and window-drag gap use the free span between them New module direction.rs holds the helpers (start_panel/end_panel, row/trailing layouts, horizontal_centered, the popup alignment). Left to right, every change lays out as before. No RTL catalog ships yet, so PHOTOCRAFT_UI_DIRECTION=rtl forces the mirrored layout for review (read once, native only). Panel interiors, dialogs, menu rows, submenus and document tabs stay left to right, and egui still draws UI labels without Arabic shaping or bidi reordering; docs/localization.md and the parity docs say so. Adds Lucide's chevron-left (the status bar's info menu arrow points left in RTL; Timeline's Previous frame button asked for it too and drew the fallback square). Co-Authored-By: Claude Opus 5.5 <[email protected]> * Localization docs: egui shapes Arabic words; what's missing is a font and bidi word order egui 0.36 shapes right-to-left runs with HarfRust, so letters join within a word. The gaps are an Arabic fallback font in the UI and paragraph bidi (words are placed left to right; emilk/egui#8576, #8577). Co-Authored-By: Claude Opus 5.5 <[email protected]> --------- Co-authored-by: MathMattTech <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]>
8.0 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-10 · Last updated: 2026-10-10 · Change: major (first version: full re-measure against Photoshop 2026 27.11.0) · 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 53/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 users of 0.5/0.6 have 579 open issues, 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 133 → 200+ of 256 | 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 15 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-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 |