Never repeats for 88 billion years. Encodes recoverable origin and unique signature in every minute.
A clock cycling through 60 states per minute, each a subset sum of {1, 2, 4, 6, 12, 15, 20}. These weights cover Farey sequence
The clock face consists of 7 rectangular cells with areas 1, 2, 4, 6, 12, 15, and 20 units. Each second displays a unique combination of cells that sum to that second (0–59). The specific combination chosen each second depends on the minute number (k), creating a unique 60-pattern sequence for every minute in the period.
src/- C terminal implementationweb/- Clock webpage (HTML/CSS/JS)inverse/- Python video analyzer (reconstructs clock origin from video recordings)tests/- Test scripts
Build from repository root:
make
bin/now # Live clock
bin/now -l # In-place updates (no scroll)
bin/now -p emoji # Emoji preset-a ASCII borders
-p PRESET Preset: cjk (default), blocks, blocks1, distinct, kanji, emoji
-f CHARS Custom 7 UTF-8 fill characters
-1 Half-width mode
-w Wide fills (for CJK/emoji)
-l In-place update (TTY only)
-s Simulate (fast, no delay)
-b Bits: output cell mask as 7 binary digits (positions: 20,15,12,6,4,2,1)
-d Decimal: output cell mask as number (0-127)
-r Raw: output binary byte per second (bit 7 reserved for future use)
-i Inverse: read any format (visual, bits, decimal, raw), output origin
bin/now -s -n 120 | bin/now -i -sNote: Use -s for both encoder and decoder when testing with simulated data.
Encode a unique identifier into your clock that can be auto-detected from recordings:
bin/now -P 7 -l # Live clock with signature 7
bin/now -P 7 -n 180 -s | bin/now -i -s # Encode and auto-detectOptions:
-P VALUE- Clock signature (coprime with 60 recommended, but any value works)-N SALT- Optional salt for era cycling (default: 0)
The signature is encoded in the permutation pattern and auto-detected from any 2-minute recording, while preserving the full 88-billion-year period through era cycling.
The perm(k) function maps a minute number to 60 display indices:
- 20 seconds have 1 option (deterministic)
- 18 seconds have 2 options (18 bits)
- 16 seconds have 3 options (~25 bits)
- 6 seconds have 4 options (12 bits)
Total entropy: ~55 bits per minute, sufficient for the 46-quadrillion-minute period.
- Terminal clock: C compiler (gcc/clang)
- Web clock: None (pure HTML/CSS/JS)
CC BY-NC 4.0 - Non-commercial use only