How hyperbolic tilings are programmed

The programs to make hyperbolic tilings are written in Caml , using the MLgraph library. Symmetry groups of tilings are computed formally using a definition by generators and relations and a canonical rewriting system to decide equality. Hyperbolic isometries are defined as homographies over complex numbers.Tiles are defined essentially as lists of points and isometries are applied pointwise.
In the paper Tilings as a programming exercise , I describe a generic implementation of tilings using Objective Caml modules to parameterize over Geometries, Symmetry groups and Patterns.


The fish picture was first programmed by Antoine Chambert-Loir for a student programming project at ENS .
H.S.M. Coxeter
had described the geometry of this picture in The non-euclidean symmetry of Escher's picture Circle limit III, Leonardo 12, pp 19-25, Pergamon Press, 1979 . Philippe Lechenadec has given a canonical rewriting system for hyperbolic groups in Canonical forms in finitely presented algebras, Pitman, 1986 . Adrien Douady explained how to define the hyperbolic rotations numerically.

The kangaroo picture was designed for the 1996 poster of the game Kangourou des Mathématiques by Guy Cousineau, Claudie Missenard and Raoul Raba.

To obtain the Caml programs for the fish and the kangaroo examples and many others, you can get the tar archive containing programs and examples

Older versions of these programs are also described in chapter 10 of the book Approche fonctionelle de la programmation or in chapter 9 of its english translation The Functional Approach to Programming .
In the paper Functional programming and geometry , I describe how I use geometry and tilings for teaching programming.

If you have done or have seen similar things please let me know.