Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Windows MacOS Linux

Discord license

The Aardvark Platform | Platform Wiki | The Platform Walkthrough Repository | Media Examples | Gallery | Quickstart | Status

Aardvark.Media is part of the open-source Aardvark platform for visual computing, real-time graphics and visualization. works on top of aardvark.base and uses aardvark.rendering as (3D)-rendering engine:

Alt text

3D graphics, user interfaces and complex interactions on top are challenging and time consuming in classical programming models. High-level abstraction, immutable data and functional programming concepts on the other hand boost productivity. brings together high-performance applications and purely functional application programming. The ELM architecture has become popular in web-development and for user interfaces (e.g. ELM, Fabulous, Elmish,...) and makes declarative, reliable UI and app development easier. follows the same concept but has some distinct features:

  • Just like buttons in elm or elmish, supports interactions with objects in 3D renderings. Rendering is done by the highly efficient aardvark.rendering engine.
  • Other systems execute the view function after each modification to the model. In the changes are computed on the model (which is typically much smaller than the generated UI) itself. aardvark.base's incremental system takes care of reexecuting specific parts of the view function. This takes the burden of diffing from the HTML engine, but more importantly allows to incrementally update optimized scene representations for 3D rendering. The rational behind this is that the model is typically much smaller than the generated UI, or more severely much easier to diff than 3D geometry.
  • currently runs on netcore and serves a website using suave. The rendering part is done in fullblown OpenGL/Vulkan in the aardvark rendering engine. Applications typically use the electron based aardium for client side application deployment or full server side application deployment. We work on client-side deployment using fable as well, but's server side approach has also advantages and particular usecases.

More info can be found in the Platform Wiki, and more particularly here, here, and here.