These are some programs I have written which are generally suitable for public
consumption. The C programs work on Linux and (most likely) OSX, and probably
Windows if you can get the libraries in the right place.
Surfaces with boundary, scl, etc
-
- A program to compute with surfaces in
free groups and free products of cyclic groups. Scallop now contains the
(improved) functionality from scallop, scylla, trollop, gallop, and scabble.
Scallop requires GMP and GLPK, and supports
using Gurobi as a linear programming solver.
- A Gtk+2.0 (graphical) application which
allows you to manipulate fatgraphs, mostly fatgraphs coming as output from
scallop, which is included with wallop. Note the included scallop is
the older scallop, which only computes in free groups.
-
- A gtk and opengl C program which
allows you to interact in real time with the computation of 3d scl norm balls
in B_1^H.
- A C/C++ program which uses the same
theory are scallop to compute a 2d slice of the scl norm ball in the space B_1^H.
Note you may need to use the -m option to avoid some rigor problems more
evident with scabble than scallop (see the readme). Requires GMP and GLPK.
See scallop above.
- A C program which implements the algorithm
described in "SCL, Sails, and Surgery", By Danny Calegari. The algorithm is,
except in very special cases, way slower than the one in scallop, so this is
probably useful only if you want to really understand the paper.
Dynamical systems
-
- Schottky draws limit sets and many other things for
2-generator iterated function systems. This project is joint with
Danny Calegari and Sarah Koch, and the program is joint with Danny Calegari.
- A JavaScript implementation of the shottky program
- Angle explores the space of linear circle actions.
- A JavaScript implementation of the angle program.
- A program to numerically find periodic orbits of rational functions.
It also draws Julia sets.
- A program to mess with rotation numbers.
Surfaces and curves on surfaces
-
- A program which computes and
draws minimal positions for loops on surfaces. Note: the algorithm of
this program is suspect on closed surfaces.
- An online version of branched.
- Shine displays embedded surfaces in 3D, finds hyperbolic structures on
them, and draws hyperbolic geodesics. This program can output
.eps and .svg files which essentially duplicate the standard
blackboard pictures of curves on surfaces. Deprecated in favor of shine.js, below.
- A javascript version of shine; partially working.
- A program to draw rays on the sphere minus a Cantor set and act on these
rays by homeomorphisms.
Misc
-
- A C program which generates the integer
hull of a rational polyhedron. It implements the algorithm described in
"Theory of Linear and Integer Programming" by Alexander Schrijver, especially
as explained in these
course notes by Rekha Thomas at UW. ihull
uses lrslib and
Normaliz.
- An example cryptogram decoder program written
for Math 2b (probability and statistics), which demonstrates using Bayes' rule
to score potential decrypts of a cryptogram (and try to find the best one).
- A script which takes a 2 dimensional CW complex
as input and outputs a (homeomorphic) simplicial complex. This can be handy for
using Sage to check homology, etc.