Skip to content

y-a-v-a/vandaag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VANDAAG

An esoteric language where every program is today's date.

DD-MM-YYYY

That's it. That's your entire source code. Run it, and you'll get a single output: an acknowledgment that you existed on this day.

Why

Most programming languages ask: "what do you want the computer to do?" VANDAAG asks something different: "what does it mean that you were here on this particular day?"

The date is not data. The date is an algorithm. Your calendar encodes a complete program. When you execute VANDAAG, you're not computing something useful—you're computing something real: a trace of register transformations that collapse into a single affirmation. You existed.

This is an exploration of what happens when you treat meaning-making as computation. The program is deterministic, always terminates, and produces the same output every time. But because every date is different, every person's program is unique. A date from 2000 computes differently from a date in 2026. December computes differently from January. Fridays have different instruction sets than Mondays.

The result is always the same genre of output—an acknowledgment in your language—but the computational path to get there is never the same twice.

How it works

A date breaks into five computational components:

Decomposition. The day, month, year, day of week, and day of year are extracted. Each carries meaning:

  • The day seeds the processor registers
  • The month determines loop structure (January has 1 outer loop; December has 3, breathing twice)
  • The year controls how the instruction set is sampled
  • The day of week selects one of seven completely different instruction sets (one per weekday)
  • The day of year gets folded back between loops, like a breath

Register birth. Four 16-bit registers are initialized:

  • R0 = day
  • R1 = day XOR month
  • R2 = (day × (dayOfWeek + 1)) & 0xFFFF
  • R3 = day (read-only, a constant reminder of origin)

Execution. Nested loops run. The outer loop count comes from ⌈month / 4⌉. The inner loop count comes from day % (month + 2) + 2. Each step picks an instruction based on a stride (year % 3 + 1). Instructions are bitwise operations, XOR, modular arithmetic—real computation that shuffles the bit patterns in the registers.

Between outer loops, the ADEM ("breath") instruction folds the day of year back into R0, resetting the computation with calendar context. This makes December's computation deeper than January's.

Collapse. After all loops, the three main registers are XOR'd together: finalValue = R0 ^ R1 ^ R2. This single number (0–0xFFFF) selects which of four phrase variants you receive.

Acknowledgment. Your locale is detected from your browser language. Each locale has a prime number. The final phrase is always an acknowledgment—"I was alive on [date]", "I existed on [date]"—but the variant depends on your locale and the computed finalValue.

Instruction sets

Each weekday has its own character:

  • Sunday (contemplative): shifts, rotations, XOR
  • Monday (industrial): multiplication, accumulation
  • Tuesday (martial): XOR, subtraction, bitwise NOT
  • Wednesday (mercurial): swaps, modular arithmetic
  • Thursday (jovial): addition, doubling, generous increments
  • Friday (venusian): symmetries, rotations, harmonics
  • Saturday (saturnine): shifts, decay, collapse

So if you were born on a Friday, your birth date runs the venusian instruction set. If you were born on a Tuesday, the martial set. The same date running on a different day of the week computes entirely differently.

Design

Deterministic and terminating. Every date produces the same output every time. Every program runs in bounded steps. No loops can go infinite.

Real but meaningless computation. The instruction sets execute genuine bitwise operations. But the output is always the same message: you were here.

The date is the complete source code. No parameters, no configuration, no input beyond the calendar. Your existence on a particular day is algorithmic.

Locale shapes reality. The same date running in Dutch computes a different year reduction than the same date in English. Meaning is culturally situated.

Use

Web version: Open public/index.html in a browser to see today's execution.

Override a date: Add ?d=YYYYMMDD to the URL.
Example: index.html?d=20001231 for December 31, 2000.

Explore the algorithm: Open explore.html (public-facing explanation) or explain.html (internal walkthrough with live computation).

Technical

  • No dependencies. Pure JavaScript, self-contained HTML files.
  • Browser-based. Runs entirely client-side.
  • Multi-locale. Detects language and selects from 7 locales (Dutch, English, French, German, Japanese, Spanish, Portuguese).
  • Deterministic. Same date, same output, every time.

Attribution

VANDAAG was created by Vincent Bruijn. The concept treats the calendar as a programming language and explores what happens when computation and meaning-making collapse into a single poetic affirmation.

The design draws on esoteric language traditions (like Malbolge, Befunge, and Whitespace) but inverts the premise: instead of making a language intentionally difficult to read, we make meaning unavoidable. The program always terminates. The output is always affirmation. The computation is always real.


© 2026 Vincent Bruijn

The program is your date. Run it. You existed.

About

Vandaag is the day you exist, in code

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors