Zack Booth SimpsonI am a software engineer, artist, and molecular biology researcher living in Austin, Texas.
I have lived in Austin most of my life. I dropped out of high-school in 1987 and went to work for a software developer creating visual programming languages. In 1990, I joined the game development company Origin Systems (which later became a subsidiary of Electronic Arts) as a game programmer on the Ultima series. I became the Director of Technology there in 1993 and was fortunate enough to have worked on numerous projects including Ultima, Wing Commander, Crusader, BioForge, and finally in helping to start up one of the first large commercial MMPOGs: Ultima Online. I later returned to EA as a Research Fellow where I conducted some of the first research in the economics of online worlds.
In 1995 I left Origin with a group of friends and started Titanic Entertainment. We created one game: the critically-acclaimed but market-flopped game "NetStorm" (Voted by C-Net as "The Best Game of All Time that Nobody Bought"!). In 1997 Titanic sunk fulfilling the prophesy of everyone who told us not to name it that.
In 1998 I started creating interactive art using various forms of camera detection that I invented including calibrated shadow detection and reverse infrared shadow detection (patents pending). Working with input from many friends under the name "Mine-Control", my artwork is interactive, algorithmic, and seeks to place people into environments where they have agency that is both challenging and magical. The natural sciences, especially psychology, ecology, biology, and physics influence all of my work.
In 2000 I moved to Barcelona, Spain for a year. In Barca I spent my time worshiping Gaudi's architecture and (to the dismay of my Catalan-speaking friends) learning Spanish; I also worked with the theatre group La Fura dels Baus creating theatrical digital projections.
In 2004 I began hanging out in the molecular biology department at University of Texas at Austin, in the Marcotte, Ellington, Johnson, and Russell laboratories. I am now employed there as a Fellow of the Center for Systems and Synthetic Biology. I am particularly interested in bio-molecular signal processing and amorphous computation, but I have also done a lot of work on improving instrumentation. My synthetic bio-hacker buddies and I at UCSF and UT engineered the first bacterial film which was published in Nature in 2005 (read about it here at the New York Times or here at National Geographic).
I am interested in a great number of diverse subjects ranging from economics to sculpture and have written little essays regarding many of them. I hope that you find my work useful, if so, please feel free to contact me.
Cheers,
Zack
Engineering Escherichia Coli to see light
The In-Game Economics of Ultima Online (also available in Word97 format)
Understanding Transistors Through Pneumatic Analogy
A Proposal To Stop Unwanted Commercial Solicitation
Amusements
PC Game Interview| Description | Source | Portability | |
| Assert Wrapper | Version: 1.0 | ||
| An improved assert handler that does stack tracing and emailing | [zassert.cpp] [zassert.h] |
win32 unix | |
| Fiber Wrapper | Version: 1.0 | ||
| Provides a wrapper around Win32 fiber API | [zfiber.cpp] [zfiber.h] |
win32 | |
| File Specificaiton Parser | Version: 1.0 | ||
| A portable filename & path parser | [zfilespec.cpp] [zfilespec.h] |
win32 unix | |
| WIN32 Open GL Window Toolkit (!GLUT) | Version: 1.0 | ||
| A glut-like window interface for OpenGL and windows. Written because glut had an unclear license status. | [zglwin.cpp] [zglwin.h] |
win32 | |
| Simple Hash | Version: 1.5 | ||
| A simple, fast, and decoupled hash table using string keys. | [zhashtable.cpp] [zhashtable.h] [zhashtyped.h] |
win32 unix | |
| Hash-based Message Dispatcher | Version: 2.0 | ||
| A hashtable based method of passing messages around. Allows for a header-free method of passing a message from one module to another via direct and indirect dispatching. Includes features for queing messages | [zmsg.cpp] [zmsg.h] |
win32 unix | |
| Socket Wrapper | Version: 2.0 | ||
| A portable, simple, flexible socket fascade. Uses string based addressing for greater simplicity, portability. | [zocket.cpp] [zocket.h] [zaddress.h] |
win32 unix | |
| Perl Compatible Regular Expression Wrapper | Version: 1.0 | ||
| Provides a nice c++ facade around the Perl-Compatible-Regular-Expression (PCRE) SDK. (www.pcre.org) | [zregexp.cpp] [zregexp.h] |
win32 unix | |
| RGB to HSV conversion | Version: 1.1 | ||
| Conversion from RGB space to HSV and vice-versa | [zrgbhsv.cpp] [zrgbhsv.h] |
win32 unix | |
| Serial Wrapper | Version: 1.0 | ||
| A simple serial I/O interface | [zserial.cpp] [zserial.h] |
win32 | |
| Direct Sound Wrapper | Version: 1.0 | ||
| A fascade for DirectSound. Provides basic caching and the ability to play a sample more than once without reloading. | [zsound.cpp] [zsound.h] |
win32 | |
| Win32 Stack Tracking and Symbol Decoding | Version: 1.0 | ||
| stack tracking for win32 | [zstacktrace.cpp] [zstacktrace.h] |
win32 | |
| Perl-like String Splitter and Manipulator | Version: 1.0 | ||
| A Perl-like string/list class. Perl-like functions such as split are provided Very handy when you are doing text file processing. | [zstr.cpp] [zstr.h] |
win32 unix | |
| Telnet Server | Version: 2.0 | ||
| A telnet server which can plug easily into an application and listen on a port. You may have more than one and it can be non-blocking. A simple callback function API is used to alert the app of incoming messages. | [ztelnetserver.cpp] [ztelnetserver.h] |
win32 unix | |
| High Precision Full Scale Timer | Version: 2.0 | ||
| A portable time system that keeps track of time with high precision and UTC range as a double. Includes handy framework for real-time systems and games. | [ztime.cpp] [ztime.h] |
win32 unix | |
| Simple Inline String Constructor | Version: 2.0 | ||
| This is a convenient class for creating inline strings using the familiar printf style without having to declare a separate buffer. Originally written by Ken Demarest | [ztmpstr.cpp] [ztmpstr.h] |
win32 unix | |
| DirectShow Video Capture without the Horrible Grief | Version: 2.0 | ||
| A simple C style interface around the abysmal DirectShow video capture API | [zvidcap.cpp] [zvidcap.h] |
win32 | |
| Wildcard Enumerator | Version: 1.0 | ||
| A class for traversing filename wildcards. | [zwildcard.cpp] [zwildcard.h] |
win32 | |