Front Page Login Post News
Search
images
Fractal
Raytraced
images
Costume
Stilts
Mexico
Catalina
Monterey
Seattle
Projects
HOWTOs
Links
Resume
Leaf
Leaf is the first PCB that I have ever designed and had fabricated. :) It's great fun. This board is a generic sensor/prototype board with a number of voltage regulation options. I can drive up to seven servos simply. It has space for the Analog Devices two axis iMems accelerometer. It also has pads for Agilents HSDL-3000 IrDA transceiver. Finally, it uses the PIC16F688 from Microchip and an RS-485 transceiver to talk on my RLan network (RLan is a project of mine to build a multi-drop network a lot like ethernet but much simpler for hobbyists to use.
Subdiv
Subdiv is the beginings of a subdivision surface renderer. Currently I have a half edge data structure coded up with split and collapse functions for verticies, edges and faces.
Plant
This is a user driven Genetic Algorithm plant evolution program. It uses protien diffusion and concentrations to trigger genes and protien actions in each cell. Currently protiens can cause cells to divide, change color and grow.
Mapper
A utility for demonstrating the math for Julia fractals. It uses the IIM (Inverse Iteration Method) to generate Julia sets in real time. It also lets you select a point and it will show you where that point could go under inverse iteration.
Morbit
Morbit is a program (architecture really) for managing lots of vector operations on datasets that consist of a bunch of points. An early incarnation of which created some of the images in my fractal archive.
Puddle, Water and Rubber(water.tgz)
Puddle is an OpenGL wave equation simulation. It visualizes waves like you might see in a puddle. Well, not really, its to simplified to do that, but they look cool. :) Water and Rubber are a couple different incarnations of the same simulator, they are just playing with transparency and environment mapping.
Raytracers
I have written a couple different ray tracers in my wanderings. Some that "work" in 4D, others that try to run in real time. But mainly its just given me enough experience to add generic ray-object intersection code into my support library. It turns out to be pretty useful.
Render(render.tgz)
Render originated from a school project where we were writing a progressive radiosity engine. I decided to split up the computation and visualization into separate processes that were linked over the network. As the radiosity engine computed new intensity data it would send it over to the renderer which could be used to view the scene in real time. The original render used my own polygon transform, lighting and rasterization code. I have since ported it to OpenGL.
Fireball
Hey, who dosn't like a fun particle simulator? :) This is my Fireball particle simulator. It has gravity and viscosity and placable forces, and barriers that the particles bounce off of. The particles also have a limited lifetime. They can change color over thier life and will respawn when they die. It makes pretty pictures. :)
Spring
Spring is a cute (at least I like it) program for displaying spring mass systems. You can lock a mass so it dosn't move and it reads its objects in from a config file. I generated a couple cool files, a Sierpinsky gasket as well as a Pythagorean tree.
Puzzle
Puzzle is my implimentation of the game that Rus turned me on to. Well, really he started a phenomenon it seems. You should check it out at his site www.devtools.org. I wanted to try my hand at writing a solver for the game, and since I don't know Java it was simplest for me to code the game up in my language and platform of choice.
Socialhacker(socialhacker.tgz)
I have been teaching myself PHP and the Gimp as I write this web page. And I have been learning alot about browser incompatibility. :) I'll probably make my PHP classes and libraries available here.
Beater
Beater is an attempt to understand wavelets and their audio processing abilities. It allows you to view sampled audio in a number of different ways, including wavelet and FFT transforms. The audio can be windowed as well to remove circular convolution artifacts. It can do standard wavelet decomposition as well as wavelet packet analysis.
Space
Space is another experiment. This time in UI design. I hate GUI's, they are never designed the way I think. So I have been working on an infinitely zoomable desktop where everything is persistent. So you don't run applications, you just move to where you last left whatever document you were working on and it will be there in whatever state you last left it. The main idea is that you could probably find your house if I gave you a globe that you could zoom into. I think that might be a good interaction style. Currently the project is waiting for me to finish writing a true type font renderer for it. :) I want to write my own in this case because I don't want it interpreting the byte codes that go with the fonts. That will mess up their animation.
Brain(brain.tgz)
Brain is a project that my brother and I have been working on. It uses GA's to evolve brains that run around inside virtual worlds. Sound familiar. :) I don't know anyone who hasn't wanted to do this. Well, this is an early attempt at making a brain. I really should upload the latest brain. This one evolves a fully connected two layer neural network. It also has connections from each hidden neuron back to each other hidden neuron so if the GA decided it was a good idea it could have some state. It turned out that this gave the GA a HUGE search space and it never converged, Duh. :)
Atom(atom.tgz)
Atom is my collection of C++ code that is needed to pretty much compile anything you might find on this site.
Micros(micros.tgz)
This is a simple x86 operating system that I have been working on. It died along with some other stuff when I had a hard drive crash, but I had a boot disk that I have been able to resurrect most of the code from. :) It can boot from a floppy and get into 32-bit mode. It has some simple console drivers and threading.
DLL(dll.tgz)
DLL is a program for linux that will load and relocate a Windows DLL file and let you browse the contents using a curses interface. I initialy wrote it to gain access to the Snappy(tm I think) image capture device's DLL's. That project was never finished, but this code is pretty usefull by itself. You can see what DLL's the DLL your viewing referneces, and what functions it requests from them. You can also see what functions it exports. If I get some time I will add the binding code so you can call functions out of the DLL from linux.
Random Tree
Random Tree is an experiment that I conducted recently. I wanted to know how the worst case lookup time varied with the number of nodes inserted into a binary tree if the keys were randomly generated. Its kinda interesting. It turns out that the longest path is still log(N), just to a base of something like 1.3 instead of 2 for a balanced binary tree.
Servo
For some reason it was more trouble than I thought it should have been to access the serial port under Linux in a raw mode. This program does that and accesses some RC hobby servos connected to it throughout a Scott Edwards Mini Serial Servo Controller. Great little toy if you don't want to make the hardware yourself.
HC11
This is a collection of programs I have written for the MC86HC11 family of processors. It includes some simple test programs as well as a PIC programmer that I made. I will add to this a preemptive-multitasking kernel that I wrote for my robotics projects if I can find a copy of it. Another death due to the hard drive crash. :( I think I have an HC11 that still has the code programmed into it though. :)
PIC
I also play with the PIC and this is a collection of programs that I have written for that family. Currently only one of my programs is up, its one that can generate multi-synch VGA video from software. Its pretty cool to be able to generate the video on the fly, but not really all that useful.
Quadraped
This is a robot that I made my senior year at CMU. Its a four legged walker that skid steers. It doesn't have any sensors so its kinda boring when it comes to dynamic anything.
Caterpillar
This was another robot I made senior year. It was for my senior research thesis. I used PBIL (Probabilistic Incremental based Learning) which is like genetic programming to evolve a gait for a planar crawling robot. It has eight servos, one at each joint, and actually showed up on the Discovery channel. I trained it to crawl in a physical simulation and then transfered the gait to the physical body.
Spectral Miasma(spectral_miasma.tgz)
Here it is TNT. Let me know if you have any problems.