Infinicity2d art
Various art assets created for the 2d, PHP-enabled infinite city. All the images are hand drawn in pencil, inked in pen, and then scanned and colored digitally.

Head here to see them for yourself.
PHP infinicity
I've recently started revisiting some of the ideas from my graduate thesis related to the generation of infinite urban cityscapes via psuedorandom numbers. However, this time I'm implementing a 2d environment using PHP and javascript. As it stands, I'm using PHP (and the GD library) to generate a background image, and javascript to control the motion of a character on screen. Walking far enough to the left or the right will trigger an update, where a new background image is generated based on the player's current position.At present, the image generation is limited to the roughness of the terrain and the position of a single simplified "building". I've been working on the art assets in parallel, though (see above), so it won't be programmer art for long.

To see the current version in action, head here.
Bitmap graphics example app
A small application created in Flash for an online class I'm teaching (introduction to computer graphics for animators). The application lets students experiment with creating 2-bit graphics. Since 2 bits allows for 4 values, one is limited to 4 colors. You can use any four colors that you want, but only 4. The end result is very similar to a GIF with a very small (4-color) pallatte.

Go here to play with it.
Everything you ever wanted
I've recently started in on Everything you ever wanted, an interactive 3d piece about conspicuous consumption. It is to take the form of an infinite shopping area where the user/player is forced to endlessly search for various trinkets. All of the products will be procedurally generated, yeilding a never-ending supply of must-have items.
So far I have just a roughed-out, bare-bones version of the environment- lots of display racks (sans product), and a cart you can steer around to your heart's content
Click to view video
Sensorium node mockup
I've started in on a project that I've been kicking around for awhile- an approach to gameplay based on the node-based interfaces in apps like Maya and Pd. What I'm thinking is to have a game world in which players can build things by "hacking" (in the Make-magazine sense) things together to create useful items. But rather than having some pre-determined set of possibilities (as in games like Notrium), I plan on having it be completely open-ended (a 'la Pd), by keeping things as modular as possible.

Click for more
PHProcedural
I just started getting back into PHP, and have been playing around with GD. I've implemented a simple tree generator with a rudimentary (slightly randomized) L-system, with the results at right.Refreshing the page yeilds a new tree.

See it in action go - here.
Second Life texture calculator
I just wrote a program aimed at making it easier to work with complex textures in Linden Lab's Second Life. Second Life allows for custom textures and per-face application, but determining the settings needed to fit a given portion of an image to a particular face can be tricky. My program makes that a bit easier by allowing the user to click and drag on a region of the texture, while the script automatically calculates the necessary UV repetition and offset settings.

Click here for a video demo
XML_lib.mel - XML parsing for Maya
I've started writing a MEL script (xml_lib.mel) that can be used to parse XML data into Maya. As it stands, the script parses through the file creating a transform node for each tag that it enounters. The transforms are parented in such a way as to maintain the information in the XML file, and each of them is given a string attribute to identify the type of tag it is.

More information and downloads
Subterranean Shakespeare promo card
A postcard for a upcoming series of play readings by the Subterranean Shakespeare company.

View larger image
OmniCircus DVD/CD cover
The OmniCircus has just released a CD/DVD combo, for which I just completed a cover.

View larger image
Spaceship Earth game mockup
I've put together a small mockup of such a system, using Python and the pygame library. The player can create any number of plant and insect nodes and draw connections between them. At the top is a ground-level view that offers the player high-level feedback on the effects their changes have. At present, it progresses from a barren, primordial landscape to a field of grass as nodes are added.
Infinicity
My thesis project for the ACE (Arts, Computation, Engineering) program at UC Irvine. It's an infinite urban/suburban environment that uses psuedorandom methods to generate the street grids on the fly.
Leo3d
An animated bust of Leonardo DaVinci (based on one I have from a trip to Florence when I was 9). Pressing various keys on the keyboard triggers the animations at left. The project was done with 3d Studio and Photoshop for the model, and the rendering/interaction was implemented with ALICE.

