[plt-scheme] Halyard 2D/3D multimedia engine

From: Eric Kidd (eric.kidd at iml.dartmouth.edu)
Date: Tue Apr 29 13:17:48 EDT 2008

We've been using PLT Scheme at the Interactive Media Lab of Dartmouth
Medical School for nearly 6 years. Over the last two months, we've
been working to release our tools as free software.

Today, we'd like to announce two PLT-related software packages:

 * Halyard, a 2D/3D multimedia engine.
 * Mizzen, an implementation of SmallTalk/Ruby-style objects for PLT Scheme.

We've developed two major pieces of educational software using
Halyard, totaling roughly 150,000-200,000 lines of Scheme code.
Halyard supports audio, video and 2D graphics. It also contains an
embedded copy of the Quake 2 game engine, based on Vadim Zeitlin's
wxQuake2 work.

You can download source code and Windows binaries from here:


Sufficiently adventurous Macintosh programmers are welcome to pull our
git repository and build from source.

And now, for the warnings. :-)

 1) At the moment, Halyard only runs on Windows. We're porting it to
the Mac, but the Mac port has only been running for a week, and it's
still missing lots of important features.[1] And we don't yet run on
Linux at all.[2]
 2) Halyard has very little documentation.
 3) Halyard's Scheme APIs are still subject to change.
 4) Despite our ongoing efforts to the contrary, Halyard leaks quite a
bit of memory in the PLT heap. More on this in a follow-up e-mail.

We'd like to thank the PLT Scheme community for their excellent
work--we couldn't have done this without you.

Share and enjoy!

Eric Kidd

[1] Missing Halyard features on the Mac include: QuickTime, Ogg
Vorbis, Quake 2 integration and the script editor.

[2] Porting Halyard to Linux will probably require modifying Halyard
to use Cairo for off-screen drawing. We rely heavily on using
wxRawBitmap with wxOffscreenDCs, and to the best of my knowledge,
these two classes don't co-operate nicely under X11.

Posted on the users mailing list.