Heilan X3D Browser
Heilan's mascot: Yakul

Heilan is a cross-platform OpenGL X3D browser written in C++ and designed for audiovisual performance. Specifically, it forms the environment within which I developed an audiovisual instrument (Ashitaka) for my PhD. As such, it has a number of features not commonly found in X3D browsers:

  • Low latency audio courtesy of PortAudio (ASIO, DirectX, MME on Windows; Jack, ALSA, OSS on Linux; CoreAudio on OSX).
  • A 1st order B-format Ambisonic audio engine, allowing for full 3d sound, capable of accommodating virtually any speaker configuration.
  • Open Sound Control support for all nodes, allowing a node's attributes to be manipulated in realtime, potentially by multiple users.
  • A multi-threaded audio engine, able to split off different nodes' audio processing into separate threads (and potentially, separate cpus/cores). This can be configured by the scene author.

If you're not sure what an X3D browser is, you might want to check out the quickstart guide.

Heilan aims to conform to the X3D Interchange profile (and in the future, the Interactive profile), with additional support for certain nodes such as Sound and NurbsPatchSurface (see here for a list of supported nodes). It may be extended with libraries which can provide extra nodes, navigation types, and sound file loaders. It comes with a library containing my own experimental audiovisual nodes, and a couple of extra navigation types.

The browser itself is a command line program designed to be used offline (there's no browser plugin or http/ftp support), though there is a GUI frontend available as well (included in the binary package). Both are open source, licensed under the GPL.


Developed by Niall Moody at the Centre for Music Technology, University of Glasgow.