The print says paper cannot hold time, and admits it. This one holds it: a thin-walled cylinder where one full turn is exactly sixty seconds of the Swedish and Danish coast. Every flash of every light is cut through the wall at its true angular position, from the same register as the submitted work — NGA List of Lights Pub. 116, 2026 edition. Put a light inside and thirty-one real light characters run round the room.
The playhead runs on your clock, not a loop of its own — it sits at the same second of the minute the coast is at. Ignited marks are lights that are flashing now. The long dim bands are occulting lights, which are lit most of the time and dark only in brief eclipses; on the object they are not holes but wall thinned to 0.84 mm, so they glow instead of beaming.
Nothing here is a proportion someone liked. The wall is a whole number of extrusions because a wall that is 4.76 extrusions wide is drawn by the slicer as either four or five; the mark heights are whole numbers of layers because a range of 23 M should be countable with a loupe against one of 22.
| On the object | Means | Range in the data |
|---|---|---|
| An aperture | a flash, cut through the wall | 1.41 – 18.85 mm |
| A thin panel | the lit phase of an occulting or isophase light | 9.4 – 66.0 mm |
| Mark height | nominal range, one layer per nautical mile | 1.20 – 3.00 mm |
| Staff line | a lane boundary — 31 lanes, north at the top | 0.6 × 0.35 mm |
| Ruler tick | one second; longer at five, longest at ten | 4.7124 mm pitch |
Occulting lights are lit most of the time. As apertures they would be holes up to 66 mm wide and nothing bridges that, so they are thinned rather than opened — the same decision the print makes, where occulting lights are drawn at amplitude 0.24 and flashes at 1.0. Unlit they read as shallow bands; lit, they glow.
| Part | File | Size mm | Solid |
|---|---|---|---|
| Valsen — the barrel | fyrvalsen_valsen.stl | Ø 90 × 173.4 | 137 g |
| Foten — the base | fyrvalsen_foten.stl | 148 × 210 × 6.4 | 145 g |
| Registret — all 31 lanes | fyrvalsen_registret.stl | 148 × 210 × 3.2 | 104 g |
| Kilen — calibration wedge | fyrvalsen_kilen.stl | 147 × 42 × 3.4 | 12 g |
Print the wedge first. It is seven steps at one, two, three, four, five, six and eight extrusions — 0.42 to 3.36 mm — with the count embossed under each step, never on it. Backlight it with the lamp you mean to use. If step 2 does not read clearly brighter than step 6 on your spool, the occulting lights will not either: change filament, not geometry. And use dark grey PLA, not white — white transmits about 46 % at 2 mm, so the body glows nearly as much as the panels and the whole pattern washes out. Contrast is the point, not translucency.
Twenty-eight of the periods divide sixty seconds exactly. Stevns Klint at 25 s, Nidingen at 27 s and Morups Tånge at 8 s do not, so those three lanes step at the seam on every revolution and never come back into phase with the rest. The coast does not fit our units of time. It is engraved on the base.
A lane is 4.40 mm tall. Measured against a 0.4 mm nozzle, the largest type that fits inside 4.40 mm has counters the nozzle fills in — the label would print as a row of blobs. So the lanes are unlabelled, the base states the rule instead, which identifies the set exactly, and the list lives on the register plate. The build refuses to emit lettering that would not survive the process; that constraint chose the design, rather than the design being defended afterwards.
Data — NGA List of Lights, Radio Aids and Fog Signals — Baltic Sea with Kattegat,
Belts and Sound and Gulf of Bothnia, Pub. 116, 2026 edition, information to 15 August
2026. US Government, public domain.
Urval — every lighted aid in the volume in Swedish and Danish water with a nominal
white range of 18 M or more, excluding leading, directional and aviation lights, obstruction
lights and racons: 31 lights, Gedser Odde 54.56 °N to Bjuröklubb 64.48 °N.
Metod — deterministic Python from the register. No CAD kernel, no mesh library, no
image model: art/mesh.py builds the solids and writes the STLs,
art/fyrvalsen.py the object, art/render3d.py the proofs. Every
part verified watertight and winding-consistent by the generator's own edge check and
independently by trimesh. Type set in Cormorant and Inter, SIL Open Font License.
Status — nothing has been printed yet. Companion to Fyrarna, submitted to
The AI Art Magazine B·SiDE No 1 and closed 22 August 2026.