member since May 6, 2010
profile picture

portfolio of

Dozenal Clock Study

I dusted off my Processing skills and learned how to keep time in a base-12 world...

Three Point Circle Study

I needed to figure out how to get a circle from any three arbitrary points (for another project I'm working on). So I built this study to figure out how to do just that. I'm posting it up in case someone might find it useful...

It's just three point traveling around the screen. The circle is drawn based on those three points.

Rounded Rectangles

Had some time this afternoon to mess around with Processing. I remember seeing something similar out at that inspired me to create this.

4-Dimensional Noise Study

Got to messing around with Ken Perlin's Improved Noise algorithm again. The base is a Fibonacci sphere. The vectors are generated with a four-dimensional noise routine (x, y, z, and time).

Drag the image to spin the sphere around.


It's been a while since I sat down and messed around in Processing. Vacations are a wonderful thing.

This is nowhere near what I had in mind when I started. It ended up something that reminds me of Thomas Diewald's classic sketch (

Box Curves

Just rotating some stacked boxes. I was messing around with a deck of cards when I got this in my head.

Move your mouse vertically to adjust the number of "slices"...

Stereo Study

I was messing around with stereoscopic effects. Fun stuff.

Click-drag to control spin.

Press any key to switch between stereoscopic modes.


When I saw Adam's applet, I immediately thought of an electric mixer with two blades spinning simultaneously...

Depth of Field Study

An experiment to control the blurring of an image dynamically. I created two images, the base image and a matching depth mask image. The mouse adjusts the depth mask which is used to blur the image.

Images were rendered in DAZ Studio (

Edit: I reduced the amount of blur to speed things up for those of you with slower computers...

FatFonts Study

I saw an article in Science News a while back about these "Fat Fonts" that some clever dudes out at the University of Calgary had come up with.

So I went and found their website ( where I found some SVGs for me to play with (score!).

This is just my first sketch messing around with them. Horizontal mouse position controls font size and clicking redraws the image.


For this sketch, I recycled and cleaned up an older sketch that I had put together (but never posted).

The actual objective was to work on the presentation (i.e. GUI sliders) by mixing together static images together with the dynamic output. The results look pretty slick.

I uploaded the static images I used to Imgur (, if you're interested...


I whipped up a simple sketch to demonstrate recursion principles to my kid and in the course of playing with the sketch, we noticed patterns emerge. I thought it looked cool enough to upload it.

No annotations with this one, but it's a real simple sketch.

Click the display to bump up the number of recursions. (if you have a slow computer, it might get clunky after 3 or 4).

Circular Maze

I needed a break this weekend from the game I'm writing, so I put this together on a whim.

Nothing terribly exciting. Just a "depth-first" maze algorithm in a circular structure.

Click to generate a new maze. Number of concentric "rings" is somewhat random...

Collision Study

There's a circle collision example on Processing's main site ( which was written by Ira Greenberg (and based off code by Keith Peter). But every time I went through it, I got confused by the way it was implemented.

So this was just a test to see if I could get collisions working using dot products. I played fast and loose with the physics. I didn't care if it was right; I only cared that it LOOKED right. :)

Click the display to restart the sketch...


So I decided to mess around with isometric tiles and maybe write a game or something. But I was having trouble with converting mouse coordinates to map coordinates. So this was a test bed for figuring out the math. I think I got it right. It might not be the most efficient, but it works.

So I thought I'd share in case anyone else was struggling with isometric conversions...

Edit: You may have to download code for the mouse wheel listener to work right...

Improved Perlin Noise Study

So there I was, messing around with vector fields and perlin noise when realized that I didn't really care for the herky-jerky effect that I kept seeing. So I did some Google-ing and came across Ken Perlin's improved noise algorithm (// Much better!

(Click the display to switch between noise modes)

Another DLA

My half-assed attempt at DLA. Not terribly fast, but I think it looks pretty neat after a while...


Just some bubbles generating from the mouse. A quick lighthearted sketch I whipped together to unwind after work. Yeah, I'm a geek. But it's better than watching TV.

High Order Bezier Curve Walking Study

I was working on another sketch in which I needed the ability to "walk" along complex curves. I had no idea how to tell where along the curve I was after x amount of time.

My understanding of bezier curves was limited to "two anchors and two handles gives you this curve". Obviously I needed to understand bezier curves better. This sketch forced me to learn enough about bezier curves to be able to "walk" along it - in 200 steps.

The end effect looked kinda' cool, especially when I blended it. Cool enough that I thought I'd post it. So here it is cleaned up and annotated...


After doing my icosahedron study, I wanted to do another one for the truncated icosahedron (you know, the soccer ball/buckyball/nuclear bomb poly).

Thinking about it and looking at the math, I was struck by the pattern of the vertex permutations. I wanted to retain some of that in my program because it was interesting (and I hate working with tables of seemingly meaningless numbers).

When I was done, I realized that the app could easily be tweaked to accommodate most of the other polyhedrons. So I did.

Icosahedron Study

Just a quick study on how to layout the coordinates of an icosahedron (or one way, at least).


This was an attempt to combine simple perlin motion with bezier curves to produce something that feels organic.


Messing around with sprite sheets and PVectors. The little guys are generally attracted to the mouse and generally repelled by each other. The artwork was rendered in DAZ Studio (free app from and sheeted in Photoshop.

Click the display to see the whole sheet...

Sound Effect Study

I want to start adding sounds to my apps. So this was a quick study to figure out to handle simple sound effects.

Minim makes it easy as long as you can find what you're looking for. They've built in a TON of features but their documentation is a bit wonky.

So, anyway, this applet is just your cliche balls-chasing-the-mouse app, but whenever they collide with the screen edge, a noise is produced with the volume predicated on the speed of the collision.

Illusion (updated)

An updated version of my Illusion applet. I didn't like the fact that it just sat there as a static image. After all, this is Processing, for goodness sake. So I started playing around with it and as soon as I set the whole thing rotating, I realized how much more profound the illusion was. I get a little nauseous looking at it now (cool!).

I added in some guidelines to show that the rings really are concentric and that the they're moving uniformly. I also added in some "mode" changing keys to round things out.

Multi-Thread Test

Trying out a simple multi-threading class I found on the Processing forums. I'm loading animation frames in the background while the little spinning thing wheels around. The animation is just something I shlupped together.


So this was the sketch that I thought I had to learn line intersections for. It turns out I didn't need them after all. I was messing around with the vectors this afternoon and sort of stumbled into the effect I was looking for. Live and learn...

Line Intersection Study

I was working on another project in which I needed to figure out the coordinates of some line intersections. I tried a couple times before realizing I really had no idea how to do it.

So I did some research into some of that yucky math stuff in order to put this together. Not terribly elegant, but it gets the job done!


Experimenting with gears. Not sure what I can do with this, but it was a fun and challenging exercise.

SineWave Dots

Experimenting with sine waves and dots. Move the mouse around the display to change the view angle and the magnitude of the wave...


A quick animation test using images rendered in DAZ Studio (that's a free app, kids).

The numerous use of the number 6 in the script is strictly coincidental. No, really.

Old School Sprite

Just horsing around with sprite sheets. Use direction keys change direction...

Dot Product Study

Trying to wrap my brain around dot products (ouch!). Provides for a fast way to determine if a point falls within a triangle.

Perlin Hexes

Serendipitous fun with hexes and perlin noise...

Edit: cleaned up the code (I had some unused leftover bits), threw in some annotations, and added a scaling variable...

Perlin Landscape

Messing around with perlin noise and colors. Just a bunch of dots.

use [a] and [d] to rotate
use [w] and [s] to change the gap (the space between the dots)

Gaps - Full Game

I wanted to try making a whole game in Processing using what I've learned so far. I thought I could do it, but I needed something relatively easy. So I picked a solitaire card game I loved to play as a kid called Gaps. So here it is. It was fun to do and I learned a lot in the process. And, I got a fun game out of the deal, too!

Perlin Study

Trying to get a handle on perlin noise. Also doing a little more interaction with this one.

Big Cave

I've seen a couple teeny-weeny applets on the Open Processing site, so I thought I'd give it a try.

Vector Field Study

An experiment with vector fields and virtual magnets.

Click the mouse to add a magnet. Click again to get another magnet...


Experimenting with motion, persistence of vision, and vectors here. I like how life-like the little boogers appear.

Left-click to attract the swimmers and right-click to repel them.

Current Temps from NOAA

This was an exercise in scraping XML data feeds from an Internet source. In this case, it's current temperatures from NOAA's weather site. I messed around with the visuals a bit until it looked kinda' cool. I don't check for any anomalous data (like that one station in Alaska that's usually 120° F) and NOAA's site is notoriously slow. So take it as you will.

You know, now that I think about it, I like having someone else to point a finger at. Blame NOAA, not me! It's all NOAA's fault. How refreshing.

Click the display to zoom into the lower 48 (when you get some data points there)

Angle Study

Having a typical American public education, I sometimes struggle with simple geometry and angles. I decided to face the problem head-on and force myself to figure it out.

So this program just spins a dot around a circle. But, by god, I understand how its happening now.

Parallax Test

Just a quick idea I had this morning to test parallax effect using PImage and PVector classes. Spent more time in Photoshop messing around with the pictures than I did writing the program...

Anaglyph Attractors

Just messing around with particle attractors in 3D space when I noticed my kids 3D anaglyph glasses nearby. One thing led to another...

So, you'll need a pair of those 3D anaglyph glasses to see this properly. I also added controls to pan the view (arrow keys). Some of those spinning constructs will sometimes leave the screen and I wanted to see where they were going...

Dog Hair

Inspired by the "Mycelium" work by Ryan Alexander (listed on's Exhibitions page).

Starts out a little slow, but gets cooking once a few hairs are spawned. Usually tops out at over 1000 hairs before they start running out of "food".

Bezier Study

I'm new to Processing and Java programming. So, I've just been messing around--learning the language and all. I thought this one turned out fairly mesmerizing. Kinda' like a screen saver...
followed by


Share Share Subscribe to sketches