complexity

logistic map  the logistic map is a mathematical model for thinking about population growth. on the x axis is the growth rate, with the y axis being population level. at growth rates below 1.0 the population goes to zero after a finite number of iterations. between 1 and ~3.5 the population has one or more stable points it arrives at after some number of iterations. above ~3.5 there are region of chaos, which are visible in the visualization by wide clouds of points, with sweeping lines through them. pay attention to where those chaotic regions coalesce back into discrete lines, and then back into chaos. there is also a fractal structure, where the overall shape of the graph is visible in those regions where the shift between order and chaos happens. the image was rendered by a custom program written in Go and is rendered as a deepzoom in the browser by the openseadragon javascript library.

loom of chaos: cellular automata rule explorer  from simple interactions between a onedimensional array of cells, which can either be
on
oroff
, emits a shockingly complex series of possible landscapes. the active cells are the row across the top, as time passes they generate a new row and push the old one down. as the landscape unfolds the user can change the rule(there are 2^8 or 256 of them), feeding the previous state into the new rule, thus weaving the patterns together over time. sometimes the automaton dies, with no complexity inside a row, or possibly alternating from a whole row ofon
to a whole row ofoff
. there’s no way for the automaton to come back to life from that state, and so the user may use ther
key to reset. 
sierpinski triangles  starting from a blank canvas and a random point on that canvas, pick 1 of the 3 vertices of an equilateral triangle as tall as the canvas. now draw another point half way between the first point and that vertex. feed this new point into the same steps and repeat until satisfied. the output is a sierpinski triangle.

command line cellular automata rule explorer  similar to the loom of chaos, but implemented in python as an ncurses CLI app

diffusion limited aggregation  an implementation of the diffusion limited aggregation algorithm, which models some physical processes.
virtual reality
 selected photospheres  full innersphere panorama photos. try them in VR if you have a headset, cardboard, oculus or other. implemented for webxr in aframe.
assorted programs

2vcf  convert your 23andme or ancestry.com results from marker space into physical coordinates and into VCF format with this utility.

tinukajazojipodi  this was a project meant to impart some of the joy of programming on someone new to the art. it generates random phrases and calls the Mac OSX program
say
to have a randomly chosen voice pronounce the nonsense. source code can be obtained at github. 
genome scroller  display genome sequence from a FASTA file as scrolling text. this was implemented in order to communicate some sense of the size of a genome in human terms. for example, at the default speed, one would have to watch the sequence scroll by for
88
days to see the entire thing.