a high-level language and compiler
for graphics processors

Conal Elliott, Sunday January 09, 2005

Vertigo is a high-level embedded language and compiler for computations on graphics processors (GPUs). It generates C# code and vertex shader assembly code.  Here is paper.

Vertigo was work in progress when I left Microsoft Research, but with Microsoft's kind permission, it was made publicly available as a Microsoft Research download.  That version worked with DirectX 9 beta 1, so it is probably not usable by anyone.  Look here (demos) or here (source) for a version that works with the released DirectX 9 and try running the exe files in Vertigo\Demos.  (The demos are generated by executing main from the source file NormalGeom.hs.)  Please note the license.

You can run the demos without a C# or Haskell interpreter/compiler.  If you want to compile up examples of your own, you will also need the following::

The implementation is much in the spirit of Pan's, though the rewrite rules in Vertigo do more with associativity and commutativity.  I hope to make a new implementation that subsumes both and does audio synthesis as well.

Here are pictures of some examples.  The real ones are interactive.