Halyard Multimedia Runtime

Halyard is our in-house GPLed multimedia engine. It currently runs on Windows, but there is an experimental Mac port. Halyard is based on PLT Scheme, wxWidgets and the Quake 2 Engine. It includes a rudimentary IDE based on Scintilla.

Halyard was used for two in-house projects: Virtual Terrorism Response Academy and Sexual Assault: Forensic and Clinical Management.

At the moment, Halyard is almost entirely undocumented, and the toolset is in heavy flux as we prepare for our next project. Be warned! We have lots of known bugs.

Halyard in action

Here is a reduced-framerate video of scenes from Virtual Terrorism Response Academy. In practice, we measure framerates of around 115 frames per second.

(Ogg Theora and other versions of this screencast.)

We use the wxQuake2 game engine, which is based on id Software's Quake 2. The initial wxWidgets integration work was performed Vadim Zeitlin.

Example project

You may download a standalone copy of halyard-test, our in-house test project. The wiki contains instructions for getting started.

Source code

You can either download source tarballs or use git:

git clone git://imlsrc.dartmouth.edu/halyard

You may also browse the source code using gitweb. Most of our code lives in Common (for the interface-indpendent code), wx/src (for the wxWidgets GUI code), and test/Runtime/halyard (for the Scheme runtime).

If you want to build the engine, start by reading HACKING.txt. These instructions are usually out-of-date, and we appreciate patches.

Mailing list

The mailing list is a medium-traffic developers list. Please send patches inline in plain-text e-mail.


We also have an IRC channel for getting quick feedback on patches or asking simple questions. Just join #halyard on Freenode. We don't have very many developers yet, so there might be a wait before anyone is available.