Apertus
  • Documentation
  • Introduction
    • Definitions
      • Coordinate systems
      • Primitives
    • Features
      • Basic
        • Nodes
        • Light sources
        • Geometries
        • Primitives
        • Texts
      • Environment simulation
        • Water
        • Sky
        • Terrain
      • Browser
      • UI technologies
        • HTML UI
        • Presentation
        • Gallery
      • PointCloud
      • 360
        • 360 Images
        • 360 Videos
      • 3D Model Formats
      • Scene Sharing
        • Multiplayer
      • Video and Voice Chat
      • Hand Tarcking
        • Leap Motion
      • Head Tracking
        • Fob
      • Displays
        • Multi Display
        • Cave System
        • HMDs
      • Industry
        • IoT, and Sensors
        • Robot monitoring
        • Robot calibration
  • Developers
    • Development Cycle
    • Architecture
      • Project folders
      • Configuration ecosystem
    • API
      • C++ API
      • JavaScript API
      • HTTP REST API
    • Getting Started
      • Creating a plugin
      • Creating a sample
  • Contribute
    • Report a Bug
    • Suggest a Feature
  • Tutorial - How to visualize CAD models in VR
    • Introduction
    • Import CAD Models
    • Convert CAD Models
    • Create Low-poly from CAD Models
    • Create Photorealistic CAD Models
  • Plugins - Photorealistic Render
  • Plugins - Physics
  • Tutorial - How to visualize Tensorflow training in VR
  • Tutorial - Virtual Learning Factory Toolkit Gamification
  • Overview
    • Introduction
    • Architecture
    • Use Cases
  • Installation
    • Windows
    • Android
      • How to use
      • Writing an application
    • MacOS
  • Build
    • Windows
      • How to build the source on Windows
    • Android
    • MacOS
  • Plugins on Windows
    • Photorealistic Render
      • How to use
      • How to configure
      • Features
      • Sample
    • Physics
      • How to use
      • How to configure
      • Features
      • Samples
      • Demo video
  • Plugins on Android
    • Java Native Interface
      • How to use
      • Extending the API
    • Filament render
      • How to use
      • How to configure
      • Developers
  • Plugins on MacOS
    • Untitled
  • Samples on Windows
    • Deep learning
      • Untitled
      • Use the Fastai-PythorchVR Sample
      • Use the HTTP API
      • Create HTTP Requests from Python
      • Demo video
    • Virtual Learning Factory Toolkit Gamification
      • Installation
      • Lobby - User Interface
      • Local - User Interface
      • Student - User Interface
      • Teacher - User Interface
      • VLFT Gamification Session
      • VR Mode
  • Virtual Learning Factory Application
    • Installation on Windows
    • Installation on Apple
    • Lobby
    • Single Player
    • Multi Player - Student
    • Multi Player - Teacher
Powered by GitBook
On this page
  • Core
  • System
  • CoreConfig
  • SceneManager
  • EventManager
  • LogManager
  • PluginManager
  • Plugins
  1. Developers

Architecture

PreviousDevelopment CycleNextProject folders

Last updated 6 years ago

The core of the engine is coded in C++, which also determines the native . is also available , which gives You the opportunity to real-time “live code” your scenes through a JavaScript console, while You are inside the 3D scene.

Core

The core of the engine is very sleek, so it can run on any device (desktop, notebook, tablet, mobile phone, even Raspberry Pi). It consists of core modules (shared libraries) which provide base functionality like managing scene, network-synchronization, configuration-, event-, log- and plugin-handling.

System

This core module takes care of the initialization process in ApertusVR. It starts all core modules like Scene, SystemConfig, EventManager, etc. ApertusVR can be started from any program calling System's Start() method.

CoreConfig

SceneManager

This is the database where 3D scene elements (nodes and entities) are live. It implements the base APE types ie. Node, Light, Camera, etc. It also responsible for network synchronization between participants.

EventManager

EventManager is handling Events in ApertusVR. An event can be a creation of a geometry or a change in the position of a node. Plugins are able to subscribe for these events.

An Ape::Event holds information only about: - SubjectName (the unique name of the node, entity, etc.) - Type of the event (NODE_CREATE, CAMERA_FRUSTUMOFFSET, etc.) - Group of the event (node, geometry, light, camera, etc.)

LogManager

Logging is a very basic functionality for any kind of application. It provides logging levels like info, debug, trace, warning and error.

PluginManager

Apertus' plugins are handled by this module. It creates a new thread for each plugin and takes care of their life-cycle.

Plugins

Plugins are extending the functionality of the Core, according to your needs/choice. Plugins do not know anything about any other plugin, they only use Apertus interfaces.

This module loads ApeSystem.json, which contains configuration settings for the core modules. For more details, please check the page.

Configuration Ecosystem
JavaScript binding
C++ API