Projects  Send email to
(this without the x or z: zxmx@zxmxwsherman.com)

Please make sure there is an appropriate subject line.

[Home] [Projects] [Photography] [Me] [Resume] [Amateur Radio]

Latest Personal Project:  
ProjectZ.

ProjectZ is a rewriting of many other project fragments.  The current emphasis in ProjectZ is realtime computer graphics; specifically it geared towards game development.  However, as a side effect, this project has 'accessories', such as standard data structures (lists, vectors, bashtable etc) which may be useful for other projects.


2008-Present:

 
At Gracenote I have worked on different projects here, but my main focus is on EyeQ and ACR. I can't really say a lot here, other than in this last year I've learned a lot about making software more portable. I have to support 32 bit, 64 bit, little endian, big endian, Windows, Mac, Linux, and it still has to compile and run on other random embedded CPUs.  

I have not had a lot of time to explore personal projects, with the exception of my most recent project, ProjectZ.

2006-2008:

During this time, most of my projects were developed for Alpha Scientific, and I can't say much about them here.  I can say there were for Indiana State University, EBCO, Lawence Berkeley National Lab, Texas A&M, Cepri, MEMC, Triumf, NASA, FSU, Ferrotec, and Jefferson Lab.  I have projects I've worked on running in the US, Korea, China and Taiwan.

Throughout this time period
Inside an Alpha Scientific Electronics power supply Tetrax, a robot made of Legos


2002-2006: Crazy Berkeley

Most of this time I was at UC Berkeley, but still found time to work on some personal projects.



School Projects Personal Projects
Playstation 2 Linux 3D Renderer (click for larger images)



Raytracer (click for larger images)



32-bit CPU implemented in a FPGA:  I don't have any cool screenshots of this; it wasn't fancy or graphical!  [Course link.  Not the same semester as me, but same project].

Java Python Compiler
: A compiler written in Java, that accepts a subset of the Python language (called Pyth), and emits x86 assembly.  It was split in 3 projects:
1. Parser/Lexer
2. Analyzer
3. Code Generator

Code Visualizer
 
A simple visualization program for stack-based code.


3Mod

A simple experimental 3d modeling program with bezier surfaces, polygons, and cartoon outlining.

AX

A virtual machine interpreter, with OpenGL and audio support.  The VM is stack-based, and runs a custom made programming language.



2002

Slither, a snake-like robot.  (warning this is an old unmaintained site) - This project was inspired by the sinusoidal motion of snakes, and was an attempt to duplicate their locomotion with robotics. In the future, I would like to spend some time developing better a better snake.  This paper I wrote on the project was published by the AAAI.

Interactive C 4.0 - I was hired by the KISS Institute of Practical Robotics to port their Interactive C interpreter to the Lego RCX microcontroller. Interactive C originally ran on only 68HC11 based boards, such as the MIT Handy Board (Note: a similar board, known as the Finger Board can also run the Handy Board version of the interpreter.) The Mac version of IC included a Handy Board simulator. So, what I did was port the Mac version of the Handy Board simulator to the Lego RCX. A lot of useful information on the RCX was obtained from RCX Internals. The RCX version of the interpreter was included with the release of Interactive C 4.0. The lastest version of Interactive C can he download from their site here. It runs on Mac, Windows, and Linux.

2000

Flymill software for a Flight Mill-   Sue Opp at CSU Hayward (currently named CSU East Bay)  was working on a project that needed to measure the flight time of medflys. She had medflys attached to a rod, which was allowed to freely rotate (like a propeller). As the flies flew, they would spin in circles, in this device named a flight mill. My dad built an interface allowing a infrared reflectance sensor to be connected to a PC through the parallel port*, to signal when a fly has completed a lap. I wrote the software (called Flymill) which logs the flightmill data.

* The Parallel port is an ancient device once used to connect printers to computers.

Pre-2000

Mostly a bunch of QBasic junk!  I got involved in Botball as a freshman at Tennyson High School.  It was robotics that introduced me to the C programming language.  (Specifically an old version of Interactive C).   After this, I played around with Turbo C and Borland C++.  Now  I use Visual Studio Express and kDevelop for all my personal projects.



All content (C) 2001-2011 Mark W. Sherman, all rights reserved. (Unless otherwise noted.)