Bring the README's features and standing up to 0.19.0

The develop paragraph counted eighteen operations fused into one
dispatch, before the view transform made nineteen and a detail stage
made the fusion two passes, and said nothing of editing on the scene
with Tone Mapping last. Presets are now a menu on the tool rail, a
panorama frame can be left out, and a linear DNG larger than one
texture develops. The requirement count and coverage are
traceability.md's (193, 85.5%), and tiled rendering is no longer
wholly unbuilt. outstanding.md gains its sweep note for 0.19.0 and
says in §11 what the frame choice changed.
This commit is contained in:
2026-09-27 19:42:42 -04:00
parent 4bd8d86c00
commit 330ece0abe
2 changed files with 43 additions and 26 deletions
+33 -25
View File
@@ -25,26 +25,34 @@ dated folder and a backup beside it — is found, proved the same, and folded
onto one copy with the spares in the trash. Face detection and identity, onto one copy with the spares in the trash. Face detection and identity,
with the index syncing between devices. with the index syncing between devices.
**Developing.** Eighteen declared operations fused into one compute **Developing.** Nineteen declared operations, those that read one pixel
dispatch, plus the neighbourhood work that cannot be: clarity, texture, fused into a generated shader rather than run a pass each, plus the
capture sharpening, noise reduction, lens correction, spectral film neighbourhood work that cannot be: clarity, texture, dehaze, capture
simulation. Crop, straighten and correct converging verticals, spot repair, sharpening, noise reduction, lens correction. Every edit works on the scene
and local adjustments over masks the model draws — click a subject or a as the camera recorded it — linear, highlights beyond white included — and
category, then paint, subtract a gradient or keep only where two selections one `Tone Mapping` step, last, after sharpening and noise reduction, fits it
agree, grow or shrink the edge. A mask's sliders add to the photograph's, the to the screen, with a contrast and a white point of its own; a spectral film
film's among them, so a sky can be burned in on the print as a darkroom stock takes its place when one is chosen. Crop, straighten and correct
printer would. Hot and dead photosites are mended before the demosaic, with converging verticals, spot repair, and local adjustments over masks the
nothing to set. Focus peaking and a raw histogram for judging model draws — click a subject or a category, then paint, subtract a gradient
what is recoverable. Presets, with a collection shipped in the application — or keep only where two selections agree, grow or shrink the edge. A mask's
sliders add to the photograph's, the film's among them, so a sky can be
burned in on the print as a darkroom printer would. Hot and dead photosites
are mended before the demosaic, with nothing to set. Focus peaking and a raw
histogram for judging what is recoverable. Presets, a click away in a menu
at the foot of the tool rail, with a collection shipped in the application —
everyday corrections, and a look for each measured colour, cinema and everyday corrections, and a look for each measured colour, cinema and
black-and-white stock — and Lightroom presets imported as looks that leave a black-and-white stock — and Lightroom presets imported as looks that leave a
photograph's own corrections alone. XMP sidecars other editors read. photograph's own corrections alone. XMP sidecars other editors read. A
linear DNG larger than one GPU texture — a stitched panorama twenty thousand
pixels wide — opens, develops and exports at full size.
[![Segmenting an urban scene and choosing the sky as a mask](docs/manual/media/local-segment.png)](docs/manual/README.md#local-adjustments) [![Segmenting an urban scene and choosing the sky as a mask](docs/manual/media/local-segment.png)](docs/manual/README.md#local-adjustments)
**Panoramas.** Select the frames, align, choose a projection, fill the **Panoramas.** Select the frames, align, untick any frame to leave it out
ragged border rather than crop it, and the composite lands beside its and the rest re-align at once, choose a projection, fill the ragged border
sources as a DNG, with a sidecar recording what it was merged from. rather than crop it, and the composite lands beside its sources as a DNG,
with a sidecar recording what it was merged from.
[![Twelve hand-held frames aligned on a cylinder](docs/manual/media/panorama-aligned.png)](docs/manual/README.md#merging-a-panorama) [![Twelve hand-held frames aligned on a cylinder](docs/manual/media/panorama-aligned.png)](docs/manual/README.md#merging-a-panorama)
@@ -96,19 +104,19 @@ controls, its place in the chain and its tests.
## Where it stands ## Where it stands
**0.18.2**, twenty-eight tagged releases in. 192 numbered requirements in **0.18.2**, twenty-eight tagged releases in. 193 numbered requirements in
scope, 84% of them claimed by code and [traced to it](docs/dev/traceability.md); scope, 85% of them claimed by code and [traced to it](docs/dev/traceability.md);
the rest are written down rather than merely absent. the rest are written down rather than merely absent.
**Not built:** plugins (post-v1, [D12](docs/dev/requirements.md)), compare and **Not built:** plugins (post-v1, [D12](docs/dev/requirements.md)), compare and
survey culling, AI denoise, tiled rendering, HDR merge and survey culling, AI denoise, tiled rendering beyond the export of an oversized
focus stacking, importing a Lightroom or darktable catalog, translations DNG, HDR merge and focus stacking, importing a Lightroom or darktable catalog,
beyond the launch screen, most of the Android platform integration beyond translations beyond the launch screen, most of the Android platform
running, and a Flatpak actually built and run in its sandbox. The integration beyond running, and a Flatpak actually built and run in its
performance targets are half verified: the per-commit benchmark suite §8 sandbox. The performance targets are half verified: the per-commit benchmark
requires exists for everything that does not need a frame — the catalog, suite §8 requires exists for everything that does not need a frame — the
the scan, the thumbnails — and not yet for the render path, so a regression catalog, the scan, the thumbnails — and not yet for the render path, so a
there fails nothing. regression there fails nothing.
[outstanding.md](docs/dev/outstanding.md) is the list, with the reasoning for [outstanding.md](docs/dev/outstanding.md) is the list, with the reasoning for
each. each.
+10 -1
View File
@@ -46,6 +46,13 @@ before the demosaic, for Bayer and X-Trans alike and with no setting (FR-RAW-3;
reader in `dr-decode` is still not wired in, and a CR2 carries no map for it to read); and the reader in `dr-decode` is still not wired in, and a CR2 carries no map for it to read); and the
tablet's scrollers, which §4a now describes. tablet's scrollers, which §4a now describes.
**And for 0.19.0.** D19 rebuilt the develop pipeline around one rule — scene-linear from the camera
matrix to a single view transform, last ([architecture.md §6.14](architecture.md)) — which neither
closed nor opened an entry here: FR-DEV-3e's per-body base curves are retired by decision rather than
left outstanding, and its DCP half stays deferred as before. §4's FR-DSP-2 and NFR-RES-2 entries
record the one case that now tiles, a linear DNG larger than one texture, and §11 the merge's frame
choice, which changes how FR-MRG-5 is met rather than whether.
--- ---
## 1. Plugins — post-v1 since 2026-09-19 ## 1. Plugins — post-v1 since 2026-09-19
@@ -576,7 +583,9 @@ whether something *should* be built — which is the opposite of the order §9 a
and focus stacking there with their data model decided. Its clauses entered the register with no and focus stacking there with their data model decided. Its clauses entered the register with no
code behind them, which is why the coverage figure fell from 83.0% to 77.2% on that day — and the code behind them, which is why the coverage figure fell from 83.0% to 77.2% on that day — and the
panorama was then built in the same week: alignment, projections, the chunked composite written as panorama was then built in the same week: alignment, projections, the chunked composite written as
a DNG beside its sources, the auto-crop and the model's border fill. a DNG beside its sources, the auto-crop and the model's border fill. In 0.19.0 a frame that cannot
be placed no longer ends the job: it is named on its row and the merge waits for it to be unticked,
and any frame can be left out that way without reading the rest again (panorama.md §15).
[panorama.md](panorama.md) §11 and §13 are where it stands. [panorama.md](panorama.md) §11 and §13 are where it stands.
Three clauses carry no tag: Three clauses carry no tag: