Orion 0.4.0-alpha.3 — colour range masks, multi-selection, seven fixes
Pre-releaseThird alpha. Two new features, seven fixed defects, and one limitation from the
last two releases' notes that turned out no longer to be true.
Apple silicon only. Ad-hoc signed, not notarized — first launch needs
right-click → Open, or macOS will refuse it. README-FIRST.txt inside the disk
image says the same.
New
Colour range masks. Pick a shade off the photograph and select what is near
it. The metric is Euclidean distance in Oklab chromaticity, and it deliberately
ignores how light or dark a colour is — so a shade in shadow and the same shade
in sun are one selection. Compose it with a brightness range mask to narrow
that. research/masking.md §4c has the argument for why neither CIE76 nor
CIEDE2000 was the right answer.
Multi-selection in the filmstrip. ⌘-click toggles, ⇧-click extends,
⌘-⇧-click adds a second range, ⌘A takes everything in view. Sync and batch
export act on what is selected.
Presets have their own tab. They were a hundred and twenty lines at the top
of Light, in front of the Exposure slider. Light now opens on White Balance.
Fixed
- A painted mask vanished during every slider drag. Brush strokes, raster
mattes and creative LUTs never reached the preview graph that renders while
the hand is moving, so a local exposure dragged through a brush mask rendered
with no coverage at all until the drag ended. - A subject matte followed the graph to the next photograph. Opening the
next frame of a folder from the same camera reused the compiled graph and kept
the previous photo's matte — full coverage, right place, wrong picture. - The colour-mixer eyedropper read the wrong pixel on a cropped photograph.
It undid the rotation and not the crop, so clicking the subject picked the
colour of whatever sat at that fraction of the uncropped frame. - Subject and Person analysed a red-tinted photograph when "Show mask" was
on. The coverage overlay was not being turned off around the render handed
to the segmentation model — which is on precisely when someone is working with
masks, and so precisely when they press Subject. - A luminance range mask never survived reopening the photo. Its three
settings were written to the sidecar and silently ignored on the way back in. - Sync and "Export all" ignored the filmstrip filter. Both acted on the whole
folder while the warning beside them said "every photo in view", so culling to
your picks and pressing Export all wrote every reject alongside them. - A crash-shaped hole at the C boundary: one accessor could let a C++ exception
reach Swift, which terminates the process rather than raising an error.
Corrected from the previous notes
v0.4.0-alpha.1 and .2 both listed 8-bit TIFF as a limitation. It is not
one and has not been for some time — TIFF exports are 16 bits per channel,
verified on this build. The 256-dab brush truncation listed there is also
fixed, as of v0.4.0-alpha.2's successor.
Still true
Apple silicon only. Sky masks are not implemented — the segmentation model
Orion uses cannot produce one. A subject matte is not written to the sidecar, so
reopening a photo leaves a Subject row empty until it is run again; the panel
says so rather than leaving it to be discovered.
Suites at this tag: orion-tests 483 checks, orion-viewport-tests 3374
checks, 21 reproduction scenarios totalling 91 checks, all passing. The
benchmark gates the M0 latency target and exits zero on all three sample frames.