Repository navigation
Roadmap
MasterLaplace edited this page Jul 14, 2026
·
9 revisions
- ECS + kernel Ring Buffer proof of concept
- Basic CUDA kernel (gravity + semi-implicit Euler)
- Pinned Memory (zero-copy CPU↔GPU)
- Race conditions resolved (atomics, double buffering, sparse set)
- Kernel module (LKM) with direct packet injection
- Dynamic packets (
[EntityID][CompID][Data]...) - Generic component dispatcher
- Validation: 62.55µs latency, 0% loss, 495 pkt/s
- Refactor from monolithic
engine/+shared/+plugins/to 20 flat modules - Migrate build system from Make to xmake (C++23,
-fno-rtti,-fno-exceptions) - Apply SOLID principles, Doxygen documentation,
.inlinline files, guard clauses - Merge
plugins/bci/into rootbci/module with full DSP pipeline - Integrate a Vulkan backend into the
render/module (alongside a software rasterizer) - Create
engine/facade aggregating all module dependencies - Port CUDA physics from legacy
PhysicsGPU.cutogpu/module (PhysicsKernel.cu) - Port kernel module install/uninstall to xmake custom targets (
kmod-*) - Implement automatic socket fallback when kernel module unavailable
- Decouple GPU compute (
--cuda) from the renderer (--renderer) for headless server
- Complete authoritative server (
apps/server/main.cpp) - Client with client-side prediction
- EntityRegistry (sparse set + generational IDs)
- SystemScheduler (DAG, component conflict analysis, PreSwap/PostSwap)
- Global double buffering (WorldPartition + Partition)
- Octree memory optimization (std::allocator + reserve)
- Empty chunk garbage collection (inline GC,
FlatAtomicsHashMap::remove()) - ThreadPool for SystemScheduler (Fork-Join pattern, parallel stages)
- Unified Network class (driver + socket fallback + dispatch → PacketQueue)
- Bidirectional kernel module (TX ring buffer + kernel thread + ioctl wake)
- Sleeping entities (active/dormant) to save computation
- Real Octree integration (broadphase collision)
- SIMD Physics (AVX/SSE vectorization)
- Dirty List (migration optimization: check only moving entities)
- Advanced client prediction (Hermite splines)
- Tests with simulated network latency (50-200ms)
- Anti-tunneling: raycast across chunks to detect fast entity tunneling
- Chunk activation/deactivation (
_activeflag): selective spatial update
Success criteria: 1000+ stable entities at 60Hz with CPU physics.
This phase develops the
bci/module as an experimental research vector, aligned with the SEAMLESS team's paradigms at Inria.
- OpenBCI Cyton driver — 8-channel, 250 Hz, USB serial, lock-free ring buffer
- Per-channel FFT with Hann window (256 pts) — PSD per channel
-
SignalMetrics— Schumacher$R(t)$ , sliding RMS, baseline calibration (12 tests ✅) -
RiemannianGeometry—$\delta_R$ affine-invariant,$D_M$ Mahalanobis, Jacobi (12 tests ✅) -
NeuralMetrics— normalised structfrom_state(),muscle_alert - BCI module architecture (sources, DSP pipeline, metrics, streams)
- Enable BrainFlow, LSL, Eigen external dependencies in xmake (merged into the official xmake-repo)
- LSL Outlet — Broadcast corrected EEG timestamps
- [~] Auto-calibration phase (30s rest → compute
baseline_R) — in progress (bci/calibration/) - OpenViBE Box Algorithms —
CBoxAlgorithmStabilityMonitor,CBoxAlgorithmMuscleRelaxation - Visual feedback loop conditioned on
NeuralMetrics - Neural signal mapping (motor imagery decoding) → ECS components
Success criteria: Closed-loop BCI pipeline with enriched feedback running < 20ms e2e.
- Broadphase collision via octree + adaptive brute-force (GPU BVH if possible)
- Narrow-phase AABB (GJK, simplified SAT)
- Collision resolution: impulse-based + positional correction
- Benchmark: 100k+ entities @ 60 FPS stable
- GPU streaming with CUDA streams
- State compression (delta, bitpacking)
- Session management (auth, per-client stats, RCU)
- Server Meshing (spatial sharding, chunk migration)
- Inter-server ghosting: migrated entities remain readable on the old server during transition
- TTL for unloaded chunks: time in RAM before serialization (5-30s?)
- Fast binary serialization format for
offloadChunk() - Dynamic load balancing
- NUMA-aware allocators (if multi-socket server)
Success criteria: 100k+ entities maintained @ 60 FPS stable.
- Photorealistic rendering (NeRF or PBR pipeline)
- Haptic feedback (via
haptic/module) - Spatial audio (via
audio/module) - Custom RTOS for strict determinism
- GPUDirect RDMA (NIC → VRAM direct)
Success criteria: Functional FullDive prototype with multi-modal sensory feedback.
← Executables | Next: Future Ideas →
LplPlugin — Zero-Copy Real-Time VR Engine | Author: MasterLaplace | License: GPL-3.0 | Source Code
This project is a marathon, not a sprint.