Here is a collection of programs I've written to investigate certain visual or mathematical ideas, usually involving randomness, and sometimes involving user interaction. They utilize JavaScript and the HTML canvas element. Some attempts were made to ensure proper functionality on mobile web browsers, but desktop browsers will typically give a better experience.
Random circle packing generator
L-Systems plotter with many examples
Animation of the time evolution of random 1-dimensional cellular automata
Compulsory Mandelbrot set explorer
Illustration of linear regression and gradient descent
Exploring bifurcations of the logistic map
Basic ray tracing program with a variety of example scenes
Determining the planarity of various graphs
Visualizing mappings from the complex plane to itself
Animation of the time evolution of the lorenz attractor
Animated visualization of endomorphisms of cyclic groups
Simulation of a laser beam among circular mirrors
Illustration of the K-means clustering algorithm
Infinite sequence of concentric polygons
Simulation of particles in a gravitational field
Drawing Spirograph-like curves
Growing random plant-like structures
Vector fields that interact with the mouse cursor
Procedurally generated images of aerial perspective
Filling various graphs with random, non-intersecting paths
Trajectories of particles moving quasi-randomly in the plane
Patterns with n-gons and circles
A simple fractal based on semicircles