Click here for more
A* animation
A small animation I created for an algorithms class demonstrating the A* path finding algorithm. MEL was a huge help with the animation. I did a few tricky things that let me finish it very quickly, and I'll likely be posting at least one of said tricks (the chasing-lights) in the Maya tidbits section soon.

Click here for the animation
SPS: a Second-Person Shooter
I've put together a small and short demonstration of an idea that's been kicking around the back of my head for a bit- a Seond Person Shooter. Instead of "I shoot", "You shoot"- the player selects a character that then shoots them. If you'd like to try it, you can download it here. Note that it's all 2d (though implemented with OpenGL) and uses Quake3 characters. As it develops I'll be making it fully 3d and creating custom characters.
Street grid demo
I've built up the street grid app into a proper demonstration of the Infinicity system. This is a small application demostrating a persistent, infinite virtual space based on psuedorandom numbers. At any given moment, the app only knows about 9 grid units, each of which forms its streets independant of each of the other grid units, yeilding a bottom-up generation of street patterns. Walking in any direction causes the program to move the existing grid units and generate three new ones. Walking more three or more grid units in any direction will result in an entirely new set of 9 grid units. However, since the generative process is based on pseudorandom numbers seeded with the world coordinates of the grid unit, returning to the same place will cause the exact same pattern to be re-spawned.
Falling stones
An interactive 3d piece for the OmniCircus show, meant to accompany "Deaf on Hollow Winds", one of the songs we perform (written by Frank Garvey). The piece consists of an endless stone walkway that crumbles away and spreads off into the sky, with a moving sunset backdrop.
Larry Beau: OpenGL slideshow app
An interactive graphics application I prepped for the "Larry Beau:The Last of the Lonesome Bards" show. All images are lifted from an excellent music video shot by Declan Burke and Co. in Ireland, Photoshopped to look like old photos in a frame and stuck into a small OpenGL program that renders images to the screen and advances through them at the press of the up arrow
Larry Beau: promotional card
A promotional card I created for "Larry Beau:The Last of the Lonesome Bards" - a show of the music of Declan Burke performed in both San Francisco and New York in the summer of 2004. I played electronic saxaphone and sang, along with Cindy Weyuker on vocals and piano, Jason Webster on guitar and vocals.
Laugh Riot VRpit
A virtual puppet (VRpit) for the OmniCircus show- a Jack in the Box based on one of Frank Garvey's paintings. He undulates back and forth, and can be made to bend forwards/backwards, left/right, and to twist to either side. His jaw is also controllable, allowing him to be made to laugh. Additionally, he can be multiplied, yeilding a forest of Jacks with each one slowing waving. This was modeled in Maya, textured with Photoshop, and implemented with OpenGL.
Doors demo
3d doors modeled in 3d Studio max and rendered in real-time via a small C++/OpenGL program. Keyboard keys control the opening and closing, and the screen output is sent to a projector for use in live shows. The doors are opened, and the projector feed is switched to an animation, played off of a DV camera. After the animation, the feed is switched back, and the doors closed. When nothing else is being shown on the projector, the doors remain as a backdrop for the action of the show.
MMeme: musical production tool
An interactive melody generator and tone synthesizer. The program implements FM synthesis, allowing the user to change the parameters on the fly. It also provides a number of different methods to select the tones (both direct and autonomous), set the duration, and apply effects to the generated melody.
Doppelganger
An interactive application that allows for the loading and playback of motion capture data (CSM files). It also allows the user to load "BOD" files- a proprietary format that remaps the data onto arbitrary geometries.

Click here for more info.
InFact News
An excercise in recobient journalism by Chris Graves, David Newell, and myself. We developed a ficitonal web news site that would steal content from "legitimate" news sites and re-combine it into alternate stories. Since we took the content a sentence at a time, Each individual sentence (except for a very few thrown in by the software we developed, and all the titles) was a "true" piece of actual news. The recombination produced some hilarious, and occasionally truthful, results (see below).All of the content was generated completely on-the-fly, with no human intervention.
Little Slave
My first exploration of arcade games as a media. I wanted to create an experience that was the anitthesis of the conventional game experience, empahsizing stillness and having a meditative mood. I built a mannequin into a conventional arcade game housing. When a user inserts a coin, a light comes on, and the mannquin begins to shake. There is a single button on the front of the box. Pushing it causes the mannequin to stop shaking, and a looping tape with sounds of bells and mules being driven is played. After a few minutes, the machine shuts down and awaits the next coin.

