From f487561cfa340b87b6595180a4acb8872fb538a3 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Fri, 31 Jul 2026 22:45:08 -0500 Subject: docs: keep the timeline face's design history, not its engine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Six prototypes from the world-face work, kept as the record of how the design got to where it is. The first five are self-contained; prototype 6 and the option-A pages load the engine, so they read here but do not run here. The engine stays out on purpose. It carries the list of places I travel to, with coordinates, and this repo is published — a design record is not worth publishing that for. The README says how to copy the modules in locally to run prototype 6, and gitignore keeps such a copy from being committed by accident. Dropping the prototype test target with it: the engine and its tests now live in one place, so the suite runs once rather than twice over identical files. --- .../2026-07-31-timeline-face-prototype-1.html | 367 +++++++++++++++++++++ .../2026-07-31-timeline-face-prototype-2.html | 198 +++++++++++ .../2026-07-31-timeline-face-prototype-3.html | 224 +++++++++++++ .../2026-07-31-timeline-face-prototype-4.html | 242 ++++++++++++++ .../2026-07-31-timeline-face-prototype-5.html | 263 +++++++++++++++ .../2026-07-31-timeline-face-prototype-6.html | 151 +++++++++ docs/prototypes/README.md | 41 +++ 7 files changed, 1486 insertions(+) create mode 100644 docs/prototypes/2026-07-31-timeline-face-prototype-1.html create mode 100644 docs/prototypes/2026-07-31-timeline-face-prototype-2.html create mode 100644 docs/prototypes/2026-07-31-timeline-face-prototype-3.html create mode 100644 docs/prototypes/2026-07-31-timeline-face-prototype-4.html create mode 100644 docs/prototypes/2026-07-31-timeline-face-prototype-5.html create mode 100644 docs/prototypes/2026-07-31-timeline-face-prototype-6.html create mode 100644 docs/prototypes/README.md (limited to 'docs/prototypes') diff --git a/docs/prototypes/2026-07-31-timeline-face-prototype-1.html b/docs/prototypes/2026-07-31-timeline-face-prototype-1.html new file mode 100644 index 0000000..d323854 --- /dev/null +++ b/docs/prototypes/2026-07-31-timeline-face-prototype-1.html @@ -0,0 +1,367 @@ + + + + +Timeline face — prototype 1 + + + + +
Timeline face · prototype 1 · synthetic data
+
+ direction + + + + + + + +
+
+ Surface is 3440×1440, drawn to scale. Cities are Craig's live waybar + worldclock roster (15 zones, home New Orleans). Events are a synthetic + fixture, never his real agenda — this repo is still served anonymously + over cgit, so real calendar titles cannot live in a tracked file. + Brightness runs dark in the past to bright in the future. The next event is + gold. Type size follows tick spacing, capped at 72px, and grey level is + derived from that same size — Maeda's law from Line, one rule driving + scale, weight and colour. +
+ +
+ + + + diff --git a/docs/prototypes/2026-07-31-timeline-face-prototype-2.html b/docs/prototypes/2026-07-31-timeline-face-prototype-2.html new file mode 100644 index 0000000..2a7bdc4 --- /dev/null +++ b/docs/prototypes/2026-07-31-timeline-face-prototype-2.html @@ -0,0 +1,198 @@ + + + + +Timeline face — prototype 2 + + + + +
Timeline face · prototype 2 · synthetic events
+
+ diagonal + + + + +
+
+ The crossing is not a free parameter. The horizontal meets the diagonal at the + home city, and New Orleans is 4th of 15 west-to-east, so it lands at 21.4%. + Reversing the diagonal puts the same intersection at 78.6%. Both numbers + describe one point. Events are invented; the city roster is real. + Vertical offset on an event is collision avoidance and carries no data — + duration is a quantity of time, so it reads as bar length on the time axis. +
+ +
+ + + + diff --git a/docs/prototypes/2026-07-31-timeline-face-prototype-3.html b/docs/prototypes/2026-07-31-timeline-face-prototype-3.html new file mode 100644 index 0000000..1fcc506 --- /dev/null +++ b/docs/prototypes/2026-07-31-timeline-face-prototype-3.html @@ -0,0 +1,224 @@ + + + + +Timeline face — prototype 3 + + + + +
Timeline face · prototype 3 · synthetic events
+
+ latitude + + + + +
+
+ North is up. x is real longitude and y is latitude, so the crossing still falls + out of where home sits — longitude is timezone, and New Orleans lands at + 20.4%, within a point of the rank-derived 21.4%. Two latitude scales: ranked + spaces the cities evenly and keeps the north-to-south order, true uses honest + degrees and shows what that costs, since nine of fifteen cities sit between + 28 and 41 degrees north. Events are invented; the roster is real. +
+ +
+ + + + diff --git a/docs/prototypes/2026-07-31-timeline-face-prototype-4.html b/docs/prototypes/2026-07-31-timeline-face-prototype-4.html new file mode 100644 index 0000000..88648bf --- /dev/null +++ b/docs/prototypes/2026-07-31-timeline-face-prototype-4.html @@ -0,0 +1,242 @@ + + + + +Timeline face — prototype 4 + + + + +
Timeline face · prototype 4 · synthetic events
+
+ latitude + + + + +
+
+ One axis, one scale. The width is a full 360° of longitude and a full 24 + hours, which are the same quantity — so an event N hours ahead lands on + the city that is living that hour right now. Wind down at +9.2h falls on + Yerevan, 14 minutes off. Prototype 3 had the roster's 332.64° stretched to + the full width, putting the city scale 7.6% off the time scale. Home sits at + 20%, which is nearly forced: Honolulu is 67.8° west, so anything under + 18.8% drops it off the frame. Events are invented; the roster is real. +
+ +
+ + + + diff --git a/docs/prototypes/2026-07-31-timeline-face-prototype-5.html b/docs/prototypes/2026-07-31-timeline-face-prototype-5.html new file mode 100644 index 0000000..b77fd35 --- /dev/null +++ b/docs/prototypes/2026-07-31-timeline-face-prototype-5.html @@ -0,0 +1,263 @@ + + + + +Timeline face — prototype 5 + + + + +
Timeline face · prototype 5 · synthetic events
+
+ latitude + + + + +
+
+ x is now each city's clock offset from home, not its longitude. + Longitude only approximates time — zones are political, and against this + roster it is off by up to 1.32 h (Tokyo), partly because New Orleans is on + daylight time. So a city now sits exactly under its own local hour and an + event N hours ahead lands on the living-that-hour city with no error at all. + Latitude still sets y, and Tokyo really is south of Athens and Yerevan + — 35.7°N against 38.0° and 40.2°. + Events are invented; the roster is real. +
+ +
+ + + + diff --git a/docs/prototypes/2026-07-31-timeline-face-prototype-6.html b/docs/prototypes/2026-07-31-timeline-face-prototype-6.html new file mode 100644 index 0000000..d3f1427 --- /dev/null +++ b/docs/prototypes/2026-07-31-timeline-face-prototype-6.html @@ -0,0 +1,151 @@ + + + + +Timeline face — prototype 6 + + + +
+ + + + + home + +
+ + + + + + diff --git a/docs/prototypes/README.md b/docs/prototypes/README.md new file mode 100644 index 0000000..fd73b2e --- /dev/null +++ b/docs/prototypes/README.md @@ -0,0 +1,41 @@ +# Prototypes + +Frozen design history. Every file here is a snapshot of what a design looked +like on the date in its name, kept so the evolution is walkable. Nothing here +is maintained, and nothing here is loaded by anything that runs. + +Most pages are self-contained: open one and it renders. + +## The world face + +The world wallpaper's engine used to live here and was hand-copied into +`~/.dotfiles/settings/faces/` on every change. Both copies were byte-identical +and both test suites ran the same tests, so the duplication bought nothing and +risked drift — the two pages' palettes had already diverged enough to break a +scripted edit. + +The live engine, its tests and the lab page now live only with the shipped +face, in the dotfiles `settings/faces/` directory: + +- `timeline-face-engine.js`, `timeline-face-spine.js` — the engine +- `world.html` — the projected wallpaper +- `lab.html` — the same engine with a movable home and a fast clock, for + trying an idea without touching the wallpaper + +`make test-faces` in dotfiles runs their tests. + +`2026-07-31-timeline-face-prototype-6.html` and the option-A pages load the +engine, so they are readable here but not runnable here. The engine is +deliberately **not** kept in this repo: it carries a list of the places I +travel to, with coordinates, and this repo is published. A design record is +not worth publishing that. + +To run prototype 6, copy the two engine modules in beside it: + +```sh +cp ~/.dotfiles/settings/faces/timeline-face-*.js docs/prototypes/ +``` + +They are gitignored here, so a copy stays local. Note that the live engine +keeps moving: prototype 6 is a photograph of one day's design and a current +engine may not render it the way it looked. -- cgit v1.2.3