Program for exploring transformations of the complex plane,
drawing fundamental domains for subgroups of
PSL(2,Z). Works on safari, with mouse.
scale: 1 unit to 250 pixels
no tessellationFareytrisectedcoloureddomain 1domain 2domain 3
Farey Symbol: will appear here if a group is chosen
Domains for SL2(Z):
change group: Γ0
change polygon by vertex
Vertices: pj = (a + ib)/c
Mobius transformations and matrix groups
A 2 by 2 matrix can be used to define a mobius transformation of the
complex plane. Namely:
An important property of these transformation is that they map the set of straight lines and circles
These transformations are necessary for defining modular forms, which are important in number theory,
for example in the proof of Fermat's last theorem.
Drag red dots to change original polygon. The dot being moved will highlight in green (or purple
if the image is on top of the dot).
The image dot highlights in purple. You can't move the image except by moving the original point.
Fill button changes whether the polygon is drawn as filled in or
just as outline
1,2,3 are some preset polygons; generally some fundamental domains.
The background can be chosen to be a tessellation of one of these domains, or left blank.
The level of the background tiling determines the number of tiles shown. If the level is large this
may significantly slow down the program.
Click on the + and - points to either add or remove a point to
There are 3 preset polygons, which can be changed as described.
The preset polygons are F1,
these are fundamental domains for
The matrices S, T, U, R are given by:
These matrices are special because:
T and S generate PSL_2(Z), and are generators corresponding to the
R and S generate PSL_2(Z), and are generators corresponding to the
T and R generate PSL_2(Z), and are generators corresponding to the
T has infinite order and fixes infinity
S has (projective) order 2 and fixes i
R has (projective) order 3 and fixes the 6th root of unity
U is the conjugate of T-1 by S, and has infinite order and fixes 0
V has (projective) order 2, and fixes (1+i)/2. Together, T and V generate Gamma0(2), and domain F5 is
a fundamental domain corresponding to these generators.
Here, the generators "corresponding to a domain" mean that
edges of that domain are identified by application of these matrices.
When you click to change the matrix, this is applied to the image polygon; two polygons are displayed, one, F, and its image MF, ie.,
the result of appling the matrix M to F.
A couple of links related to this work. The work here is pretty standard material.
This program was written as a gap year project for Imogen Breeze, between A-levels and university,
supervised and co-written by Helena Verrill.
The idea was to update
this program originally written in C, and then in java. That program is quite old and not working, though if you
download the C and also get hold of a postscript viewer you can produce domains with the code.
We did write a version with quite a lot more features, including drawing domains for all the main congruence
subgroups, and allowing manipulation of Farey symbols. Unfortunately I seem to have lost or corrupted the code.
May repair and update this page at some point. Also unfortunately the xml does not currently work on Chrome, and
I haven't tried other browsers than safari. To get nice maths displays use safari.