Gonon: Building a Clock With No Numerals

8 min read
Code
Canvas
Time
Design
Horology

The question that started this wasn't about clocks. It was about what happens when you remove every cultural assumption from timekeeping and ask: what's left?

No Roman numerals. No Arabic numerals. No left-to-right reading direction. No assumed orientation. Something that works in a mirror, in zero gravity, in any language spoken on Earth or beyond it.

The answer turned out to be geometry.

What makes a clock a clock?

Before building anything, I needed to understand what a clock actually is. Not the object. The system.

NIST puts it simply: a clock has an oscillating mechanism and something that counts those beats and displays the result.[^1] That gives us four requirements:

  1. A repeatable process. A pendulum swing, quartz vibration, caesium transition, Earth's rotation. Something that recurs.
  2. A counting rule. Repetition alone isn't enough. Ocean waves are periodic, but without a stable counting scheme they aren't a clock.
  3. Calibration to a timescale. A device can tick steadily and still be useless unless its ticks relate to an agreed standard. Modern UTC is built from about 450 atomic clocks in more than 80 timing centers.
  4. A readable mapping. Humans don't read raw oscillations. We read "14:37:09" or "sunset in 42 minutes." Reading time is always a translation layer.

That fourth point matters more than most people think. A sundial reads apparent solar time, which is local and visibly tied to the Sun. But apparent solar time is not uniform. The accumulated difference from mean solar time can reach about 16 minutes over the year.[^2] "What the Sun says" and "what the clock says" are not always the same thing.

The four layers of time

Time is not one thing. It has at least four layers, and most confusion comes from mixing them.

Physics time is duration. The SI second is defined from the caesium-133 transition frequency. BIPM notes it's the unit of proper time in relativity, which is why clocks in different places have to be corrected for relativistic effects before they can be combined.[^3]

Astronomical time is tied to Earth and sky. UT1 is Earth-rotation time. It's not perfectly uniform because Earth doesn't rotate at a perfectly uniform rate. UTC is a human-made civil scale kept within 0.9 seconds of UT1 by international agreement.[^4]

Civil time is what societies use. UTC is the world standard; local time is UTC plus a timezone offset plus daylight saving rules. ISO 8601 exists because humans and machines need a single unambiguous way to write times down.

Computing time is practical. For shared timestamps, use wall-clock time (UTC). For measuring elapsed duration, use a monotonic clock that cannot go backward when the system clock is adjusted.

The right time for the job depends on which question you're asking. "What time is it for everyone on Earth?" is UTC. "How long did this take?" is monotonic. "Where is the Sun relative to me?" is solar time. Most clock faces conflate all of these into a single ring of 12 numbers.

Starting from requirements

If you were reinventing the clock from scratch, you wouldn't start with a round face and 12 numbers. You'd start with requirements.

Separate duration from date. Make the base layer continuous, like TAI, with no leap seconds, no DST, no timezone in the core. Treat civil time as a projection, not the source of truth.

Show time as both line and cycle. Human life is cyclic: day, week, month, season. Physics and computing are linear: before/after, elapsed/remaining. A reinvented clock should show both.

And here's the key insight that drove Gonon: humans often need proportion more than numerals. A progress ring for the day plus a precise readout is better than either alone. "Where am I in the day?" is a proportion question. "What time is my meeting?" is a numeral question. A clock should answer both.

The polygon encoding

The core idea: each digit becomes a polygon where the number of vertices is the digit.

0
1
2
3
4
5
6
7
8
9

This encoding has a property that no numeral system has: it is orientation-independent. A triangle is a triangle whether you're upside down, looking in a mirror, or floating in microgravity. There is no "right way up" for a polygon. No reading direction. No cultural prerequisite.

Six concentric rings carry the six digits of HH:MM:SS. Hours hold the outer frame (they change least), seconds tick at the center (they change most). Within each pair, the tens digit sits on the outer ring and the ones digit on the inner, so reading outward matches reading left-to-right.

The constraint that shaped everything

The hardest problem wasn't the encoding. It was containment.

A polygon inscribed in a circle of radius R has edges that extend inward. A triangle at radius R reaches R/2 at its closest edge point. A square reaches R × cos(45°) ≈ 0.71R. A pentagon reaches R × cos(36°) ≈ 0.81R.

For polygons on one ring to never visually cross into the next ring inward, every adjacent pair must satisfy:

R_outer / 2  >  R_inner

This constraint cascades through all six rings. Increasing the seconds rings forces the minutes rings outward, which forces the hours rings outward, which pushes against the edge of the clock face. The final radii:

S ones:  r = 10    (innermost)
S tens:  r = 21    21/2 = 10.5 > 10
M ones:  r = 43    43/2 = 21.5 > 21
M tens:  r = 88    88/2 = 44 > 43
H ones:  r = 178   178/2 = 89 > 88
H tens:  r = 192   (outermost, max digit is 1)

Each radius is just over double the previous. This isn't arbitrary spacing. It's the tightest possible packing that guarantees zero polygon crossover for any digit combination across all 86,400 seconds of the day.

The 24-hour arc

A single arc sweeps from midnight (top, 12 o'clock position) clockwise through the full day and back to midnight. It shares the same circle as the hour ones ring, so it doesn't add visual clutter.

This arc answers the proportion question directly. Glance at how much arc has been traced and you know where you are in the day without reading a single digit. It's the same information a sundial gives you, encoded as a progress indicator.

Testing 86,400 seconds

The test suite covers every second of the day exhaustively. 148 tests verify:

  • Every second produces exactly 6 valid digits in range 0-9
  • Every digit reconstructs back to the correct time
  • The 24h arc fraction is strictly monotonic across all 86,400 seconds
  • No polygon on any ring crosses into an adjacent ring (the containment proof)
  • Hour tens digit is always 0 or 1 (it can never be a triangle)
  • Solar color values produce no NaN, no discontinuities
  • AM/PM transitions occur at exactly the right boundaries

The name

A gnomon (Greek: one who knows) is the stick on a sundial that reveals time through shadow. A gonon (from Greek gonia, angle/vertex) reveals time through angles. The shift from gnomon to gonon mirrors the shift from astronomical observation to geometric encoding.

Prior art

After building Gonon I found Chris Corby's The Geometric Clock, which uses the same vertex-count encoding principle. His implementation is a flat digital display that replaces Arabic numeral glyphs with polygon shapes. Gonon takes a different architectural approach: concentric rings with containment-proven spacing, orientation independence, and a 24-hour proportion arc that functions without any assumed viewing angle or cultural frame.

What's next

Gonon is one rendering of a deeper idea: that time display should match human perception. Proportion for awareness, precision for scheduling. The polygon encoding is one answer. There are others worth exploring: logarithmic time scales that compress the boring parts of the day, social time overlays that show when your collaborators are awake, solar position encodings that tell you how much daylight remains.

The clock on the wall is not time. It's a view of time. We can build better views.

[^1]: How Do Atomic Clocks Work? | NIST

[^2]: The Equation of Time | US Naval Observatory

[^3]: SI Brochure, 9th edition | BIPM

[^4]: Universal Time | US Naval Observatory

φ