Javascript Toys
Here is a collection of interactable demonstrations, visualizations, and games that I've made over the past few years. All code here was made with real human fingers.
(dd.mm.yyyy)
Developing an Octagonal Tiling (19.09.2026)
This is a little 'game' I made to show how the developing map works for a genus-2 surface given by an octagon in \(\mathbb H^2\). You can fly around the hyperbolic plane and 'unlock' new tiles by hitting the blue dots. I made this for a talk I gave at the OSU grad student seminar.
Products of Lengths of Line Segments (10.09.2026)
This lets you place down two intersecting line segments in the plane, say \(L_1\) and \(L_2\). Let \(p\) be their intersection point. Then \(p\) divides each line into two segments. For each line, you can take the product of the lengths of its line segments. This program calculates which product is larger. This has relevance to retriangulating hyperbolic 3-manifolds, which I might write up sometime.
I'm paramatrized by \(\mathbb H^2\) (08.09.2026)
This shows the moduli space of flat structures on the torus. You can move the black dot around on the hyperbolic disk model to change the shape of the torus. Because you can rescale the torus (it stays within its homothety class), I've clamped the image of the vertical basis vector to have height 1. When whitespace appears on the torus, it is because you are stretching the pixels apart. The use of my landing page picture as the torus has more to do with my laziness than my narcissism, probably.
Hyperbolic Boid Simulation (09.08.2026)
This simulates boids (think: flocks of birds) in the hyperbolic plane. You can play with the parameters to change the flocking behaviour. This was a quick project to learn the library it's based on, so there are many flaws. For one, agents should 'see' beyond the edges, but they do not. Also, it crashes sometimes, which is fun.
Triangulating Polygons (and 2-2 moves) (28.07.2026)
This program will triangulate a polygon that you draw in the plane. You can then click on an edge to perform a 2-2 move. This is an updated version of a program I wrote in 2023.
Geometry of Roots of Polynomials (04.05.2023)
The point of this project was to visualize the roots of the derivatives of a function defined by where its roots are in the complex plane.
Knight Maps (15.01.2023)
When I was an undergrad, I was really interested in the weird pictures you get when you look at how knights move on a chess board, and what happens if you suppose the knight jumps n spaces in one direction and m spaces in another (instead of just 1 and 2).
A Gallery of Asymmetric Graphs (07.12.2022)
This shows off all graphs with trivial automorphism group, up to seven vertices.
NAP — a game about symmetry (07.15.2022)
A game that deals with graph automorphisms. The goal is to add edges and nodes to the given graph, as economically as possibly, so that the result has no automorphisms. NAP stands for No Automorphisms, Please.