Stop Staring and Compute! Automorphism Groups of Rational Curves

Let’s compute the automorphism groups of some curves. There are many ways to do this! We will be using 3 different algorithms for this.

Directly into your terminal using SageMath

Let’s start with the most straightforward one. Run sage and type this into your terminal, hitting enter after each line.


Technical P.S.: For sufficiently high degree curves, this will throw a segmentation fault. One must then narrow down where it is coming from. There are three hidden steps before the endomorphism basis calculation, so look for which it is throwing an error:

_ = S.homology_basis() # [1]
_ = S.cohomology_basis() # [2]
_ = S.period_matrix() # [3]

Sage Function for Rational Curves

Let’s start with the most straightforward one. Save this file, and start sage in the same folder. Then, load(“file.sage”) will run the program. This is just a rephrasing of the previous method.

from sage.schemes.riemann_surfaces.riemann_surface import RiemannSurface, RiemannSurfaceSum
R.<x,y> = QQ[]
def aut(f):
        S = RiemannSurface(f, prec = 100)
            	G = S.symplectic_automorphism_group()
                print("OH LAWD ITS COMING")
#any plane curve goes here
f = y^8 - x*(x-1)^4

Alternative code

We can also do:

f2 = any plane curve
f1 = hyperelliptic curve of same genus
S1 = RiemannSurface(f1, prec = 100)
T = RiemannSurfaceSum([ S1 ])
T.tau = S2.riemann_matrix()

Finding Group Structure of Output Set

We get the following matrix output. Then, we clean the matrix output, and declare it to be a group in GAP (gap-core as a linux package). GAP then returns a structure description.

([ 0 0 1 -1]
[ 0 0 -1 0]
[ 0 1 1 0]
[ 1 1 0 1], [ 1 0 -1 1]
[ 0 1 1 0]
[ 0 -1 0 0]
[-1 -1 0 0], [ 1 1 0 1]
[-1 0 1 -1]
[ 0 -1 -1 1]
[-1 -1 -1 0], [ 0 -1 -1 1]
[ 1 1 1 0]
[-1 -1 0 -1]
[-1 0 1 -1], [ 0 0 0 -1]
[ 0 0 -1 1]
[ 1 1 1 0]
[ 1 0 0 1], [ 1 0 0 1]
[ 0 1 1 -1]
[-1 -1 0 0]
[-1 0 0 0], [ 0 0 -1 1]
[ 0 0 0 -1]
[ 1 0 0 1]
[ 1 1 1 0], [ 0 0 -1 0]
[ 0 0 1 -1]
[ 1 1 0 1]
[ 0 1 1 0], [ 1 1 1 0]
[ 0 -1 -1 1]
[-1 0 1 -1]
[-1 -1 0 -1], [ 1 0 -1 1]
[-1 -1 0 -1]
[ 1 1 1 0]
[ 0 1 1 -1], [ 0 -1 -1 1]
[-1 0 0 -1]
[ 1 0 0 0]
[ 1 1 0 0], [ 0 1 1 0]
[ 1 0 -1 1]
[-1 -1 0 0]
[ 0 -1 0 0], [0 1 0 0]
[1 0 0 0]
[0 0 0 1]
[0 0 1 0], [-1 0 0 0]
[ 1 1 0 0]
[ 0 -1 -1 1]
[ 1 0 0 1], [ 1 0 0 1]
[-1 -1 -1 0]
[ 0 0 1 -1]
[ 0 0 0 -1])

