This is a list of the open source projects that I wrote, co-wrote, or maintain. There are others that I didn't write myself but have contributed to.
Inform is a design system for interactive fiction based on natural language. It’s tightly integrated with its own GUI development environment. When it was first released, this GUI was only available for Windows and Mac. I built one for Linux, which was eventually adopted as the project’s official Linux GUI. (This was what got me interested in open source in the first place!)
C GTK Glk
Co-designed with my friend and former neighbor Marijn van Vliet, this project is a GTK implementation of the Glk I/O standard for interactive fiction. We designed it with two purposes: powering the embedded viewer in Inform, and viewing interactive fiction on the iRex iLiad e-reader.
Jasmine for the Gnome platform
A laser beam profiler that also works on cheap webcams
Python NumPy SciPy Traits Chaco
Commercial laser beam profilers are expensive although they perform fairly simple calculations and often have horrible user interfaces. An open-source solution designed for inexpensive hardware benefits optics researchers, engineers, and hobbyists everywhere.
Control lab instruments in Python
Python NumPy VISA
REP makes it easy to interface your lab instruments with your data analysis and visualization tools — Python, of course! It’s a great alternative to LabVIEW if you’d rather script your experiments than fiddle with wires and blocks.
Write your papers collaboratively in Google Docs, then format them in LATEX
Vala XSLT GTK LATEX GData API
It’s the 21st century. LATEX may be the best possible typesetting system for scientific articles, but scientists don’t want to type markup by hand anymore. These days, we want tools that allow us to write easily and collaboratively. Articulate lets you write your articles in Google Docs, while still using LATEX’s excellent facilities for math formulas and sticking to the principle of WYSIWYM. Then, convert them to LATEX with only a few clicks, ready to typeset and submit to a journal!
A tutorial that goes beyond the basics
C Mallard GTK Autotools
I wrote this tutorial for people who have passed the stage of learning how to build user interfaces with GTK, and want to know how to program more advanced, real-world applications.
Import RTF and Plist
C XML RTF GTK
This library for interoperability between Mac OS X and GTK programs is a spinoff project from Inform. It reads RTF documents and XML Property Lists, two formats which are used in Mac OS X’s Cocoa API.
Python bindings for Meep that you can actually use
Python C++ NumPy
There are Python bindings for Meep, MIT’s finite-difference time domain electric field simulator, but in my opinion they don’t take enough advantage of what Python offers — they require (shudder) manual memory management! This is a proof of concept I wrote, to demonstrate that it really is possible to use Meep in a Pythonic way.
Calculate the wavelengths in a coherent anti-Stokes Raman process
I wrote this tiny utility while I was working on my Masters’ thesis in order to aid myself in quickly calculating back and forth between wavelengths, frequencies, and wave numbers.