A GPU photo editor I use every day.
RAW editor for macOS. Edits are a graph of GPU compute nodes. A slider re-runs only the nodes after it. I use it on my own 42 MP camera files.
Click a stage.
Nineteen stages, sensor to screen.
Click a stage, or play a photo through it.
A slider re-runs only the nodes after it.
Upstream outputs stay cached on the GPU. Pick a control.
One slider tick, start to finish.
What the benchmark says.
orion-bench on a real Sony A7R III raw, 7968 × 5320 (42.4 MP), Apple M4.
Where the GPU time goes.
205 nodes. Most stages are one node; pyramids make the rest. Click a segment, hover a node.
How it is timed
Normal renders put all dirty nodes in one command buffer. Profiling mode (Pipeline::setProfiling, used by orion-bench) gives each node its own, so each node's GPU time is separate.
What I'd measure next
- Memory traffic per stage
- Fusing cheap adjacent stages
- The same profile on a different GPU
Tests render real GPU output. Agent edits need approval.
Nine gates
Results from the run on 2026-10-06.
Agent edits over MCP
Orion
Before
Proposed
No proposal.
An AI agent proposes. The photographer decides.
Orion
Before
Proposed
No proposal.