Note: This website is archived. For up-to-date information about D projects and development, please visit

Welcome to Helix

Helix is an applied mathematics routines library. It is intended to be low level-ish and useful for 3D applications developers. For high-level scientific functions there is another D library: MathExtra.

Download latest version:

Questions? Visit project's forum

Project Status

Since the last update to the Helix SVN was made on 2006-03-25 ([12]), this project is probably not active. An updated version of the Helix source is available in the OpenMeshD SVN.

Brief overview

Helix is relatively small right now, and includes following modules:

  • helix.basic: basic routines for real numbers. Module also includes several templates that are used in other modules to provide common functions such as approximate equality, linear interpolation, etc.
  • helix.color: includes structs for color operations in RGB (Red Green Blue), RGBA (Red Green Blue Alpha) and HSL (Hue Saturation Luminance) representations. These structs have methods that implement color-arithmetics and metods that provide ability to pack/unpack their's values to/from uint in different byte-order formats.
  • helix.linalgebra: module mainly oriented to using in 3D graphics applications and includes 2,3,4-D vectors, 3x3 and 4x4 matrices, quaternion, and several global functions for linear algebra related manipulations.

Helix can be configured to use different real number's types used internaly by default (float, double, real), however you always can explicitly specify that type on variable level. So you can use float as internal type for first variable, double for second, and real for third.

How to build

There is no any precompiled library file provided with helix, there is also no any makefile`s or something like that. Which form of helix binary to use depends on your specific needs and so build method left to you. However, building helix is trivial task since all modules aren't depends on any another. One exception is that all modules depends on helix.basic and helix.config, so them have to be build always.


Helix documentation is provided with helix source.

Docs are generated with CanDyDOC which is a fileset for advanced docs generation. For information on CanDyDOC see related wiki page. CanDyDOC is not a part of helix and released in public domain. Obtain latest fileset version for your project: