Skip to content

Print pack + photo ingest: the Phase 4b field battery#5

Merged
jamesdward merged 1 commit into
mainfrom
feat/print-photo-ingest
Jul 6, 2026
Merged

Print pack + photo ingest: the Phase 4b field battery#5
jamesdward merged 1 commit into
mainfrom
feat/print-photo-ingest

Conversation

@jamesdward

Copy link
Copy Markdown
Owner

What

Milestone 3, Phase 8 — everything needed for print-and-photograph L3 testing except the physical part.

  • battery/printpack.py: six deterministic A4 print sheets at 300 dpi (three surfaces per grammar, 002 with per-seed ink subsets), pattern centred, human-readable label provably disjoint from the pattern area (bookkeeping in the page margin, not a fiducial — spec forbids code regions inside the surface). Plus INSTRUCTIONS.md (print settings, 3 lightings × 3 angles × 2 distances condition matrix, manifest how-to) and photos/manifest.template.yaml.
  • battery/ingest/: full implementation of the field path. Photos run through the identical recognise pipeline with no photo-special preprocessing — a raw-photo failure is a reported result, not something to be silently fixed. Outputs raw_results.csv (per photo: conditions + verdicts + the 002 two-path ink detail incl. implied applied gain — the data that answers whether real camera white balance stays inside the diagonal model) and an auto-generated summary.md addressing the three questions exp-002 §6 posed for Phase 4b, each from data or marked insufficient.
  • SPEC-ISSUES: SI-023, SI-024.

Tests

10 new (printpack determinism/A4/label-disjoint, end-to-end ingest over synthetic stand-in photos with perspective+WB+JPEG, implied-gain recovery, never-crash robustness); 2 obsolete structure-seam tests replaced. Full suite: 133 passed.

After merge

The physical part: print print-pack/*.png at 100%, photograph per the instructions, fill photos/manifest.yaml, then uv run python -m battery.ingest photos/ photos/manifest.yaml --out experiments/exp-003-print-photo/.

- battery/printpack.py: six A4 300dpi print sheets (3 surfaces per grammar),
  labels provably outside the pattern area, INSTRUCTIONS.md with the photo
  condition matrix, manifest template
- battery/ingest: full implementation — identical recognise pipeline over a
  photo folder, per-row robustness, raw_results.csv with the two-path ink
  detail (implied gain answers the is-real-WB-diagonal question), summary.md
  auto-answering the three Phase 4b questions
- print-pack/ committed as the experiment's fixed input
- SI-023 (pipeline runs unmodified on raw photos; margin labels are
  bookkeeping) and SI-024 (field coverage requirements are feature-dependent)
- 10 new tests (2 old structure-seam tests replaced); 133 total green
@jamesdward
jamesdward merged commit 1e80b40 into main Jul 6, 2026
1 check passed
@jamesdward
jamesdward deleted the feat/print-photo-ingest branch July 6, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant