Every FLUX issue is a physical zine. The format is locked. It does not change between issues.
Orientation: landscape
Size: US Letter — 11 × 8.5 in
Color: black and white
Typeface: Courier (monospace) — only
Background: white
Photographs: 36 (one roll of film)
Pages: 44
| Page | Content |
|---|---|
| p.01 | Front cover — issue number, date range, author, staple guides |
| p.02 | Blank inside front cover |
| p.03 | Protocol page — 3-column layout with protocol QR code |
| p.04 | Blank reverse of protocol |
| p.05–40 | Image sequence — 36 photographs, chronological |
| p.41 | Blank — follows last photograph |
| p.42 | Contact sheet — 6 × 6 thumbnail grid |
| p.43 | Manifest / index — frame list (+ manifest QR for personal archive issues) |
| p.44 | Blank back cover |
The page order is permanent. Every issue follows it.
The 36-frame layout produces a clean spread sequence:
This is not an accident. 36 divides cleanly. The structure closes without a pad page.
Every photograph is placed inside a fixed image box. The box dimensions are constant across all 36 image pages.
Rules — non-negotiable:
A portrait photograph in a landscape box will appear smaller than a horizontal photograph. This is correct. Visual consistency across pages matters more than maximizing any individual image.
All 36 photographs render to the same visual height within the fixed image box. This is the grid lock.
Image area geometry:
IMG_AREA_W = 8.75 in (PAGE_W − M_LEFT − M_RIGHT)
GRID_IMG_H = 6.80 in (PAGE_H − M_TOP − M_BOT)
Page ratio = 8.75 / 6.80 = 1.287:1
The caption strip is placed within the bottom margin (CAP_Y = PAGE_H − M_BOT × 0.58), not below the image area. GRID_IMG_H therefore spans the full margin-to-margin space, centering all images at the optical page centre (4.25 in from top on an 8.5 in page).
Any frame whose aspect ratio is wider than 1.287:1 is width-limited — its natural height at full page width falls below GRID_IMG_H. Both 3:2 and 4:3 landscape frames are width-limited on this page.
The generator resolves cross-orientation height consistency via effectiveGridH — a per-batch computed height floor:
For each image:
fitH = (IMG_AREA_W / iw) × ih
if fitH < GRID_IMG_H:
effectiveGridH = min(effectiveGridH, fitH)
scale = min(effectiveGridH / ih, IMG_AREA_W / iw)
| Camera output | Landscape fitH | effectiveGridH | Both orientations render at |
|---|---|---|---|
| 3:2 (Ricoh GR native) | 8.75 × 2/3 = 5.83 in | 5.83 in | 5.83 in |
| 4:3 | 8.75 × 3/4 = 6.56 in | 6.56 in | 6.56 in |
| Portrait-only batch | — (no landscape) | 6.80 in (ceiling) | up to 6.80 in |
effectiveGridH is the minimum width-limited height across all images in the batch. Every image — landscape and portrait — is capped to this value. The shared image horizon is self-correcting: it adapts to the actual camera output in the issue without any manual input.
Optical image scale: All drawn image dimensions are multiplied by IMG_SCALE = 0.98 (a 2% uniform reduction). This is applied after effectiveGridH scaling and does not alter the centering anchor, caption positions, or spread structure. The reduction adds equal breathing room on all four sides of each image — approximately 2.2 mm per horizontal edge — producing calmer gutter spacing during physical flip-through.
The result: a consistent visual rhythm across all 36 pages regardless of whether the photographer shot horizontal, vertical, or mixed — and regardless of camera aspect ratio.
This grid lock is not limited to full-page images. The 6 × 6 contact sheet cell geometry is also landscape-oriented, so the same height-limited behavior applies at thumbnail scale. The lock holds at every scale in the publication.
Below each photograph, two lines of Courier:
Line 1: YYYY-MM-DD HH:MM:SS lat, lon (GPS appended if present)
Line 2: Photographer Name
6.5 pt, dim gray. The caption is metadata. It is not a caption in the editorial sense.
Top-right corner of every image page:
FLUX_NNN NN/36
6 pt, light gray.
All 36 frames arranged in a 6 × 6 grid.
The 6 × 6 grid is not arbitrary. A 35mm film roll contains 36 frames. A standard contact sheet from a 35mm roll is printed in rows of 6. The grid preserves that logic in the digital output.
The 6 × 6 grid extends the image grid lock to the contact sheet.
The cell dimensions (approximately 101.7 × 65.1 pt in the PDF, 424 × 291 px in the PNG) are landscape-oriented. For standard Ricoh GR output:
Both orientations are height-limited. All 36 thumbnails share the same render height. The top and bottom edges of every thumbnail align across the full 6 × 6 grid — the same grid lock that governs full-page image placement holds at the contact sheet scale.
The previous 10 × 5 grid (designed for 50-frame issues) used portrait-oriented cells, causing landscape and portrait thumbnails to render at different heights. That inconsistency is eliminated by the 6 × 6 geometry.
Two-column frame list. One line per frame:
001 — YYYY-MM-DD HH:MM:SS — lat, lon
002 — YYYY-MM-DD HH:MM:SS
...
036 — YYYY-MM-DD HH:MM:SS
For personal archive issues: a manifest QR code appears at bottom-left, linking to this issue's live archive page.
For public generator issues: the manifest page is documentation only — frame list, timestamps, GPS. No QR code.
The QR code structure differs between personal archive issues and public generator issues.
Location: p.03 (protocol page), bottom-right
Target: https://flux.dantesisofo.com/generator/
This QR is identical in every issue ever printed — personal or public. It invites anyone holding the physical zine to create their own FLUX issue.
The protocol page QR is required in every issue. It cannot be omitted or redirected.
Location: p.43 (manifest page), bottom-left
Target: https://flux.dantesisofo.com/issues/FLUX_NNN/
Personal archive issues carry a second QR on the manifest page. It connects the physical object to its permanent digital record: all photographs, contact sheet, metadata, downloadable PDF and originals ZIP.
This QR is unique per issue, generated from the issue number.
Public generator issues contain the protocol page QR only.
The manifest page (p.43) exists in public generator output and contains the full frame list — timestamps, GPS coordinates, frame numbers. It is documentation. It does not carry a QR code.
Reason: The public archive infrastructure does not yet exist. Placeholder or programmable manifest QR behavior produces inconsistent outputs, broken URLs, and unnecessary complexity in printed artifacts.
Future: When the FLUX public publishing infrastructure is built, public issues will receive a permanent archive page and a manifest QR pointing to it. That is future infrastructure. Until it exists, public generator output is a downloadable issue only — no automatic publishing, no manifest QR.
The back cover is always blank. This is not an oversight.
The blank back cover is a deliberate design decision that reflects the physical zine tradition. The back cover is not a place for credits, colophons, or additional images. The work ends with the manifest page.
The blank back cover says: this is done.
Result: a landscape-oriented zine, stapled on the left edge.
Two horizontal rules printed on the front cover only:
These marks exist solely to guide physical stapling. They do not appear on any other page.
The FLUX system has operated under three distinct frame-count implementations:
15 photographs — early public generator prototype. Produced a 22-page PDF. This specification was never built or deployed. It is superseded and not part of the canonical protocol.
50 photographs — historical Dante Sisofo archive batching logic (issues 001–304, pre-2026). Produced a 58-page PDF with a 10×5 contact sheet grid. The 10×5 grid was portrait-oriented: both landscape and portrait thumbnails were width-limited, so they rendered at different heights. The grid lock did not hold at the contact sheet scale.
36 photographs — canonical FLUX issue structure, current and permanent. Produces a 44-page PDF with a 6×6 contact sheet grid. The 6×6 grid is landscape-oriented: both orientations are height-limited, all 36 thumbnails render at the same height, and the grid lock holds at every scale.
The canonical frame count is 36. All future issues — personal and public — use the 36-frame standard.
FLUX_WIKI_v1.1 — flux.dantesisofo.com/wiki/zine/