We clean this output with regex, or manually as follows:

  1. find ], [ replace ]],[[
  2. find /n, replace ,
  3. find doublespace, replace space
  4. find [space, replace [
  5. find space replace ,
  6. find ,, replace ,
  7. find [, replace [
  8. change ([ and )] to ([[ and ]]) resp.
  9. Open gap and plug in:
G := Group([[0,0,1,-1],[0,0,-1,0],[0,1,1,0],[1,1,0,1]],[[1,0,-1,1],[0,1,1,0],[0,-1,0,0],[-1,-1,0,0]],[[1,1,0,1],[-1,0,1,-1],[0,-1,-1,1],[-1,-1,-1,0]],[[0,-1,-1,1],[1,1,1,0],[-1,-1,0,-1],[-1,0,1,-1]],[[0,0,0,-1],[0,0,-1,1],[1,1,1,0],[1,0,0,1]],[[1,0,0,1],[0,1,1,-1],[-1,-1,0,0],[-1,0,0,0]],[[0,0,-1,1],[0,0,0,-1],[1,0,0,1],[1,1,1,0]],[[0,0,-1,0],[0,0,1,-1],[1,1,0,1],[0,1,1,0]],[[1,1,1,0],[0,-1,-1,1],[-1,0,1,-1],[-1,-1,0,-1]],[[1,0,-1,1],[-1,-1,0,-1],[1,1,1,0],[0,1,1,-1]],[[0,-1,-1,1],[-1,0,0,-1],[1,0,0,0],[1,1,0,0]],[[0,1,1,0],[1,0,-1,1],[-1,-1,0,0],[0,-1,0,0]],[[0,1,0,0],[1,0,0,0],[0,0,0,1],[0,0,1,0]],[[-1,0,0,0],[1,1,0,0],[0,-1,-1,1],[1,0,0,1]],[[1,0,0,1],[-1,-1,-1,0],[0,0,1,-1],[0,0,0,-1]]); StructureDescription(G);

Check that this structure description matches the order claimed by this sage program. For context on how this works, see section 5.1 of this paper The reason numerical approximation is sound is listed in 5.3.

If you’d like to go even further, and compute the period matrix as well, the code for that is here., and section 5.2 of this paper

Sage Program for Superelliptic (only?) Curves

This is much faster than the previous code, was implemented by Bruin-Sijsling-Zotine, and is based on this algorithm from Molin-Neuhror . Unfortunately, I also find it quite finnicky sometimes, which is why I list it second.

Magma Program for Superelliptic Curves

Magma doesn’t throw segmentation faults as often. So, to use this, one must have magma on your machine (not just the magma calculation) as it is necessary to concurrently use must download this package of Edgar Costa.

SetVerbose("EndoFind", 0);
SetVerbose("CurveRec", 0);
prec := 300;
F := RationalsExtra(prec);
CC := F`CC;
R<x> := PolynomialRing(F);
p := x^4 - x;
e := 3;
// Construct superelliptic curve y^3 = x^4 - x
S := RiemannSurface(p, e : Precision := Precision(CC));
P := BigPeriodMatrix(S);
P := ChangeRing(P, CC);
GeoEndoRepCC := GeometricEndomorphismRepresentationCC(P);
GeoEndoRep := GeometricEndomorphismRepresentation(P, F);
print GeoEndoRep;

Honda, Taira, On the Formal Structure of the Jacobian Variety of the Fermat Curve over a \(p\)-adic Integer Ring

On the Formal Structure of the Jacobian Variety of the Fermat Curve over a \(p\)-adic Integer Ring, Symposia Mathematica Volume XI (Volume 11).

This paper of Honda was very hard for me to track down. It was not previously available digitally. I found it in a retired library volume in a thrift store in England. Hopefully, this digital copy will make it easier for others to enjoy Honda’s incredible insight and understanding of how to create power series in one variable with high amounts of arithmetic information, and in general of higher height formal group laws.

If the pdfviewer isn’t working, here is the link.

Fiber Bundles of Formal Disks

Here is an incomplete proof that varieties are fiber bundles of formal disks over their deRham Stacks. The fact makes intuitive sense, the deRham stack is the variety without infinitesimal data, and then by adding the infinitesimal data (formal disks) back in, you recover the result. However, the fact that you can build anything non infinitesimal out of formal disks fills me with confusion and awe.

Acknowledgements: This is the result of a working group with Dan Fletcher, Adam Holeman, and me as part of the Northwestern Homotopy Working Seminar (started by Matthew Weatherly, Grigory Kondyrev, and me). The working session in which Adam and I figured out the proof, Dan was not there, which is why his name is not mentioned, but he was very helpful in understanding the claim. This proof is the result of Yaroslav Khromenkov coming up with the idea of it, and Adam and I understanding and correcting his solution during a working session.

If the pdf viewer doesn’t work, here is a link to the paper.

Automorphisms of the Jacobian

Read our arxiv paper:

Here, \(A\) is any abelian variety. This post consists of the backstory of this paper, and something interesting I learned about the relationship between the size of \(Aut(A)\), and the number of principal polarizations \(A\) has.


In the summer of 2017, I wanted to compute a period matrix of a particular genus 3 curve, and I found a wonderful team of low dimensional geometers: Dami Lee and Matthias Weber. After they helped me, I read Dami’s work out of curiosity, and found her calculations of automorphism groups of curves fascinating due to their geometric simplicity. Further, it seemed that her methods of using a tesselation to compute or visualize and automorphism group would generalize naturally to higher dimensions. So, we set to work trying to figure that out. This led us to generalize her prior work on automorphism groups of curves (with equal weight weierstrass points) to a broader class of curves (with nonequal weight weierstrass points).

I was interested in her lovely descriptions of the automorphism groups and their actions as I was trying to use her work to model the action of a subgroup of the Morava Stabilizer group acting on Lubin Tate space. Turns out I will likely have to do this separately, because so much information changes about the automorphism group when you base change your curve from \(\mathbb{C}\) to \(\mathbb{F}_p\), and her methods only work of \(\mathbb{C}\) (relying on properties of Weierstrass points and so on).

In the interim, I separately looked into other ways to compute automorphisms of curves and their Jacobians, and ran into the work of Magma and Sage contributors Edgar Costa, John Voight, Nicolas Mascot, and Jeroen Sijsling. They had a program and paper to compute endomorphism groups of Jacobians, and I wanted to calculate automorphism groups (because, in the end, this is all for modeling subgroups of the Morava Stabilizer group, the automorphism group of a height n formal group law in char p). Together, we wrote a program that calculates the automorphism group of a Jacobian, given its period matrix. Several glitches later, and we realized that we were finding several different automorphism groups for the same Jacobian (as a period matrix), because there were several different automorphism groups — for the different principal polarizations. So, I found the “correct one” by putting in the information of the original plane curve as well. But this detour led us to find several interesting different principal polarizations….

Automorphism Groups and Narasimhan-Nori

…It also led me to learn about the following magic relationship between the size of an automorphism group of an abelian variety \(A\) and the number of its principle polarizations (this is from a paper of Lange: Abelian varieties with several principal polarizations).

I still do not understand the computability of the order of the set of interest \(\Pi(A)\) (the number of principal polarizations up to iso of \(A\)) according to Theorem 1.5:
Some notation:
Fix a principal polarization \(L_0: A \to \hat{A}\) ,
Given a map \(r \in Aut(A)\), let \(\hat{r}\) be the dual map in \(Aut(\hat{A})\)
Let \(’\) indicate the Rosati involution wrt \(L_0\), that is \(r’ := L_0^{-1} \circ r^ \circ L_0\)

Let us first look at the set of \(r \in Aut(A)\) such that the following two conditions are met:

(1) \(r’ = r\) (i.e., \(r\) is preserved under the Rosati involution wrt \(L_0\))
(2) the zeros of the minimal polynomial of \(r\) (wrt the rational embedding) are all positive.

Side comment:
(1) \(\Leftrightarrow\) \((r^g) = g!\) [lemma 1.2] (2) \(\Leftrightarrow\) \((L_0^{g-i} \cdot r^i) > 0\) [lemma 1.3] These conditions give us that \(r\) is a principal polarization by lemma 1.1

Once we have this set, call it \(U(A)\), let \(Aut(A)\) act on it:

\(Aut(A) \times U(A) \to U(A)\)
\((g, a) \mapsto g’ a g\)

where \(’\) indicates the rosati involution wrt \(L_0\).

We mod out the set \(U(A)\) by the above action of \(Aut(A)\), call this set \(\Pi(A)\).

And there we are!

Geometry For Prime Addicts

Texed notes of my reading course last quarter advised by Yifeng Liu, with fellow participants Grisha Kondyrev and Jora Belousov. Our goal this reading course was understand some of Scholze’s recent work with perfectoid space techniques, in particular the proof of the monodromy weight conjecture.

Attached are only the notes I kept of my lectures, sometimes just outlines of what to talk about. I have had a few requests for these notes, and they are incomplete but I think they might still be helpful for others starting out in p-adic geometry.

During the reading course, I got the increasing feeling that we were just studying \(G_Q\) as fast as our little legs could take us — our little legs being our knowledge of varieties (over various non-archimedian fields like \(Q_p\) and \(F_p((t))\). So, I finished with a talk on the Grothendieck-Teichmüller group — another approach to \(G_Q\).

If the pdf viewer fails, here’s the link to the paper

The Height of a Formal Group Law in terms of the Symmetry of the Underlying CM Abelian Variety

This proof was made possible by a couple helpful and fabulous conversations with Yifeng Liu. All errors are mine and mine alone.

This is toward my understanding of the phrase “Why is height so important as an invariant? Because the height of a formal group law comes from the symmetry of the underlying variety.”

In short — high amount of symmetry in the underlying abelian variety implies a high height of its formal group law (the converse is NOT true, if this was true, Elkies’s supersingularity theorem would be false).

One method of getting lower dimensional formal group laws from abelian varieties of higher dimension is via using the theory of complex multiplication — splitting the abelian variety by splitting the prime (as I exposited in my paper here).

I show that for abelian varieties with CM, the height of the formal group law pieces are expressible as a formula in terms of the degree of some field extensions of \(Q_p\) (one corresponding to each prime living over \(p\)) and the dimension of the rational endomorphism ring of the variety as a \(Q\)-vector space.


  • \(F\) is a formal group associated to a CM abelian variety \(A\).
  • \(\pi = \pi_A\), the geometric Frobenius of \(A\)
  • \(L := Q(\pi)\) with \([L : \mathbb{Q}] = e\)
  • \(D := End^0(A)\) with \([D: L] = r^2\)
  • \(\dim(A) = g = er/2\).
  • \(L\) is the center of \(D\)
  • Assume that \(\mathcal{O}_L \subset End(A)\) (which we may after replacing \(A\) by an isogenous abelian variety).
  • Consider the set \(\Sigma^{(p)}_L\) of discrete valuations of \(L\) dividing the rational prime number \(p\)


  1. the decomposition \\(D \otimes \mathbb{Q}_p = \prod_{w \in \Sigma^{(p)}_L} D_w\\) and \\(\mathcal{O}_L = \prod \mathcal{O}_{L_w}\\)
    gives a decomposition \\(F = \prod_w F_w\\)
  2. The height of \(F_w\) equals \([L_w : \mathbb{Q}_p]\cdot\) r.

We see that part 2 is very interesting — we are expressing the height of the chunk of the p-divisible group in terms of the rank of the endomorphism ring of the variety.

We will prove this theorem by

  1. first proving the theorem for p-divisible groups \(X\), (a known theorem from these notes), that is, replace \(F\) with \(X := A[p^\infty]\).
  2. then we will prove CM varieties produce p-divisible groups whose height is concentrated in its connected component.

Proof (Part 1): Note that \(ht(X) = 2 \dim A = er\). There is an action of \(D = End(A) \otimes Q\) on \(X\).

By taking the Dieudonne module of X, we get a vector space \(D(X)\) over \(\mathbb{Q}_p\) with an action of \(D\). The vector space \(D(X)\) is of dimension \(ht(X)\).

\\(D(X) = \prod_{w \in \Sigma^{(p)}_L} D(X_w)\\)

Remark: I think of \(\Sigma^{(p)}_L\) as the splitting of the prime \(p\) in L. For example, this is not literally true, but one might think of \(L\) as \(\mathbb{Q}(\zeta_7)\) and \(\Sigma^{(2)}_L\) is then the lifts of the splitting of the polynomial defining \(\zeta_7\) when we tensor with the 2-adics. \(Q(\zeta_7) \otimes \mathbb{Q}_2 \simeq K_1 \times K_2\). I think of \(K_1\) as \(\mathbb{Q}_2(1+x+x^3)\) and \(K_2\) as \(\mathbb{Q}_2(1 + x^2 + x^3)\), though this is not true, those two polynomials are just the first stage of the Hensel lifting: \((1+x+x^3)(1 + x^2 + x^3) \equiv 1+x+x^2 +x^3 + x^4 + x^5 + x^6 \mod 2\).

There is an action of \(D_w\) on \(D(X_w)\) (that is, \(D(X_w)\) is a \(D_w\)-vector space), and indeed, since \(D_w\) is still an extension of \(L_w\), we can thus think of \(D(X_w)\) as an \(L_w\)-vector space.

Remark: Something I still have to check, is \(L_w\) still the center of \(D_w\)? Are centers preserved by tensoring with \(\mathbb{Q}_p\)?

Now, for \(D(X_w)\) to be an \(L_w\) vector space, \(\dim(D(X_w))\) must be a multiple of the degree of extension over \(\mathbb{Q}_p\). In other words, \(\dim(D(X_w)) = r_w[L_w : \mathbb{Q}_p]\) for some constant \(r_w\).

It remains to show that \(r_w = r\).


Therefore, \(r_w = r\). QED.

Why is this cool: Recall that \(r^2\) is the rank of the rational endomorphisms of the underlying abelian variety.

Now, we’ve proved it for the p-divisible group case. We may think of the formal group law as the connected component of the p-divisible group. Thus, we’ve also proved it formal group laws where the height of the p-divisible group is concentrated in its connected component.

Let us now show that CM varieties produce p-divisible groups whose height is concentrated in its connected component.

Proof (Part 2): For any abelian variety \(A\) (of genus \(g\)), we get the following short exact sequence in the category of group schemes over some field \(L\) such that \(L \simeq \overline{L}\) , for example \(L = \overline{Z_p}\) (algebraic closure):

\\(0 \to A[p]^o \to A[p] \to A[p]^{et} \to 0\\)

\(A[p]\) is a pointed scheme, and \(A[p]^o\) is the connected component in which this point sits. Further, \(A[p]\) is an Artinian scheme of length \(p^{2g}\).

Let \(\mathcal{O}_K\) be the ring of integers of the CM field \(K\) acting on our abelian variety \(A\) (note that \(K\) and \(L\) are different fields). Here we denote \(O_{K_p}\) as the ring of integers of \(K \otimes Q_p\). We know that \(\mathcal{O}_{K_p}\) acts on each of the components of the exact sequence.

We will show that \(A[p]^o(k) = F_{p^{2g}}\) when \(p\) is inert in \(O_K\) (that is, the height of the p-divisible group is concentrated in its connected component). When \(p\) is inert in \(O_K\), \(O_{K_p/p} \simeq F_{p^{2g}}\).

So, we have a few options: \(A[p]^{et}\) is either:

  • Spec \(L\),
  • or an Artinian scheme of length \(p\), \(p^2\), …, \(p^{2g}\).

We wish to eliminate all options to show that \(A[p]^{et} =\) Spec \(L\), which implies that \(A[p]^o\) is an Artinian scheme of length at least \(p^{2g}\).

We proceed as follows:

First, we see that if \(A[p]^o\) must be of length at least 1, that is, \(A[p]^o(L)\) cannot be Spec \(L\), it must be one of the following: \(F_p\), …, \(F_{p^{2g}}\).

Recall that \(A[p]\) is defined as the pullback of \(A \xrightarrow{p} A \leftarrow \text{ Spec }L\) in the category of group schemes. So, when we pull back \(p\) to \([p]_*\), we see that \([p]_* \not\simeq \text{Lie }A\) because \([p]_*\) acts as Fröbenius plus the Fröbenius transpose, and the Fröbenius acts as 0. So it cannot possibly be isomorphic to Lie \(A\).

So, now \(A[p]^{et}\) is either:

  • Spec \(L\),
  • or an Artinian scheme of length \(p\), \(p^2\), …, \(p^{2g-1}\).

Note that \(O_{K_p}\) contains \(Z\), and thus there is a \(Z\)-linear action on \(A[p](L)\) where \(p\) acts as \(0\), so the action on \(E[p]^{et}(L)\) factors through \(O_{K_p/p} \simeq F_{p^{2g}}\).

An action of \(F_{p^{2g}}\) on \(F_{p^{2g-k}}\) is impossible for all \(k \geq 1\), and therefore \(A[p]^{et}(\overline{k})\) cannot be a Artinian scheme of length \(p^{2g-k}\) for \(k \geq 1\). Thus, \(A[p]^{et} \simeq \text{ Spec }L\):

\\(0 \to A[p]^o \to A[p] \to \text{ Spec }L \to 0\\)

Since \(A[p]\) is an Artinian scheme of length \(p^{2g}\),
we conclude that \(A[p]^o\) is an Artinian scheme of length \(p^{2g}\).

Therfore, the height of the p-divisible group of an abelian variety with CM is the same as the height of its formal group law. QED.

So, that’s it! We’ve shown, for \(F\) a formal group associated to a CM variety:

  1. the decomposition \\(D \otimes \mathbb{Q}_p = \prod_{w \in \Sigma^{(p)}_L} D_w\\) and \\(\mathcal{O}_L = \prod \mathcal{O}_{L_w}\\)
    gives a decomposition \\(F = \prod_w F_w\\)
  2. The height of \(F_w\) equals \([L_w : \mathbb{Q}_p]\cdot\) r.

Calculating the Period Matrix of a Shiga Curve, \(y^3 = x^4-1\).

Thanks to Dami Lee for patiently walking through how to compute the period matrix of this 12-fold cyclic cover of a thrice punctured sphere, and thanks Matthias Weber for showing me how to write the 3-fold cover of a 5-punctured sphere as a 12-fold cyclic cover of a thrice punctured sphere. Most of the figures are either hand-drawn or made using Geogebra. Note that I will sometimes use \(\tau\) to denote \(2 \pi\). All errors are mine and mine alone.

Motivational Sidenote:
This is part of my project in attempting to understand the notion of height (in formal group law theory) in terms of the symmetry of the underlying variety.

Though it may seem disparate, this post is the computation of the Jacobian of a Shiga curve shown to have height 3 properties by Sebastien Thyssen and Hanno van Woerden.

This is only the very first step, the next step is understanding such calculations for Shiga curves with more general roots, for which there may not be a thrice punctured sphere representative.

The period matrix of a Riemann surface is defined as \(\int_{\gamma_i} \omega_j\), where \(\omega_1, …, \omega_g\) are a choice of basis of the invariant differentials of the surface, and \(\gamma_1, …, \gamma_{2g}\) are a choice of basis for the Betti \(H_1(S)\).

The Jacobian of a Riemann surface \(S\) is \(\mathbb{C}^g/P\mathbb{Z}\), where \(g\) is the genus of the surface, and \(P\) is the period matrix of \(S\).

We wish to study the Riemann surface cut out by \(y^3 = x^4 -1\), which has roots \((1, -1, i, -i)\) and a ramification point at \(\infty\). Thus, 5 punctures. It is a 3 fold covering because the power of \(y\) is \(3\).

The method of going from a 3-fold cover of the 5 punctured sphere (which Aaron Slipper and I derived) to the cyclic 12-fold cover of the thrice punctured sphere was exposited to me by Matthias Weber, and is as follows. One exhibits an isomorphism between the polynomial \\(w^{12} = (v-a)^1 (v-b)^3 (v-c)^8\\) and our original polynomial \\(y^3 = x^4-1\\) The nice thing about thrice punctured spheres is that they are all biholomorphic no matter where the branched points are. So it’s just easier to pick our roots to be 0, 1, and \(\infty\). (This choice also makes it immediately clear that we get a dessin d’enfant!)

We further see that the cover is “cyclically branched” (aka, Dami’s methods apply and I am saved a lot of work), because we get a cyclically branched cover by dividing by a cyclic group, which here is generated by an automorphism of order 12. The automorphism of order 12 is:

\begin{align*} x & \mapsto i x \\
y & \mapsto zeta_3 y

Note that two triangles make up one copy of the thrice punctured sphere.

I was graciously given unpublished notes of Dami to calculate the Riemannian period matrix via the admissible covers of our thrice-punctured cylcic fellow.

The glory of her method is that to compute \(\int_{\gamma_i} \omega_i\), we simply create, for each \(\omega_1, \omega_2, \omega_3\), a 12-fold cover of the thrice punctured sphere. Each cover has a different set of angles of the triangle and treating the \(\gamma_i\) as vectors on these triangle models gives us their length by representing them as a complex vector.

She defines admissible cone metrics as metrics whose pullback is induced by a holomorphic 1-form, we are exactly trying to understand the basis of holomorphic 1-forms on our Riemann sphere.

An admissible metric on a thrice punctured Riemann sphere is specified by giving 3 angles, the angles of the triangle making up the thrice punctured sphere.

We find this set of angles by using a corollary of Dami’s: if \(\sum a_i = d(n-2)\), and \(a_i = a \cdot d_i (\mod d)\) for all \(d\) and some \(i\) and for some \(a \in \mathbb{Z}\). Then the triangle angles are \((\alpha_i) = (a_i \cdot \frac{\pi}{d})\).

Here, \(d_i = (1, 3, 8)\), and \(d = 12\). So, we look at the following multipliers,
[1, 3, 8] [2, 6, 4] [3, 9, 0] [4, 0, 8] [5, 3, 4] [6, 6, 0] [7, 9, 8] [8, 0, 4] [9, 3, 0] [10, 6, 8] [11, 9, 4] and by Dami’s lemma, the admissible ones are the ones which add up to 12 and have no 0 in them. In which case, we get,
[1, 3, 8] [2, 6, 4] [5, 3, 4].

First Row

Let us start with the model corresponding to 24 triangles with angles \(\pi/12*(1, 3,8)\), let’s name the distinguished points \((p_1, p_2, p_3)\). Without labels, the figure looks like this:

We can then pick any \(\gamma_j\) combination to parallel edges as long as they satisfy a certain intersection condition. The intersection matrix must have determinant nonzero, we pick the intersection matrix:

\(\begin{pmatrix}A & 0 \\ 0 & A^T \end{pmatrix}\)

Where \(A := \begin{pmatrix} 0 & -1 & 1 \\ 1 & 0 & -1 \\ -1 & 1 & 0 \end{pmatrix}\)

We take the convention that:

  • \(\gamma_1\) is associated to the edge labelled 1
  • \(\gamma_2\) is associated to the edge labeled 5
  • \(\gamma_3\) is associated to the edge labelled 8
  • \(\gamma_4\) is associated to the edge labelled 10
  • \(\gamma_5\) is associated to the edge labelled 12
  • \(\gamma_6\) is associated to the edge labelled 4

Our surface, with 24 triangles of the appropriate angles, is then the following, the \(v_i\) corresponding to \(\gamma_i\)’s drawn in.

Here, the blue edge dots are \(p_3\), and the black corner dots of the triangles are \(p_2\).

Now, these representations of \(\gamma_1, … \gamma_6\) should be thought of as vectors, \(v_1, …, v_6\). These vectors are the entries in the first row of our period matrix. These are the lengths of \(\gamma_i\) when we integrate over a given 1 form — this 1-form is encoded in the Euclidean representation of our Riemann surface as a 12 fold cover of the thrice punctured sphere.

Now, what is the length of \(\gamma_1\) in terms of the distance between \(p_2\) and \(p_3\), which we will call \(D\).

We see here that the length of \(\gamma_1\) is \((3 + \sqrt{3})\) D where \(D\) is \(d(p_2, p_3)\). Note that the mentioned diagonal of a hexagon is \(\sqrt{3}\)D.

Let us treat \(\gamma_1\) as if it is a straight across real vector (pointing to the left) by rotating our polygon a bit. Thus, \(\int_{\gamma_1} \omega_1 = (-(3 + \sqrt{3}) D, 0)\). Let us write \((3 + \sqrt{3})D\) as \(x\) for short.

Next, we can write down the rest of the vectors, \(\gamma_2, …, \gamma_6\) as rotations of \(\gamma_1\).

Let’s say \(\gamma_2\) is the rotation of \(\gamma_1\) by 120 degrees, then as a vector representation of a complex number, \(\int_{\gamma_2} \omega_1 =(\frac{x}{2}, – \frac{\sqrt(3)}{2} i)\), which is the rotation matrix for \(\theta = 120\) multiplying the vector \(a :=(-x, 0)\). Thinking of \(a\) as a complex number:

So, since \(\gamma_2 \mapsto e^{\tau*i/3}a\)
\(\gamma_3 \mapsto e^{2 \tau *i/3}a\)
\(\gamma_4 \mapsto e^{3 \tau*i/3} a\)
\(\gamma_5 \mapsto e^{4 \tau*i /3} a\)
\(\gamma_6 \mapsto e^{5 \tau*i/3} a\)

Second Row

We get the second row of the period matrix from the triangle angles \(\pi/12*(2, 6, 4)\). So when we glue 24 such triangles together (two triangles is one sphere) centered at \(p_1\), we get:

Where the bold line indicates the slit by which the two hexagons are glued together.

We now draw \(\gamma_1\), note that we can draw it as a curvy line, for clarity of thought:

but it is a minimal geodesic, it is more honestly depicted as:

Now we draw in all of the \(\gamma_i\) as curvy lines (though they are actually straight) for clarity, and it is a little more aesthetically pleasing this way I think. These are following the same convention of choices of color and \(\gamma_i\).

We see that each \(\gamma_j\) is related to \(\gamma_1\) by a rotation of a multiple of \(120\) degrees, that is, \(\tau/3\).

These hexagons have side lengths \(2D\), so the lengths of \(\gamma_i\) are \(2\sqrt{3}D\). Taking the convention that \(\gamma_1\) is always negative facing parallel to the real axis, we get: \(\gamma_1\) will be \(b := -2\sqrt{3}D\). The entries will be: \((b,be^{\tau i/3}, be^{2 \tau i/3}, be^{3 \tau i/3}, be^{4\tau i/3}, be^{5 \tau i/3})\).

That gives us the second row of the period matrix.

Third Row

Last but not least, we treat the case where our 1-form gives us triangle angles \(\pi/12*(5, 3, 4)\), which gives us a fabulous helix-type deal.

It is easiest to represent in 3D space because unfortunately, we have centered the other drawings around \(p_1\), and in our case, \(p_1\) corresponds to an angle of \(75\) degrees which doesn’t divide 360 evenly until it wraps around itself a few times. Here is my gloriously ill-made 3D paper model:

Note that the bottom edge and top edge are in fact identified, though this is not pictured.

So, we start by computing \(\gamma_1\) on this baby, as we usually do. Here, \(\gamma_1\) starts at my left ring finger, and goes to my right pointer finger:

It looks like \(\gamma_1\) as a vector is here \(2d(p_1, p_3)\), since we can pop in and out of \(p_1\) anytime. Here, \(d(p_1, p_3) = \frac{2}{1+ \sqrt{3}}D\) by the rule of sines.

Further, \(\gamma_1\) is related to \(\gamma_2\) by a rotation of \(300\) degrees, that is \(5 \tau/6\) radians.

(We see by reflecting the triangle out as shown below that this angle is 60 degrees.)

In the end, all collected, in complex number form, our period matrix is this glorious beast, let us define

\(a : -(3+\sqrt{3})D\)
\(b := -2\sqrt{3}D\)
\(c := -\frac{4}{1+ \sqrt{3}}D\)

a & ae^{\tau i/3} &ae^{2\tau i/3} &ae^{3\tau i/3} &ae^{4\tau i/3} &ae^{5\tau i/3} \\
b &b e^{\tau i/3} &b e^{2\tau i/3} & be^{3\tau i/3} & be^{4\tau i/3} &be^{5\tau i/3} \\
c & c e^{5\tau i/6} & c e^{10\tau i/6} & ce^{15\tau i/6} & ce^{20\tau i/6} & ce^{25\tau i/6}