
Hopkins Marine Station (Oct 07 - Present) As the sole engineer in a biomechanics lab I worked closely with scientists to design and build an embedded computer to measure intertidal wave forces for parameterizing models of organismal responses to environmental stressors. This work included:
Anton's Toys and Games (Mid 06 - Sept 07) I formed a sole proprietorship to design:
NVIDIA (Jan 03 - Feb 06) Performance Architect in the GPU Architecture group. I developed and maintained:
Green Hills Software (Sept 98 - Aug 02) INTEGRITY systems software engineer. INTEGRITY is Green Hills' Real Time Operating System. While on the INTEGRITY project I developed from concept to shipment:
MetaCreations Corp. (Feb 98 - Aug 98)
Green Hills Software (June 97 - Feb 98)
Augmentech Inc. (Summer 96) While developing a wearable computer to track user location I:
M+ind (Summers 93, 94, 95)
| BallPit | An Android physics simulation application. Uses accelerometer and touch screen user inputs. OpenGL sprite rendering engine. |
| Morbit | A plugin architecture for fast evaluation of scripted vector operations. Currently used to evaluate function trees for fractal renderings. |
| Signal Processing | Implemented standard and packet wavelet decomposition routines as well as FFT to analyze music. |
| Ray Tracer | Simple 2, 3, and 4 dimensional ray tracers and casters. Spatial subdivision as well as intersection stacks were used to improve performance. Voxel based terrain renderers. |
| Particle Systems | Many fractal and physical particle system projects, including interactions with pre-rendered scenes, and geometry databases. |
| Reaction Diffusion | Simulation of reaction diffusion chemical processes. It generates natural looking textures. |
| Radiosity | Progressive radiosity engine. The actual rendering was done on a second computer that used my polygon renderer for a real time fly through as the radiosity was updated. |
| Buggy | A physically simulated driving program. It uses OpenGL, a freely available rigid body simulator, and my scheme interpreter. Multiple cars can be created, each with a camera that trails behind it. |
| Polygon Renderer | High performance polygon rendering engine. Used for physical system visualization. |
| Subdivision | Loop subdivision surface rendering engine using C++ templates and OpenGL. |
| Physical Simulation | Spring-Mass based physical simulation of deformable fractal objects. Used Runge-Kutta ODE solver for stability. |
| Neural Networks | Developed a Neural networks package that was capable of back propagation as well as competitive learning. It was used to bet in an AI bridge player, and I used it for face and speech recognition. |
| Layout | A 2D constraint based widget layout engine. |
| Micros | 32-bit operating system for Desktops. Wrote boot code and multithreaded protected memory scheduler and context switch code. Included device driver code for keyboard and display. |
| Spectral Miasma | Linux graphics and sound demo written with another programmer and musician. |
| Quadruped | A 12 degree of freedom four legged walking robot. Programmed with a static gait that uses skid steering to turn. |
| Caterpillar | A segmented caterpillar robot that could crawl in a straight line. Used to develop crawling gaits. Trained the caterpillar robot to walk using Probabilistic Based Incremental Learning (PBIL is similar to Genetic Algorithms), in a physical simulation of the robot and its environment. Appeared on the Discovery channel. |
| Balancer | A two wheeled robot that uses closed loop PID control to balance. |
| Mobot | Line following robot that competed in an annual robotics competition at Carnegie Mellon University. |
Relevant Coursework: Computer Graphics I (Witkin) and II (Heckbert), Multivariable Calc., Linear Algebra, Algebraic Structures, Numerical Methods, Discrete Math, Operating Systems, Algorithms, Programming languages, Machine learning I and II, Parallel Distributed Processing (McClelland)
Languages: C, C++, D, Cg, assembler (x86 (MMX, SSE), MIPS, PPC, Arm, PIC, AVR, various 8-bit), Lisp, Scheme, Python, PHP, Perl, MySQL, JavaScript
APIs: X Windows, Posix (including pthreads), OpenGL, OpenEXR, libpng, GGI, DirectFB, INTEGRITY, Sockets, and Register level access
Software Development Platforms: Linux, Solaris, Windows, DOS, Firefox (DHTML, XPI)
Hardware Development Platforms: PC, CompactPCI, VME, PC104, GPGPU, and various SBCs