• Stars
    star
    113
  • Rank 298,979 (Top 7 %)
  • Language
    F#
  • License
    Other
  • Created about 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Aardvark.Rendering is a high-performance, dependency-aware rendering engine. It is part of the open-source Aardvark Platform for visual computing, real-time graphics, and visualization.

Windows MacOS Linux

Discord license

The Aardvark Platform | Platform Wiki | aardvark.rendering Examples | Technical Walkthrough and Examples | Platform Examples | Gallery | Quickstart | Status

Aardvark.Rendering is part of the open-source Aardvark platform for visual computing, real-time graphics and visualization. This repository heavily builds on datastructures and tools from aardvark.base. The engine can be used standalone or using aardvark.media which provides purely functional ELM style application abstraction.

Alt text

The aardvark rendering engine was the vital spark which finally led to the complete ecosystem of libraries, we now call aardvark-platform. The engine as such was born in 2006. At that time, the engine was written mostly in C# (which was rather unusual in a world of highly optimized C++ engines). Later we more and more moved towards functional programming. In various rewrites we modernized the engine over and over again. Now most code is written in F#. The unique features of the engine are:

  • The engine tries to bridge the gap between efficiency and high-level easy to use abstractions. We used a lot of energy to get out good performance for a lot cases. We did a lot but we look forward to getting better and better in this regard. This video demonstrates the rapid prototyping features of aardvark.
  • It is used in applied research and industry but it is also used as vehicle for basic research.
  • The engine heavily embraces incremental computation. Rendering engines typically use some form of scene description which is then interpreted by the rendering kernel. The interpretation of large scenes quickly becomes a bottleneck. Aardvark by contrast tracks all changes in the scene description and automatically updates affected parts in the incrementally maintained optimization datstructures. The approach was published in a paper An Incremental Rendering VM. The scene graph concept and implementation is published in the paper Attribute Grammars for Incremental Scene Graph Rendering.
  • The engine currently has two backends: OpenGL and Vulkan, runs on netstandard and is basically platform independent
  • Not like classic rendering engines, the aardvark rendering engine does not provide any tooling such as level editors etc. but lives from the aardvark platform as whole which provides tools to create customized tooling for various needs.
  • Aardvark does not understand light, shadows or particular material workflows as in most game engines. Instead, the codebase provides a rich set of tools to customize those features to fit the needs.
  • For application and UI programming we recommend to climb the abstraction ladder up towards aardvark.media which provides easy-to-use ELM style API to both UI and high-performance computer graphics.

We are constantly looking for cool contributions ideas etc! Meet us on Discord

To list some, the most important packages found on nuget are:

  • Aardvark.Rendering
  • Aardvark.Rendering.GL
  • Aardvark.Rendering.Vulkan
  • Aardvark.SceneGraph
  • Aardvark.Application.WPF.GL
  • Aardvark.Application.WPF
  • Aardvark.Application.WinForms.GL
  • Aardvark.Application.WinForms.Vulkan
  • Aardvark.Application.WinForms
  • Aardvark.Application
  • Aardvark.GPGPU
  • Aardvark.Application.OpenVR
  • Aardvark.Application.Slim
  • Aardvark.Application.Slim.GL
  • Aardvark.Application.Slim.Vulkan
  • Aardvark.Rendering.Text
  • Aardvark.SceneGraph.IO

More Repositories

1

aardvark.base

Aardvark.Base is the foundation of the open-source Aardvark Platform for visual computing, real-time graphics, and visualization.
C#
141
star
2

aardvark.docs

Simple examples combining multiple packages provided by the aardvark platform. Each platform repository comes with separate examples -- here we collect overarching examples using for example aardvark.rendering and aardvark.media.
F#
108
star
3

aardvark.media

Serverside, functional (ELM style) front-end and UI for Aardvark, an open-source platform for visual computing, real-time graphics and visualization.
JavaScript
44
star
4

aardvark.algodat

Aardvark.Algodat contains advanced geometric and photometric data structures and algorithms. It is part of the open-source Aardvark Platform for visual computing, real-time graphics, and visualization.
C#
29
star
5

aardvark-concepts

Technical overview of concepts used in the aardvark platform. Demo examples and quickstart is located in the aardvark.docs repository.
F#
16
star
6

aardvark.templates

.NET Core SDK templates for bootstrapping new Aardvark projects
F#
14
star
7

template

Template for Aardvark projects.
F#
8
star
8

OpcViewer

Light and flexible Viewer for OPC (Ordered Point Cloud) visualization and interaction
CSS
6
star
9

fablish

Elm style applications in .NET for composable user interfaces
F#
4
star
10

node-shared-mem

node.js addon for shared memory exposed as js module using napi.
F#
4
star
11

aardvark.compiler.domaintypes

Compiler plugin to automatically create incremental datatypes from immutable ones.
F#
2
star
12

aardvark.fake

Script extensions for FAKE build scripts such as native dependency injection and cabal style add-source functionality
F#
1
star