From 928ba4f77e1aad005ccc7d05db408d8329fb9dbb Mon Sep 17 00:00:00 2001 From: Josh Hall Date: Sat, 7 Nov 2026 22:17:45 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20final=20consistency=20pass=20=E2=80=94?= =?UTF-8?q?=20fix=20README=20hero=20image,=20stale=20site=20numbers,=20glo?= =?UTF-8?q?ssary=20nits?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - add docs/images/example-run/croissant-row1.png (rendered from croissant.nrrd row 1); README referenced it but the file was missing - site: benchmark table/link updated to results-2026-11-07.md (50.1 FPS canonical, Python 3.15); validation card now states the isosceles triangle/trapezoid rules instead of 'proper rectangle'; drop the unsupported 'geometry cached' claim - testing-strategy: point at the latest results file - glossary: ADR 0002 exists now; note FR-4's tolerated signed input - bench: import parse_planes from plane_validation directly so mypy --strict stays clean on the source modules --- GLOSSARY.md | 4 ++-- bench.py | 3 ++- docs/images/example-run/croissant-row1.png | Bin 0 -> 94492 bytes docs/testing-strategy.md | 2 +- site/index.html | 22 +++++++++++---------- 5 files changed, 17 insertions(+), 14 deletions(-) create mode 100644 docs/images/example-run/croissant-row1.png diff --git a/GLOSSARY.md b/GLOSSARY.md index fdfe082..8ad7766 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -5,7 +5,7 @@ Seed terms for the plane-projection domain. Refine and expand via `/domain-model ## Terms - **Matrix (`M`)** — the 3D input array of voxels. Dimensions `sx, sy, sz` each satisfy `1 <= s < 2^10`. Stored as `.nrrd` files; values are unsigned 8-, 16-, or 32-bit integers. -- **Voxel (`v`)** — a single element of `M`, i.e. `v = M[x][y][z]`, always an unsigned integer. +- **Voxel (`v`)** — a single element of `M`, i.e. `v = M[x][y][z]`, an integer value: unsigned 8-, 16-, or 32-bit per the brief's contract; signed integer types (e.g. the corpus's `int16` MRHead) are tolerated input per SRS FR-4. - **Plane (`p`)** — a flat geometric target defined by 3 or 4 coordinates. A 3-point plane satisfies `|dist(a,b) - dist(a,c)| < 0.001`; a 4-point plane satisfies the three validity rules in `AGENTS.md`. An invalid plane raises an exception. - **Plane set** — 1+ planes from a `.csv` input file, combined for one output video. - **Projection** — the mapping of `M`'s voxel values onto a plane `p`; the per-plane result is a 2D frame of voxel values. @@ -13,7 +13,7 @@ Seed terms for the plane-projection domain. Refine and expand via `/domain-model - **Closest voxel** — the selection rule: when computing a projection, choose the nearest voxel rather than a more complex sampling solution. - **Frame** — one rendered plane projection; frames are combined into an output video (`.mp4`). - **Error frame** — a black video frame with a red banner in a fixed corner giving the CSV row index and the specific reason a plane could not produce a frame (failed validity rule or degenerate geometry). The video continues with the remaining planes; the same line is logged to the CLI. -- **Canonical space** — voxel-index space: all plane coordinates and lookups live in `M[x][y][z]` array coordinates. World-space header fields (`space origin`, `space directions`) are deliberately unused; see ADR 0002 (to be written). +- **Canonical space** — voxel-index space: all plane coordinates and lookups live in `M[x][y][z]` array coordinates. World-space header fields (`space origin`, `space directions`) are deliberately unused; see [ADR 0002](docs/adr/0002-canonical-voxel-index-space.md). - **Frame** *(refined)* — a 2D image one sample per voxel-length unit: height = leg length in index units (rounded), width = base length (rounded). Apex `a` at top-center, legs running downward to b/c, rows centered on the canvas; no mirroring. - **Canvas** — the fixed video frame size: the maximum frame width and height across all planes in one CSV, all frames padded top-left with black to fit, since one video requires one fixed frame size. - **Sample rule** — closest voxel by half-to-even rounding of the sample point's index coordinates. diff --git a/bench.py b/bench.py index 0ad4a5a..b638236 100644 --- a/bench.py +++ b/bench.py @@ -33,6 +33,7 @@ import numpy import Ex0 +from plane_validation import parse_planes Clock = Callable[[], float] @@ -85,7 +86,7 @@ def timed_pipeline( start = clock() volume = Ex0.load_volume(volume_path) after_load = clock() - records = Ex0.parse_planes(plane_list_path) + records = parse_planes(plane_list_path) rendered = Ex0.render_frames(volume, records) canvas = Ex0.canvas_size(rendered) after_render = clock() diff --git a/docs/images/example-run/croissant-row1.png b/docs/images/example-run/croissant-row1.png new file mode 100644 index 0000000000000000000000000000000000000000..8f1a3cf1e089e89f34f69d8b28202dc3f513299f GIT binary patch literal 94492 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

Biet~&OIil6sBRKL0Vv^Qms-WK@Q&?j5l@6IE0 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 NbRHRKR6l$c_CNX}CBOgx literal 0 HcmV?d00001 diff --git a/docs/testing-strategy.md b/docs/testing-strategy.md index 87db15f..c7a6d80 100644 --- a/docs/testing-strategy.md +++ b/docs/testing-strategy.md @@ -129,7 +129,7 @@ change to the sampled values shows up immediately, byte-for-byte. - **Real timing.** `tests/test_bench.py` injects a scripted clock. FPS, hardware, drift and the NFR-1 verdict belong to `bench.py` and - [`benchmarks/results-2026-11-06.md`](../benchmarks/results-2026-11-06.md); + [`benchmarks/results-2026-11-07.md`](../benchmarks/results-2026-11-07.md); asserting wall time in the suite would only make it flaky. - **Encoder-exact pixels.** mp4v is lossy, so video tests assert decoded properties (frame count, size, fps, presence/absence of content, black diff --git a/site/index.html b/site/index.html index 35d95b9..26d19cb 100644 --- a/site/index.html +++ b/site/index.html @@ -60,13 +60,15 @@

What it does

INPUT

NRRD volume loader

Reads 8-, 16- and 32-bit unsigned volumes up to 1024³ per axis - (v = M[x][y][z]), with the geometry cached for fast repeat runs.

+ (v = M[x][y][z]), rendered with a fully vectorized + numpy path.

VALIDATE

Plane validation

-

3-point planes must be equidistant from a common origin; 4-point planes must form a - proper rectangle. Invalid specs raise and produce a visible error frame.

+

3-point planes must be isosceles (legs equal from the first point); + 4-point planes must be an isosceles trapezoid. Invalid specs raise + and produce a visible error frame.

RENDER @@ -187,19 +189,19 @@

Quickstart

Benchmarks

Min-of-repeats wall time via time.perf_counter(); throughput = rendered frames ÷ (load + render); encoding reported separately. Full methodology and all - 31 runs in benchmarks/results-2026-11-06.md. - Machine: Intel i7-4650U (4 cores), Python 3.12.

+ 31 runs in benchmarks/results-2026-11-07.md. + Machine: Intel i7-4650U (4 cores), Python 3.15.

- - - - - + + + + +
Input (volume × planes)FramesLoad sRender sFPS (load+render)
croissant.nrrd × croissant.csv (canonical, 500³ uint8)1001.0161.27643.6 ✓ NFR-1 hard bar
onion.nrrd × head.csv2800.0610.672382.0
MRHead_1.nrrd × head.csv2800.0860.649381.3
biscuit_cake.nrrd × biscuit_cake.csv1200.0950.336278.3
swiss_roll.nrrd × biscuit_cake.csv1200.2450.381191.8
croissant.nrrd × croissant.csv (canonical, 500³ uint8)1000.8781.11650.1 ✓ NFR-1 hard bar
onion.nrrd × head.csv2800.0500.596433.5
MRHead_1.nrrd × head.csv2800.0870.650380.2
biscuit_cake.nrrd × biscuit_cake.csv1200.0910.339278.6
swiss_roll.nrrd × biscuit_cake.csv1200.1800.343229.3