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.
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.
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 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.
Logging is a very basic functionality for any kind of application. It provides logging levels like info, debug, trace, warning and error.
Apertus' plugins are handled by this module. It creates a new thread for each plugin and takes care of their life-cycle.
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.