photocraft/docs/parity-estimate.md

6.6 KiB
Raw Blame History

Feature-parity estimate and remaining effort

How close PhotoCraft is to Adobe Photoshop 2026, and how much Opus 5.5 work remains. Generated by assessment, not a tool; revisit when a major arc lands. Menu coverage is from cargo xtask parity; fidelity is from the PSD oracle (cargo xtask corpus / oracle_diff).

Headline

Update 2026-10-03: menu/command breadth reached 100% (625/625) — every Photoshop menu item now dispatches a live command (incl. Variables/Data Sets, Trap, the Timeline panel and Layer › Video Layers). Remaining parity work is depth and fidelity, not breadth: PSD oracle (~66%), Camera Raw/video-layer depth, and the AI/Neural tier. See the table below.

  • Menu / command breadth: 625 / 625 Photoshop menu items live = 100% (every menu item has a live command).
  • PSD rendering fidelity (oracle): ~111 / 170 corpus files pixel-match = ~65%.
  • Overall functional parity (weighted, mainstream workflows): ~86% (menu breadth complete; depth + fidelity are the remaining gap).
  • Overall including Adobe's AI / Firefly features: ~75% (these are mostly cloud/ML and the hardest to reach clean-room).

Menu coverage (96%) overstates true parity because many live commands are faithful-but-approximate (Camera Raw without masking/calibration, Vanishing Point without its UI, heuristic Select Subject/Sky vs Adobe's ML, Content-Aware Fill basic). The weighted figure accounts for depth and fidelity, not just presence.

Where we stand, by area

Area Parity Notes
Layers, masks, groups, blend modes, smart objects, layer styles ~92% Broad + GPU-accelerated; bevel/satin shapes and a few blend edge cases remain
Selections, paths, vector shapes, pen ~90% Select menu 100% of items; Select Subject/Sky are heuristic, not ML
Paint / brush engine, retouch (clone, healing) ~85% Solid; no Mixer Brush depth, no Content-Aware healing
Adjustments + adjustment layers ~90% All kinds present; Camera Raw depth and a few toe-curve models approximate
Filters (incl. Filter Gallery ×47, Liquify, blurs, render) ~88% Gallery looks are approximations; no Neural Filters
Type / text engine, character & paragraph styles, glyphs ~90% Vertical type and OpenType alternates thin
Color management (ICC v2/v4, intents, soft-proof) ~90% Own pure-Rust CMS; no Adobe CMYK profiles (synthetic)
File I/O: PSD, native .pcraft, flats (png/jpg/tiff/webp/exr/…) ~85% PSD oracle ~65% pixel-exact; most structure round-trips
Transform, warp, puppet, perspective, liquify ~88% No Face-Aware Liquify (needs a landmark model)
Automation: CLI, MCP, headless server, control channel ~95% Ahead of Photoshop here (see below)
Image modes (RGB/Gray/CMYK/Lab/Indexed/Duotone/Multichannel) ~85% Multichannel display-only; no ink-plate model
Print / export / Save for Web / slices / Generator ~85% No Separations/bleed; droplets basic
Computational photo (Photomerge, HDR, Lens, Camera Raw, Wide Angle) ~70% Classical implementations; generic lens profiles only
Data-driven graphics (Variables, Data Sets) ~0% Not started (5 menu items)
Video / Timeline / animation ~0% Not started (13 menu items) — a whole subsystem
AI / Neural / Generative (Firefly, Sensei, Neural Filters) ~5% Mostly absent; needs licensed/trained models
Prepress niche (Trap, measurement scale pro) ~30% Trap, ink spread not modelled

The remaining 25 menu items, grouped

  • Video & Timeline (13): Video Layers (new/insert/duplicate/delete/replace/interpret/restore/ reload/rasterize), Rasterize › Video, Timeline panel, Render Video, Import Video Frames to Layers. One cohesive subsystem: a frame/time model, a video decoder/encoder (clean-room Rust, no ffmpeg), onion-skinning, and a timeline UI.
  • Data-driven graphics (5): Variables › Define / Data Sets, Apply Data Set, Export Data Sets as Files, Import Variable Data Sets. A template-binding model over layers + a CSV/data-set engine.
  • Niche / platform (7): Trap (prepress ink spread), Frame from Layers, Migrate Presets, WIA Support (Windows scanners), and two already-adjacent items.

Effort to parity (Opus 5.5)

Two clocks: agent-hours (total model work) and wall-clock (with this session's observed ~6–8× parallelism across independent arcs). This session landed ~70 menu items + major subsystems in a handful of wall-clock hours using 8 parallel agents, so wall-clock ≈ agent-hours ÷ 6.

Milestone Scope Agent-hours Wall-clock
To 90% functional remaining non-AI/non-video menu items (Variables, Trap, Frame, Migrate, WIA), Camera Raw depth, Vanishing Point UI, selection quality, polish 60–90 10–15 h
To 95% functional the above + PSD oracle 65% → ~90% (bevel/satin shapes, Lab blending, noise-gradient RNG, toe curves), broad UI-parity pass, perf pass +80–130 +15–22 h
Video / Timeline subsystem frame model, clean-room decode/encode, timeline, animation, Render Video 50–80 10–14 h
Credible AI tier ML Select Subject/Sky, Content-Aware Fill (PatchMatch++), basic generative fill/expand — needs model integration; some features may be infeasible fully clean-room without licensed models 120–250+ 25–45 h

Totals:

  • To ~95% functional parity (everything except video and AI): ~140–220 agent-hours ≈ 25–40 wall-clock hours of Opus 5.5 with parallel agents.
  • To ~98% incl. the video subsystem: +50–80 agent-hours ≈ +10–14 wall-clock hours.
  • To ~99% incl. a credible AI tier: +120–250 agent-hours ≈ +25–45 wall-clock hours, with the caveat that pixel-for-pixel Firefly/Sensei parity is not achievable clean-room without trained models; we target functional equivalents.

Best single number: PhotoCraft is ~82% of the way to full Photoshop parity, and reaching a 95%, ships-for-most-users state is roughly 25–40 wall-clock hours of parallel Opus 5.5 work. Closing the last 5% (video + AI) is the long, uncertain tail.

Assumptions & caveats

  • "Parity" = functional + visual equivalence of what a user can do, not byte-identical output. Clean- room means no Adobe code, profiles, shaders, or trained models; AI features target equivalents.
  • Wall-clock assumes 6–8 independent arcs in parallel with their own target dirs, as this session ran. Serial work is ~6× longer.
  • Adobe removed 3D/Substance from Photoshop, so 3D is intentionally out of scope.
  • Fidelity hours are the least certain: the remaining oracle failures are proprietary RNGs and unpublished curve models fitted by observation.