A re-implementation of my Mazers generator in rust/wasm, for running on the web.
This time, I adjusted the algorithm a bit so that when the depth-first-search creates an enclosed region, a parallel search is started within that closed region, safely isolated from the rest of the search. This creates a nice splitting effect that makes the animation look a bit like ink splashing wildly through the image bounds. Additionally, I start the search slowly and gradually speed it up as it progresses, which gives the animation some extra drama.
A Cayley graph & polytope explorer. Construct groups from other groups, visualize symmetric embeddings of their Cayley graphs, inspect their underlying polytopes' symmetries. Inhabit the world of finite groups and explore its structure.
Group Theory, Geometry, Topology, Geometric Algebra... I learned a lot of interesting math while working on this. Finding maximally symmetric embeddings of arbitrary Cayley Graphs in whatever geometric space is best - it's a fascinating problem! Ultimately it shifted my focus towards Polytopes more than Cayley Graphs themselves... but, Polytopes have symmetry groups, which is another way to move through the space of Groups! Cayley Graph defines Polytope defines Symmetry Group defines Cayley Graph... This was a fun project, but ultimately the scope of it all was a bit beyond my reach and the project got left in a rough, though interesting, state. I might like to come back to it at some point.
An interactive rendering of a clifford torus (which is like the 4d analog of the torus, a better torus, a 'maximally symmetric' torus) rotating about one of its axes. Left-click and drag to rotate the camera about a second axis.
Beginning as a 4d mesh in the code, it is stereographically projected into 3d, and then perspectively projected into 2d, so that it can be presented to the screen. The red-white-black color scheme makes the animation particularly striking to me.
An interactive rendering of a 4d realization of the abstract regular dodecahedron. Again, stereographically projected into 3d. Left-click and drag to rotate the camera about a second axis. Space to toggle a continuous rotation about another axis.
While working on my GroupLab project, I was reading lots of math books about symmetry groups, regular polyhedra, and their embeddings in geometric and topological spaces. The book 'Abstract Regular Polytopes' (by Egon Shulte and Peter McMullen) describes a way to 'faithfully' realize the symmetries of the dodecahedron in four dimensions - in addition to the usual realizations in three dimensions - and I wanted to see if I could see its shape, to better understand it. It's a strange thing, and I'm not sure I ever managed to really understand its relation to the dodecahedron or if I even rendered it correctly, but I did render something symmetric and intruiging.
An interactive group explorer. Starting with the integers, take quotients and products with subgroups to create many other groups. Made with D3.js.
The concept of 'equivalence classes' fascinates me; it seems so fundamental to so much of mathematics. Fractions seem to be the earliest example that we encounter in school. Quotient Groups are a more general example, and Cayley Graphs make Groups so very visual - my favorite way to study math. I made this interactive Cayley Graph viewer, and then made it so that I could take quotients and products. I like the idea of starting at a single group and, through simple operations, wandering through the rest of the set of finite groups. It is very much like a game, moving your character through a world - using your various movement abilities to explore.
The limitations of these 2D layouts for Cayley Graphs soon makes itself apparent as you explore, and is why I started exploring high-dimensional embeddings of graphs in my follow-up GroupLab project.
A set of three interactive lines whose equations combine to describe the orange parabola; the two dark blue lines are multiplied together, and the light blue line is added to the result. Made with D3.js.
I want to explore the field of polynomials visually, intuitively, and without numbers. I dream of a tool where I can compose lines (defined by control points) via addition and multiplication to generate arbitrary polymonials, and tweak their definitions in real time by modifying the base lines. Compared to tools like Desmos and Geogebra, it would be something that foregrounded these visual constructions and backgrounded the underlying equations. A hard-coded, prototype construction of a parabola was as far as I got.
Inspired by the renderings of complex polynomials in 'The Fundamental Theorem of Algebra for Artists' by Bahman Kalantari and Bruce Torrence, I used Mathematica to render a handful of arbitrary polynomials in the same style.
warning: flashing colors
A Cellular Automata engine which works on a large variety of rules and a handful of grids (square, triangular, hexagonal), defined by Joe Wezorek's Lifelike. Wander through randomly selected rulesets, probe their behavior, search for gliders. At any time you can save the active ruleset into the url, creating a link to that specific automata system.
I collected a handful of saved rules here. This project was loosely inspired by Jeffrey Ventrella's Breeding Gliders in Cellular Automata.
Generated images, where each pixel is a cell in a grid maze, colored by its distance from the start, normalized against the longest distance in the maze. Each maze is generated with a randomized depth-first search, a very simple maze generation algorithm.
I wrote this as a Processing sketch, and rendered the image iteratively as it was generated. It was mesmerizing. Then I had it generate lots of images, and eventually even printed a book of them. I've since lost the code, but managed to hang on to a number of the generated images, which you can browse here. There is a striking variety in the compositions that emerge from the simple, generative process.