Skip to content

aardvark-platform/aardvark.media

main
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?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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. aardvark.media 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. aardvark.media 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. aardvark.media follows the same concept but has some distinct features:

  • Just like buttons in elm or elmish, aardvark.media 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 aardvark.media 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.
  • aardvark.media 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 aardvark.media'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.