 |
 |
 |
 |
 |
 |
 |
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. |
 |
 |
 |
 |
|
|
|