Skip to content

How to use Aardvark

Harald Steinlechner edited this page Dec 28, 2018 · 7 revisions


The aardvark platform consists of ~12 core and community repositories hosting more than 70 packages. Thus, the term "using aardvark" reaches from using aardvark utilities up to using the full power of the platform for commercial and industry projects benefiting from experience, research results and libraries originated from the community and ecosystem. Next, we give severeal answers on how to use aardvark...

How to contribute

Additionally to standard fork/pull request system, we provide discussion platforms on gitter.

Using aardvark utilities, algorithms and data-structures

nuget currently lists ~70 aardvark packages. You can simple use them with nuget directly or paket. All packages are published in netstandard 2.0 which means they can be used from C#/F# or any other language running in the dotnetcore/netframework. The environment and all base packages are open source (Apache 2.0 licenced) and platform independent. Aardvark.Base is just like any other nuget package, all standard. docs on how to use f# with vscode for example can be found [here].(

The aardvark.base repository includes packages for:

  • Aardvark.Base Math, Math data types such as vectors, matrices, transformations and much much more....

    math stuff

  • Aardvark.Base.FSharp: Algorithms and datastructures, Persistent data structures, Attribute Grammar Implementation, Native Interop helpers, AMD64 assembler,....

    sharp stuff

Using aardvark's incremental system

Although also the incremental system can be used using C# see here, we recommend using F# at least for modules focusing on incremental evaluation and rendering.

In the aardvark.base repository, two packages are concerned with incremental computation:

  • Aardvark.Base.Incremental: our incremental system which is the main driver for our high-performance rendering engine.....

    mod system usage

  • Aardvark.Base.Runtime interesting tools such for code generation/JIT etc

Using aardvark for graphics or general purpose GPU programming

Clearly, for graphics we need proper graphics drivers. On linux, we additionally require runtime libraries, for development typically installed using the disto's package manager, see here.

Relevant packages are Aardvark.Rendering.* in the aardvark.rendering repository, a simple demo application can be found here. Either you reference all packages as you prefer (using nuget or paket) or alternatively you can also use our template project to create a fresh project with all references already added to the project.

All related packages are licensed under Apache 2.0.

  • Easy to use scene setup and windowing framework


  • High performance rendering for 3D scenes


  • FShade powered composable shaders and GPUGPU


Using aardvark for combining modern purely functional graphics and UI with high performance rendering

Aardvark.Media, Apache 2.0 licensed provides a purely functional ELM-style frontend for aardvark applications. The purely functional approach greatly improves flexibility and rapid development capabilities for applications with user interaction. The unique point of is the combination of high-level purely functional API and high-performance rendering capabilities of aardvark.rendering.

  • Use aardvark rendering engine in web browsers


  • mix 3D content with browser content


Using Aardvark for innovation in graphics related applications in commercial settings

There are a couple of libraries in the platform, e.g. out-of-core data-structures, photogrammetry or tools for processing volume data all licenced under AFERO dual licence. [todo stefan]


Using Aardvark libraries in research and academia

Since large parts of the libraries are Apache 2.0 the interesting parts are repositories under dual licensing sheme. Here we provide special licensing options/agreements.


Using Aardvark for novel application fields, research projects or commercial projects whenever customization is needed.



Clone this wiki locally
You can’t perform that action at this time.