Skip to content

Roadmap

MasterLaplace edited this page Jul 14, 2026 · 9 revisions

Roadmap

Phase 1: Core Engine Foundations — ✅ COMPLETED

  • 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

Phase 2: Architecture Refactor & Modularization — ✅ COMPLETED

  • 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, .inl inline files, guard clauses
  • Merge plugins/bci/ into root bci/ 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.cu to gpu/ 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

Phase 3: Simulation & Network Research — 🔄 IN PROGRESS

  • 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 (_active flag): selective spatial update

Success criteria: 1000+ stable entities at 60Hz with CPU physics.


Phase 4: BCI Plugin & Neurofeedback Research — 🔄 IN PROGRESS

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 struct from_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.


Phase 5: Massive Simulation & Infrastructure — 📋 PLANNED

  • 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.


Phase 6: Total Immersion — 🔮 FUTURE

  • 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 →

Clone this wiki locally