Click here for a video
The Mound
An animation based on the works of Frank Garvey produced by Mike Rankin, Jeremey Bietler, and myself. I was responsible for the character modeling, Jeremey for the texturing, and Mike for the animation. EROShambo:The Mound won 3rd place in the Computer Graphics international in 2001.
The Subtlety of Trout
A short animation produced using Maya and Photoshop.

Click here to view.
Eldervision environments
A variety of scenes that I created for Eldervision, Inc for use in an internet application aimed at the elderly. The town served as a metaphor for the various on-line services they could access. In order to go to the message boards, one would click on town hall, for example. The arcade brought you to the games section, the theater to entertainment, etcetera. All images done with 3d Studio Max, photoshop.
Click here for more
OmniCircus intro animation
This is an animation I did on the occassion of the OmniCircus landing a meeting with Tech TV to pitch a TV pilot. I made the animation to run at the start of a demo video as a sort of introduction. Still frames below, click here to see a small version of the final animation.
Paper gears
An experimental form of rapid prototyping on the cheap. I thought it might be a useful middle ground between off-the-shelf (and therefore limited) solutions like Legos and Fischer-Technique, and from-scratch methods, which require lots of time, lots of expensive equipment, and a great deal of highly specialized knowledge.
VRpit website
A website that I created to showcase a few of the OmniCircus characters. I modeled, textured , and animated the models, and used Shout3d to get them on the web.

View the site
PDB file loader
While working for the Pittsburgh Tissue Engineering Initiative, we needed to load PDB (Protein DataBase) files into Maya, but we couldn't find a way to import them. So I wrote a MEL script to do just that.
Interactive cellular automata
This was a kind of visual synthesizer that I created. It implements a simple 1-D cellular automata. Since each cell refers to the cells directly to the left and the right along with itself, there are 8 possible patterns, each of which can lead to either an on or off. Whether or not any given pattern leads to an on state can be changed interactively with the funciton keys, F1-F8. Changing the values on the fly leads to a variety of different patterns.
Prefab city
A friend of mine, Carl Pisaturo and I were talking about a novel idea he had with regards to city building. Carl was thinking that instead of building a city and then digging down for things like subways and etc, why not just create the holes first, by building the city on top of a gridwork of uniform prefabricated concrete forms, which would provide ample room for transportation, plumbing, etc, while leaving more of the above-ground space free for buildings and walkways. I made a mockup of the form in Maya. Click here for a short animation of a three-tiered foundation being built.
Radish wedding card
When my two friends, Kyle Payne and Scott Balieu got married (becoming the Radishishes in the process), I made them a card containing a set of pop-up wedding bells.

More images
StoMo: interactive stop-motion
This was a stop-motion animation project, created along with Chris Graves and Laura Gonzales. We created several different animations, and I linked them together in a choose-your-own adventure format using Director.
Bull Weevil: generative music
I wrote a small program that generated a sequence of randomly selected tones. The pitches are based on the frequencies of an 88-note keyboard, and uses three different kinds of synthesis depending on the pitch.

Grab the demo! (Windows executable)
Grab the music! (MP3)
Bedlam 3d mockup
I was interning with Simon Penny, doing some welding work for a robot based on numerous triangular sections. I created a 3d model to work out the angles, and once I had that, I proceeded to build an interactive OpenGL application to visualize the behavior of the completed system. The robot can be controlled with the arrow keys- the up and down arrows move up and down the heirarchy, and the left and right keys rotate the currently selected section.

See a video of it in action
Former purplestatic.com
The former version of my site.

View the page
Portfolio 02
The second portfolio website I built, on the occasion of applying to grad school in the ACE (Arts, Computation, Engineering) program at University of California, Irvine.

Click here to see the thing itself