fuzzyworld

tower / commit

docs: fold the far cap window into the architecture sections

654840439d0584e87716c6935f8d59412f946657 · Pavel Safronov · 2026-09-07 22:00:02 -0700 · parents a3f01bd7bbc6

docs: fold the far cap window into the architecture sections

§1 was updated when D-045 and D-047 landed and §2 was not, so the module
layout still said the spin had no visible evidence "now that there are no
stars", and §2.4 still opened with a flat "No stars — the hull is sealed".
Both were true of the 539 km of wall and wrong about the one place canon
puts a view out.

Also records how the star field is actually sampled — azimuthal equidistant
about the spin axis, so the pinwheel falls out of the projection rather than
being animated into it — and folds D-047's two hull readings into §2.3,
where the x-ray was still described as the only one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
 design.md | 63 +++++++++++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 45 insertions(+), 18 deletions(-)

diff --git a/design.md b/design.md
index 4f82679..5ec2b9d 100644
--- a/design.md
+++ b/design.md
@@ -554,7 +554,7 @@ src/
     geometry.ts     (θ,z) <-> 3D, slat layout, map <-> surface
     atmosphere.ts   the rotational density profile and its extinction (§1.5)
     motion.ts       how things fall in the rotating frame (§1.9.2) — the only
-                    visible evidence of the spin, now that there are no stars
+                    evidence of the spin anywhere but the far cap window
   views/
     palette.ts      one colour per place kind, shared by map, list and editor
     raster.ts       what npm run terrain wrote: grid, and what white means
@@ -632,10 +632,19 @@ is the least intuitive object in Tower: it is larger than the world it feeds.
 The default camera frames the whole system rather than Tower alone: the collector
 is 244 km across and flies 320 km ahead, and it is the larger object.
 
-**The terrain raster is wrapped onto the hull** — a third reading aid, and the
-frankest of the three. From outside Tower is structure; what the texture shows is
-what is *inside*. It is an x-ray, and it is useful precisely because the hull is
-opaque. Three's cylinder runs u around and v along, while the raster is the other
+**The hull has two readings, and the view switches between them** (D-047). **True**
+is the outer skin: bare structure, the checkered sun cap, and the glazed far cap.
+**X-ray** wraps the terrain raster onto the outside instead — from outside Tower is
+structure, so what that texture shows is what is *inside*, which makes it a diagram
+and not a view. Both are worth having and they are not the same claim, so the
+control is a two-way switch rather than a checkbox.
+
+The wall is drawn as two meshes rather than one double-sided one, because its two
+faces show different things: the outer skin changes with the mode, and the inner
+surface is always the land. Since the far cap became a window (D-045) that inner
+surface is genuinely visible from outside — look in through the glass in true mode
+and the world is really there, lit and 540 km deep. It is the only line of sight
+into Tower that is not a projection. Three's cylinder runs u around and v along, while the raster is the other
 way round, so the UVs are rewritten from the original attribute rather than derived
 from vertex positions — the seam vertices are duplicated, and deriving an angle from
 them smears one column of triangles across the whole image.
@@ -656,7 +665,12 @@ Scope held: **real geometry, simple ground.**
 
 Real: the shell is the actual cylinder, curving up on both sides and closing
 overhead, displaced by `terrain-height.png` and painted with `terrain-color.png`.
-**No stars** — the hull is sealed (§1.4). The sky is land and light.
+**Stars only through the far cap** — the wall is sealed (§1.4), so for 539 of the
+540 km the sky is land and light. The far cap is glazed (D-045) and the sky beyond
+it is sampled by view direction in an azimuthal-equidistant projection about the
+spin axis, which makes the pinwheel fall out of the projection rather than being
+animated into it: azimuth plus spin phase, one turn every 7 min 29 s, and the
+point on the axis genuinely motionless.
 
 Simple: the ground is the raster plus a little procedural grain in the near field,
 not modelled scenery. No buildings, no vegetation meshes. Cells are 0.7 km and
