Skip to content
FORGE CREATIVE, home
A man in glasses thinks at a wooden desk with a monitor, keyboard, laptop and a small warm lamp.
Active Development

Photo Forge development

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

Architecture

Python owns the interface, decisions, and the document. Rust does the heavy computation. Neither is allowed to quietly become the source of truth for the other.
  1. Layer 1

    Interface

    Python · Qt (PySide6)

    Owns the interface, user decisions, and integration. Widgets are views of the document; they never become the saved source of truth.

  2. Layer 2

    Document model

    Python

    The authoritative document: layers, text, vectors, masks, effects, and History. Saved as native .pforge files.

  3. Layer 3

    Forge Engine

    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

What we've built

Capabilities that already work in development builds. Each carries a status label instead of a progress bar.
Verified
Works end to end in development builds and is covered by automated tests.
Partial
Works, with a stated gap.
Fix in review
A fix is implemented on a development branch and awaiting verification.

Layers

  • Pixel, background, text, and vector layersVerified
  • New, duplicate, delete, rename, and reorderVerified
  • Visibility and opacityVerified
  • Merge DownVerified
  • Blend modesSix modes so farPartial
  • Layer locksEnforcement and saving in reviewFix in review

Painting

  • Brush with presets: size, hardness, spacing, flow, angle, roundnessVerified
  • Gradient tool with on-canvas handlesVerified
  • Rectangle, ellipse, and line toolsVerified
  • Painting inside a selectionBRUSH-FIX1Fix in review
  • Eraser that clears to transparencyERASER1Fix in review

Selection and transform

  • Rectangular selection with invertVerified
  • Select All, Deselect, Reselect, copy, cut, and pasteVerified
  • Free Transform for pixels, selections, text, and vectorsVerified
  • Flip and rotateVerified
  • CropText and vector fidelity in progressPartial

Typography

  • Point text and area text framesVerified
  • In-canvas typing, selection, and clipboardVerified
  • Range typography: family, size, color, scaleVerified
  • Frame resize and rotation without changing font sizeVerified

Vector

  • Rectangle, ellipse, and line objects with fill and strokeVerified
  • Selection, resize, and rotate handlesVerified
  • Path geometry modelNo Pen tool yetPartial

Masks and effects

  • Layer masks: add, delete, enable, composite, saveVerified
  • Mask painting and edit-target switching (MASK1B)Verified
  • Drop Shadow, saved with the document (EFFECTS1)Verified
  • Blur, denoise, detail, and sharpen filtersSlow on large imagesPartial

Documents

  • Native .pforge save and open with atomic writes and recoveryVerified
  • Open PNG and JPEGVerified
  • Export PNGVerified

History

  • Undo, redo, and a History panel with jump-to-stateVerified
  • One History step per gestureNo global policy yetPartial

Forge Engine

  • Native Rust mask fill, write, crop, alpha bounds, and applyVerified
  • Python reference fallback with parity testsVerified

Milestones

  1. Native .pforge documents

    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.

  2. Vector shape layers

    Rectangle, ellipse, and line objects with fill and stroke, selection chrome, resize, and rotation with angle snapping.

  3. Editable Point and Area text

    In-canvas typing, selection, clipboard, and range typography in point and frame-based text that never gets silently rasterized.

  4. ENGINE1

    Forge Engine foundation

    A native Rust engine connected through PyO3, with a Python reference fallback, now handling mask and raster operations.

  5. 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.

  6. 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

What we're improving

Correctness and data safety come first, and performance is measured before it is optimized. These tasks are underway or in review on development branches.
  • In Progress

    Brush strokes inside selectionsBRUSH-FIX1

    Fixes painting inside an active selection so strokes reach every canvas tile. Implemented and in review.

  • In Progress

    Eraser that clears to transparencyERASER1

    Rebuilds the Eraser on the brush stroke pipeline so it removes pixels instead of painting white, with stroke performance work. In review.

  • In Progress

    Layer locks that are enforced and savedLOCK-PERSIST1

    Locked layers refuse painting, and lock state survives save and reopen for every layer kind.

  • In Progress

    Crop that keeps text editable and vectors alignedCROP-FIDELITY1

    Crop should keep text as editable text and keep vector layers aligned with the new canvas origin.

  • In Progress

    Lower-memory HistoryHIST2-COW

    Copy-on-write tile sharing between History snapshots, followed by a configurable memory and depth budget.

  • In Progress

    Native blur in the Forge EngineENGINE2A

    A separable blur kernel in Rust with parity tests against a Python reference, then integration into Photo Forge.

  • In Progress

    Benchmark harness and performance budgetsBENCH1

    Repeatable measurements of real editing scenarios, so performance work is measured before and after every change.

Roadmap

What's coming next

Planned work is scheduled after the current fixes. Long-term goals are ambitions, not released features. None of these has a release date.

Planned next

  • 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.

Long-term goals

  • High-quality PSD compatibility

    Goal · not released

    Opening and saving layered PSD files with as much fidelity as possible. A goal, not a released feature.

  • Photoshop .ABR brush import

    Goal · not released

    Importing 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 released

    A broader catalog of filters and layer effects such as stroke and glow, built on the native engine.

  • Extension and plugin architecture

    Goal · not released

    A command and extension API, developer documentation, and eventually a Forge Marketplace.

  • Installers for Linux, Windows, and macOS

    Goal · not released

    Reliable packaged builds across platforms, starting with Linux.

Development journal

Public journal

All Photo Forge updates
Photo ForgeIn review

Brush, eraser, and layer-lock fixes move into review

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

Photo ForgeMilestone

MASK1B: painting and editing layer masks

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

Photo ForgeMilestone

EFFECTS1: Drop Shadow becomes a saved layer effect

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.

EngineeringEngineering

Forge Engine: a native Rust core under Photo Forge

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.

Follow Photo Forge as it takes shape.

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