Repository navigation
Vision and Objectives
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:
- 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.
- 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.
- 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.
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.
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.
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 →
LplPlugin — Zero-Copy Real-Time VR Engine | Author: MasterLaplace | License: GPL-3.0 | Source Code
This project is a marathon, not a sprint.