Skip to content

Vision and Objectives

MasterLaplace edited this page Jul 14, 2026 · 5 revisions

Vision & Objectives

Research Mission

LplPlugin is a modular, deterministic simulation engine designed as an experimental research platform for FullDive Virtual Reality — the convergence point between ultra-low latency computing, closed-loop Brain-Computer Interfaces, and real-time embodiment in virtual environments.

The project investigates three fundamental research axes:

  1. Deterministic Ultra-Low Latency Computing — Achieving sub-millisecond tick-to-render latency through zero-copy kernel-level networking, lock-free data structures, and GPU-accelerated physics.
  2. Massive Real-Time Simulation — Maintaining 60 Hz stability with 100K+ entities via SoA memory layouts, spatial partitioning (Morton codes, dynamic octrees), and heterogeneous CPU/GPU execution.
  3. Closed-Loop Neurofeedback Integration — Bridging Brain-Computer Interfaces (EEG/EMG, OpenBCI) with the simulation engine through Lab Streaming Layer (LSL) synchronization, enabling real-time neural state → virtual embodiment mapping.

Scientific Context

Current game engines (Unity, Unreal) introduce dozens of abstraction layers, each adding latency. For immersive neuro-VR, where the sensorimotor loop must be < 20ms end-to-end, this is unacceptable. LplPlugin eliminates unnecessary abstractions by starting from the Linux kernel (custom kernel module for UDP zero-copy) all the way to the GPU (Vulkan rendering + CUDA physics), providing a transparent, measurable, and benchmarkable pipeline.

The BCI integration (via the bci/ module) implements neurofeedback metrics derived from the state of the art:

  • EEG Signal Stability (Sollfrank et al., 2016) — Riemannian geometry-based distance metrics for classifier confidence assessment.
  • Muscular Relaxation State (Schumacher et al., 2015) — High-frequency spectral analysis (40-70 Hz) for EMG artifact detection.

These metrics are designed to be compatible with the OpenViBE ecosystem and the SEAMLESS research team's paradigms at Inria.

Module Architecture

The engine follows a strict flat modular architecture — 20 independent static libraries orchestrated by xmake:

  • Foundation (core/, math/, memory/): Platform types, fixed-point math, allocators. No engine dependencies. Pure C++23.
  • Data Structures (container/, concurrency/): Lock-free hash maps, Morton encoding, thread pools, spin locks.
  • Simulation (ecs/, physics/, gpu/): Entity Component System, world partitioning, collision, CUDA kernels.
  • I/O (net/, input/, serial/): Network transport, input management, state serialization & deterministic replay.
  • Presentation (render/, image/, scene/, audio/, haptic/): software + Vulkan renderer, 2D imaging, scene graph, spatial audio, haptic/vestibular feedback (stubs).
  • BCI (bci/): OpenBCI driver, signal processing, Riemannian geometry, neural metrics, calibration.
  • Platform (platform/): host backends (clock/display/gpu-memory/input) for userspace-Linux and freestanding-kernel targets.
  • Tooling (bench/): benchmark harness.
  • Facade (engine/): Top-level composition of all modules, providing the game loop.
  • Kernel (kernel/): Linux kernel module for zero-copy network I/O.

The previous-generation prototype has been archived out of the tree (kept for reference and feature-parity checks) rather than shipped as a _legacy/ directory.

Predecessor: Flakkari

Flakkari was a previous project featuring a server-authoritative architecture with dynamic packets. It laid the foundations for the network protocol and data-oriented philosophy at the heart of LplPlugin.


Next: Philosophy & Principles →

Clone this wiki locally