up
an approximately chronological list of personal programming projects.
other, less-software-oriented projects are here.


Shadertoy  2018 -
Various pixel shaders. Ray-Marching, etc.



Mesh Static (webgl/3js)  2016
Distributing random points uniformly on the surface of arbitrary triangle meshes.



Parabola (unity - webgl)  2016
Some projectile math



Donut Life (unity - webgl)  2014
Conway's Life literally on a donut.



Donut Racer (unity - webgl)  2014
Crazy red-dragon-scale donut thing.



Tracks (javascript - canvas)  201404
Simulation of motion via two wheels and an axle.



Splines (javascript - mobile okay)  201404
Quick experiment with blending interpolation of line segments.



Prism HD (iOS)  2012-2014
An inspiring exploration of real light shining through glass prisms and splitting into natural rainbows beneath your fingers.
Native Objective-C with C/C++ for simulation, rendering, etc.



Ispiraled (iOS - unpublished)  2013-
The iOS evolution of 'inspiraled', below. This is not yet published in the app-store, pending a free weekend!



Dot Density (javascript)  201212
more distributing random dots in disks
trying to distribute random dots on the unit disk so that their projection onto any line is uniform.



Spangled ! (iOS)  2012-2013
A gentle, Ever-Changing Musical And Visual Patterns, and ultra-simple interaction make this app a sure winner.



YourBase (iOS)  2013
iOS-evolution of 'arbitrary base conversion in javascript', below.
Primarily written as an iOS exercise in custom keyboards, multi-view controllers, etc.




Inspiraled (javascript)  201112
fun with spirals
spiral particle systems on canvas w/ javascript.
suitable for mobile


PixelFilter (javascript)  201112
simple javascript + canvas pixel filter
does a simple blur and color-lookup for the Obama Poster effect.
in HTML5-compliant browsers, can use a local file.
suitable for mobile


HandyRand (javascript)  201011
a simple randum number generator
to assist with operant conditioning, variable-ratio schedule, behavior analysis, and behavioral modification.
thanks to mike for the call-out !
suitable for mobile


Curves (javascript)  201010
a nifty parametric curve plotter with:
  • arbitrary function input
  • time-variance
  • and
  • interactive associated curves such as The Pedal and The Normals


  • js1k - spinners (javascript)  201008
    - classic spinnerjoy written in <= 1024 bytes of javascript
    - see also js1k.com



    Magic Donut (iOS)  2009-2011
    One of my earliest forays into iOS programming, and a continuation of my obsession with toroids.
    A magical, twisting, morphing, spinning donut! All shading computed in CPU with vertex colors; no textures or shaders.


    fun with O3D, google's 3D browser plugin.
    2d in 3d2009
    teapots make spirals2009
    lots of teapots2009
    one teapot2009


    (at least) three cheers for sines and cosines.svg  200810
    - eye candy with SVG and javascript
    fluid2.svg  200810
    - fooling around with waves-on-a-string propogation in SVG and javascript


    Arbitrary base conversion in javascript  200809
    - It's getting harder and harder to call these actual programming "projects"..
    but boy! you should see my non-personal programming projects!


    Not Taunting of HappyFunSquiggleBall, a tutorial  200807
    - A C++ tutorial covering the basics of object rendering and networking in the Torque Game Engine.


    A Penny Game  200506
    - Really more of a math puzzle, leading to the Wythoff sequence.


    i dream of norway  200504
    - A very basic spherical-coordinates parametric equation program.


    Programmer's Break Timer  20050318
    - A very simple break timer for those of us with more RMS than google skills!


    winpwd  20041124
    - A small utility for figuring out what working directory other programs are using.


    distributing random points on a sphere  20040830
    - A tiny Visual 3D experiment in distributing random points 'evenly' on a sphere. Not that interesting.
    However, it does come with source code and is a decent boiler-plate for working with directX 9.


    oxe_bounce.zip 26KB  200403
    - The javascript for the little flying particles you see here.
    Originally written in 2001, recently updated to support mozilla/netscape.


    flock  20031205
    - A flock o' birds simulation. Collision prediction, hunting, walls, etc.


    Implicit Collusion.exe 36KB  20030818
    - A sort of cheerios simulator. Uses no collision detection! In-Progress.


    separate  20030504
    - very small program distributing points evenly on a sphere.


    Spinner Joy 2  20030428
    - direct3D version of spinnerjoy. in-progress.


    Spinner Joy  20030415
    - i begin to feel i have may looked too long into an abyss with this one.
    If you download one program today, make this it. seriously.


    The Final Donut  2002-2003
    - 3d spinning goodness in several versions.


    Donut World  200009
    - unfinished 3d first-person driving-around shooting people game.


    "yoyo"  199909
    - another, even more unfinished 3d first-person driving-around shooting people game.


    HyperCube  200007
    - 4D HyperCube demo.


    Spirals  199911
    - Pretty Spirals within Spirals.


    ZokZok  200001
    - Pedal, Evolute, and other fun Associated Curves


    Buzz Machines  2001-2002
    - machines for the music program Buzz.


    various particle systems (900KB .zip)  1998-2001
    - 7 or so oldies but goodies