
Photo Forge first: how the Forge suite will be sequenced
The suite will be built one application at a time. Photo Forge comes first, Light Forge second, and the rest of the lineup follows only after real milestones.

Photo Forge is a real, working codebase: a professional raster, vector, and text editor in development. This page separates verified work from work in progress and from goals that have not been started.
Status as of October 18, 2026. Sources: the project's feature inventory, prioritized roadmap, and commit history. Photo Forge is not publicly available.
How it's built
Layer 1
Python · Qt (PySide6)
Owns the interface, user decisions, and integration. Widgets are views of the document; they never become the saved source of truth.
Layer 2
Python
The authoritative document: layers, text, vectors, masks, effects, and History. Saved as native .pforge files.
Layer 3
Rust · PyO3 / maturin
Performance-critical pixel operations, with a Python reference fallback and parity tests for every native operation.
This diagram describes the software architecture. It is not a picture of the application.
Verified in development builds
Photo Forge saves and reopens its own document format with atomic writes and recovery, and keeps layers, text, vectors, masks, and effects editable across save and reopen.
Rectangle, ellipse, and line objects with fill and stroke, selection chrome, resize, and rotation with angle snapping.
In-canvas typing, selection, clipboard, and range typography in point and frame-based text that never gets silently rasterized.
ENGINE1
A native Rust engine connected through PyO3, with a Python reference fallback, now handling mask and raster operations.
EFFECTS1
Drop Shadow saved as a layer effect
Drop Shadow settings are now part of the document, persist in .pforge files, and render once per paint pass.
MASK1B
Layer masks with mask painting
Add, enable, and paint layer masks, and switch the edit target between layer content and its mask from the Layers panel.
In progress
Fixes painting inside an active selection so strokes reach every canvas tile. Implemented and in review.
Rebuilds the Eraser on the brush stroke pipeline so it removes pixels instead of painting white, with stroke performance work. In review.
Locked layers refuse painting, and lock state survives save and reopen for every layer kind.
Crop should keep text as editable text and keep vector layers aligned with the new canvas origin.
Copy-on-write tile sharing between History snapshots, followed by a configurable memory and depth budget.
A separable blur kernel in Rust with parity tests against a Python reference, then integration into Photo Forge.
Repeatable measurements of real editing scenarios, so performance work is measured before and after every change.
Roadmap
Adjustment layers
One adjustment layer end to end first, such as Levels or Brightness/Contrast, then more.
More selection tools and soft selections
Ellipse and lasso selection, feathering, and selection-to-mask, built on a soft (grayscale) selection model.
Pen tablet pressure
Pressure-sensitive size and opacity for pen tablets, with tilt to follow.
Preferences, recent files, autosave, and recovery
Saved workspace layouts and settings, a recent-files list, and periodic recovery snapshots.
Faster, higher-quality Drop Shadow
Native blur, smarter caching, and a fix for visible stepping at large blur radii.
Eyedropper, paint bucket, and export presets
Everyday tools, plus PNG, JPEG, and WebP export presets with size and metadata options.
High-quality PSD compatibility
Goal · not releasedOpening and saving layered PSD files with as much fidelity as possible. A goal, not a released feature.
Photoshop .ABR brush import
Goal · not releasedImporting brush presets from .abr files so artists can bring their tools with them. A goal, not a released feature.
Professional filters and layer styles
Goal · not releasedA broader catalog of filters and layer effects such as stroke and glow, built on the native engine.
Extension and plugin architecture
Goal · not releasedA command and extension API, developer documentation, and eventually a Forge Marketplace.
Installers for Linux, Windows, and macOS
Goal · not releasedReliable packaged builds across platforms, starting with Linux.
Development journal

The suite will be built one application at a time. Photo Forge comes first, Light Forge second, and the rest of the lineup follows only after real milestones.

Three correctness fixes from the October audit are implemented on development branches: painting inside selections, an eraser that truly erases, and enforced layer locks.

A full repository audit classified every Photo Forge capability as verified, partial, placeholder, or missing. Here is the short version.

Layer masks can now be painted directly. The Layers panel lets you choose whether you are editing a layer's pixels or its mask.

Layer effects are now part of the document. Drop Shadow settings survive save and reopen, and shadows are built once per repaint instead of once per tile.

Photo Forge now has a native engine written in Rust for mask and raster operations, connected to Python through PyO3 and backed by a reference fallback.

Join the early-access list. We'll write when there is real progress, and when there is something you can try.