Software
Systems
- TypeScript / three.js
coxeter-viz
Visualizing convex polytopes, Coxeter groups, and tilings in hyperbolic 2- and 3-space.
with Gordon Kirby - Python, Javascript
geometric-optimization
Solving geometric embedding problems in various ambient spaces via optimization techniques
with MPI Math Lab - TypeScript / three.js
homogeneous-spaces
Drawing geometrically-correct points, geodesics, curves, and surfaces in 2D and 3D homogeneous spaces — constant-curvature geometries, their Lorentzian cousins, and product spaces — through swappable coordinate models.
- TypeScript / three.js
limit-sets
Rendering the limit sets of matrix groups acting on projective space.
- TypeScript / three.js
math-lib
A TypeScript library for differential-geometric (and soon more general) computation: dimension-general Riemannian and symplectic structures, musical isomorphisms, and symplectic integrators, built for live animation and speed.
- GLSL
pathtracer
Photorealistic rendering of signed distance fields via unidirectional path tracing in GLSL.
- JavaScript / GLSL
shader-sandbox
An npm package for running Shadertoy-like shaders and beyond easily on your local machine.
- JavaScript / Three.js
threejs-demos
A system for creating and running Three.js animations.
Projects
- TypeScript
anosov
Visualizing Anosov representations of surface groups and their limit sets.
-
constant-curvature-surfaces
Surfaces of revolution of constant curvature, textured by regions of the sphere or hyperbolic plane.
with Stepan Paul - Javascript / GLSL
cubic-lines
Real time visualizations cubic surfaces parameterized by six points in the projective plane.
- TypeScript / GLSL
elliptic-curve-viz
Visualizing elliptic curves — over finite fields as point sets on flat tori in the 3-sphere, and over ℂ as complex tori in CP² — live in WebGL and path-traced for final renders.
with Nadir Hajouji - Javascript
geodesic-boards
Computing geodesics on surfaces z=f(x,y) and exporting for CNC cutting.
with Edmund Harriss - JavaScript
knitted-surfaces
Computing periodic knitted designs on surfaces.
with MPI Math Lab - TypeScript / three.js
lightfall
Rendering light cones in spacetimes warped by multiple black holes.
- TypeScript / three.js
low-vertex-flat-tori
Numerically discovering low complexity flat tori in 3 space, following Rich Schwartz's vertex-minimal construction.
with Fabian Lander - TypeScript
starscapes
Rendering the roots of families of integer polynomials in the complex plane — a live explorer and a gallery-scale print renderer.
- TypeScript / three.js
variety-point-clouds
Sampling algebraic varieties in real and complex projective space as point clouds.
with Fabian Lander