@@ -672,27 +686,40 @@ ground, printed in the readout so the claim can be checked rather than believed.
 The airlight the haze adds is *neutral*; tinting it blue double-counts the
 wavelength dependence and turns even the desert mauve (D-034).
 
-**Nothing in the scene rotates**, because the observer, the ground and the air all
-co-rotate. Inside a sealed cylinder the spin is genuinely invisible, which leaves
-what falls to carry it — and §1.9.2 turns out to be lopsided about how. Rain leans a
-fixed 1.5° whatever the cloud, because drag pins its speed; only free fall keeps
-accelerating and so keeps leaning. **The waterfall is the compass; the rain is
-barely a hint.** Rain is drawn, and the readout prints its 1.5° next to it.
+**Nothing inside the scene rotates**, because the observer, the ground and the air
+all co-rotate — which leaves what falls to carry the spin, and §1.9.2 turns out to
+be lopsided about how. Rain leans a fixed 1.5° whatever the cloud, because drag
+pins its speed; only free fall keeps accelerating and so keeps leaning. **The
+waterfall is the compass; the rain is barely a hint.** Rain is drawn, and the
+readout prints its 1.5° next to it.
+
+**The one thing that does turn is outside.** The sky through the far cap does not
+co-rotate, so it wheels once every 7 min 29 s about the motionless star on the axis
+(D-045). It is by a wide margin the plainest evidence of the spin in the view —
+1.5° of rain lean against a whole sky going round — and it is only available at
+night, at the deepward end, looking the one direction that has ever had anything
+in it but Tower.
 
 The observer stands on the terrain, which means the height raster is read back onto
 the CPU and sampled against the mesh's own cell corners — the GPU cannot be asked
 where the ground is (D-035).
 
 Instruments in the view: eye height from 1.7 m to 25 km with the local gravity
-beside it, the three canon illumination settings of §1.3, the field of view as a
+beside it, the five canon illumination settings of §1.3, the field of view as a
 pair of binoculars, and captions on every place still visible through the haze.
 Selecting a place walks the observer to it (D-038) — the haze horizon closes at
 100–150 km, so turning to face something usually just points at haze.
 
-The caps are checkered (D-041) — polar, six rings, cells about 8 km. They are the
-only structure in the world, and the only object in it with a known size, so they
-double as a scale for judging distance. The same pattern is on them in the exterior
-view.
+The caps are no longer the same object. **The sun cap is checkered** (D-041) —
+polar, six rings, cells about 8 km. **The far cap is glazed** (D-045), and the
+checker survives on it as the window's mullions: the same tessellation at the same
+pitch, so it is still the only object in the world with a known size and still
+doubles as a scale for judging distance, now read against sky rather than plate.
+Both patterns are shared with the exterior view.
+
+The far cap's glazing is set a kilometre into its own frame, so from inside there is
+a **1 km reveal** around it. That is the only place the wall depth of D-044 can be
+seen from within the world, which is why it is the only place it is drawn.
 
 Not modelled: water has no surface. Lakes and seas are painted in the raster and cut
 into the shell as basins, so standing in one puts you on its floor.
@@ -797,7 +824,7 @@ a moment. Reading the world, not editing it.
 3. **Exterior** — ✅ hull, caps, collector, beam, spin, and hull point picking.
 4. **Map** — unrolled surface, slat rendering, picking, sync with exterior.
 5. **Interior** — ✅ shell geometry, the haze shader, the beam, rain, eye height,
-   and the three illumination settings. No stars: there are none to draw.
+   and the five illumination settings. Stars, but only through the far cap window.
 6. **Writer mode** — ✅ *built ahead of 3–5, at the author's request, because the
    world needs developing before there is anything to render.* Map view, place
    editing for all thirteen kinds, points/polylines/polygons, localStorage