Aardvark.Base consists of multiple platform-independent packages (netstandard2.0) delivering essential tools for visual computing, such as vectors and matrices, as well as many algorithms and data structures. It is the lowest-level foundation of the open-source Aardvark Platform for visual computing, real-time graphics and visualization:
||a unified ELM-style UI framework for both 2D and 3D|
||powerful incremental rendering engine|
||math, geometry, algorithms, data structures|
aardvark.base includes many packages, e.g.
- Aardvark.Base: matrices, vectors, geometry, basic algorithms and data structures.
- Aardvark.Base.FSharp: stuff you always need, optimized persistent (e.g. hash maps), ephemeral data structures (e.g. SkipList) as well as spatial data structures (e.g. bounding volume hierarchies). The package also contains an attribute grammar system exposed as an embedded domain specific language. We use it in aardvark.rendering for our scene graph system, as described in Attribute Grammars for Incremental Scene Graph Rendering.
- Aardvark.Base.Incremental: incremental data structures similarly but extended to Hammer et al.'s paper Adapton: Composable, Demand-Driven Incremental Computation. Additionally to modifiable cells, we have more sophisticated optimized incremental data structures such as adaptive sets, maps etc. and computation expression builders to conveniently work with.
- Aardvark.Base.Runtime: Crazy tools such as an AMD64 assembler used for incremental Just In Time Compilation as used in aardvark.rendering
- Aardvark.Data.Vrml97: legacy Vrml97 parser
- Aardvark.Geometry: currently a rather small set of F# geometry tools. Most functionality regarding geometry lives in base and algodat
All packages are distributed under the Apache 2.0 license.
For support please have a look at Aardvarkians.