Fractal Cistercian Numeral Systems

Kevin Horecka
4 min readNov 20, 2020
Pi written to 1,000 digits using a Fractal Cistercian notation (note the most significant digit, 3, is the bottom left, diagonal line).

Sometimes, it’s useful to take a break for the normal day-to-day technical work and play with a fun problem, especially a useless fun problem. This problem was inspired by a wonderful Numberphile video in which Alex Bellos details an example from his book The Language Lover’s Puzzle Book about a Forgotten Number System: the Cistercian number system.

The fundamental lines in the cistercian number system. All other numbers are transformations of these.

He describes how the Cistercian numbers are geometric, with radial construction of digits around a single central pole. Some lines which are added to the system serve as “fundamental” lines, and these can be composed or rearranged to encode the digits in numbers between 0000 and 9999.

The first hundred cistercian numbers.

As I was watching, it occurred to me that there was a lot of white space on the page still to add more digits than 4. An easy way would be to just rotate the whole number 90 degrees and now you have a “+” shaped base (such that the “+” itself represents the number “00000”, “000000”, “0000000”, or “00000000” .

The number 12341234 written with the extended cistercian number system.

But what about bigger numbers? What about numbers of literally any number of digits? Inspired somewhat by the zaney notation of Gallifreyan (from Doctor Who), and some past experience enjoying building fractal geometries, it occurred to me that, as all the lines in this system are straight, it would be fairly trivial to add a crossing digit extension (i.e. same as the “+” example, above) anywhere in the image. So I decided the following rules would guide this design:

  1. The number should be easy to visually inspect for size (in the same way it’s clear without reading that 123 is smaller than 314159999999, simply by number of marks on the page)
  2. The most significant digits should be the most prominent lines
  3. The pattern of additions of lines needs to be systematic and interpretable, so the number could, in principal (almost certainly not in practice), be converted back into another number system
  4. (Optional) Fundamental operations such as addition and subtraction should be performable via overlaying composite numbers, negating the pixels, then shifting the structure to a valid shape

To accomplish this, a simple bit of recursion, plus some fancy drawing was all that was needed. We can also, optionally, color the digits in the figure to get a sense of how they appear relative to a typical arabic numeral representation. For smaller numbers, this is quite natural looking.

A medium sized number in the fractal cistercian system.

For larger numbers, it can get quite fun (though hardly interpretable).

A large example of a fractal cistercian number — note that lines rarely intersect, but they do on occasion based on the proportions used traditionally (1:3, in this case between large and small lines and recursive scale).

In each case, our rule is to rotate our line 90 degrees to the right, scale it down by a scale factor (0.33 in this case), and continue in a pseudo-breadth-first manner such that the most significant digits are represented by the largest lines and least significant by the smallest. In this way, the larger the number, the more the visual complexity.

One interesting alternate history is imagining, given their fascination with ancient cultures, if the Nazi’s of World War 2 would have had an equal obsession with the number 10011001 in this number system. I won’t write it here as it’s a hateful symbol. Perhaps someone can write a more wholesome symbol with this system instead!

The system, as written, is not perfect. It does not accomplish goal (4), i.e. compositional arithmetic. I’ve used some approximations in the way I’m doing the recursion which were quicker for me to write in between Zoom meetings. Would love to see a more complete implementation that includes goal (4), but that is left as an exercise for the reader. The code, as is, can be found here: https://github.com/kevroy314/cistercian_fractals .

--

--