Prerequisites & environment
P0i686-elf cross-toolchain (gcc14/C++23), Makefiles + xmake, QEMU, GDB/VSCode F5.
One view over three moving parts: the kernel (OSDev phases), the convergence that links the engine into ring-0, and the engine itself. Dependencies that cross from one project into another are drawn as merge links — that's where the two repos meet.
The freestanding i686 OS — OSDev learning path, phases 0→11.
i686-elf cross-toolchain (gcc14/C++23), Makefiles + xmake, QEMU, GDB/VSCode F5.
GRUB multiboot, VGA text mode, serial COM1, scrolling, colors, multiboot parsing.
Higher-half at 0xC0000000, boot + runtime paging, GDT (6 segments), TSS loaded. Ring 3 deferred to P9.
IDT/ISR 0–47, PIC remap, dedicated #PF/#GP/#DF handlers, LAPIC/IOAPIC, x2APIC, MADT, AP bring-up (SMP=2 validated).
PMM (buddy server / free-list client), kmalloc/kfree, slab caches, frame/pool/ring allocators, pinned DMA, VMM range manager.
PS/2 keyboard (QWERTY/AZERTY layouts) ✓, PCI bus enumeration + BARs ✓. Next: storage (ATA PIO), then USB.
Intel 82540EM at BAR0 0xFEB80000 (found by the PCI scan). Native replacement for /dev/lpl0 — entry point for the data-plane convergence.
ATA PIO first (simplest), then AHCI/NVMe. High-frequency USB/serial polling for the OpenBCI headset with native Notch/bandpass filtering.
Context switch (FXSAVE/XSAVE), round-robin then priority, EDF hard real-time (Liu & Layland) for VR guarantees, sync primitives, IPC.
VFS, initrd (no disk driver needed) first, then FAT / Ext2.
Ethernet/ARP/IP/TCP/UDP, then data-plane bypass (DPDK-style), zero-copy DMA NIC→pinned memory, Receive-Side-Scaling across SMP cores.
Ring 3, ELF loading. Zero-syscall async interface (SPSC submission/completion rings), SASOS single-address-space, PKeys isolation.
Long mode (4-level paging), UEFI boot, interactive shell, newlib/libsupc++ porting.
C-states (HLT/MWAIT), P-states, tickless kernel (NO_HZ), DVFS driven by the EDF scheduler, clock/power gating. Crucial for BCI/VR hardware.
The two-repo merge: the engine linked natively into ring-0 (Model B, then U1→U5).
P0→P6 complete: the portable engine compiles -ffreestanding into the kernel behind a thin C HAL. All 7 oracle parity suites bit-identical Linux↔i686; QEMU boots with matching FNV signatures.
The last deferred Model-B item: the full facade still drags in the net/BCI/GLFW stack and stays host-only. The freestanding render path is already proven via libengine.
LplKernel provides the stable tick contract (clock_*) consumed by LplPlugin.
Robust prediction & reconciliation under 50–200 ms network jitter.
Telemetry + action with a measured motion-to-photon latency < 20 ms.
Critical engine components integrated directly as kernel modules.
Load-test and validate the unified SMP architecture.
The cross-platform engine — simulation, network, BCI, rendering.
ECS + kernel ring buffer PoC, CUDA gravity kernel, pinned memory zero-copy. Validated: 62.55 µs latency, 0% loss, 495 pkt/s.
20 flat modules, Make→xmake (C++23, -fno-rtti/-fno-exceptions), Vulkan backend alongside the software rasterizer, engine facade, CUDA physics port.
Done: authoritative server, client prediction, EntityRegistry, DAG scheduler, double buffering, octree broadphase. Left: SIMD physics, dirty-list, Hermite prediction, 50–200 ms latency tests, anti-tunneling.
Done: OpenBCI Cyton driver, per-channel FFT/PSD, Schumacher R(t), Riemannian δ_R/Mahalanobis, NeuralMetrics. In progress: auto-calibration. Left: LSL outlet, OpenViBE boxes, feedback loop, motor-imagery decoding.
Done: octree broadphase, AABB narrow-phase, impulse resolution. Target: 100k+ entities @ 60 FPS — GPU streaming, state compression, session RCU, server meshing, NUMA-aware allocators.
Photorealistic rendering (NeRF or PBR), haptic feedback, spatial audio, custom RTOS for strict determinism, GPUDirect RDMA (NIC→VRAM).
The first cross-ring gate: cube-pile state and image folds identical between the host oracle and the booted kernel.
One recipe, one world: entity count, state, height and biome signatures all fold identically host-side and in ring 0.
A simulation that RUNS under contract: population, genome, stigmergy and social folds over a whole ecological run.
Chunked generation with no seams: a chunk generated alone folds like the same chunk generated among its neighbours.
L-system growth under the same contract: conifer, broadleaf and shrub folds, with segment and leaf counts.
The first gate whose two sides run DIFFERENT code: the host XORs 128 bits at a time, ring 0 word by word, and the folds must still match — because addition over GF(2) is associative, commutative and free of rounding. The script fails if both sides take the same path.
Ten opcodes, a reference interpreter, and a specification written in bytes rather than prose. What is folded is that a machine rebuilt FROM the engraving runs the canonical program identically on both targets — a specification sufficient on one and not the other is sufficient for nobody.
A confidence in Fixed32 decides which of two contradictory claims becomes the consensus view, so it is authoritative state: a rounding that differed between targets would give two histories from one corpus. Checked alongside the folds — the losing account is still reachable.
The local mind — inference in ring 3, directing a deterministic engine.
A transformer thinking in ring 0, and thinking the same thought as the host: eight-bit weights, Q16.16 activations, an exponential built from a shift and six Taylor terms, rotary angles from CORDIC. Weights, prompt, scores, residual stream, free tokens and grammar-constrained tokens each fold on their own.
The first gate whose consumers will not all be x86: a hosted room node, the kernel's satellite profile and an eventual microcontroller share no register and must still decide the same things about the same audio — when to send, when to stop, whether the wake word was heard, whether the node is hearing itself. Features come from a Haar cascade because a mel filterbank needs cosines and nothing in ring 0 may compute one.
One turn of thought, folded stage by stage — and what it folds is a sequence of DECISIONS rather than a computation: which note survived a full memory, which action was reached for first, whether the turn ended in an answer or a question. Identity is data, not a fine-tune; a budget counts work and never milliseconds, because a wall clock makes a replay depend on how fast the machine was that day.
The same turn, with every move chosen by the transformer running in ring 0 under a grammar rebuilt from the world at each step — so an action already tried stops being spellable, and the anti-loop guard lives in the language rather than in a filter. Measured both ways: under grammar, zero illegal actions; the same weights generating unconstrained named a legal action 0 times out of 8.
The inversion: the model decides WHAT in a few hundred tokens, the deterministic engine decides HOW. Tool surface, JSON-Schema and GBNF grammar derived from one component declaration; deterministic critics instead of a vision model; every act journalled, so a session is undoable and replayable.
The grammar is regenerated every step and only names what is callable now — a tool the world cannot perform is one the sampler cannot spell.
llama.cpp and whisper.cpp behind a process boundary, pgvector memory, deep research with GBNF-constrained tool calls. Inference stays in ring 3 and speaks to the kernel through the data plane.
The library — a corpus the engine can read, and the demon can cite.
The first gate that folds a TRANSLATION rather than a computation. The canonical corpus of gate P13 is baked into a .lplknow image by a host tool, read back in ring 0, and the history is rebuilt from what came back — so its timeline, chronicle and minority signatures must equal P13's own. An image that opened cleanly and had quietly rounded one confidence would pass every other check, and the consequence would be a different consensus about how a king died.
Every algorithm the project rests on, traced back to the report that argued for it and forward to the code that implements it — the reverse index the book will be written from.
A baked, bounded reader on the ring-0 side of the reader/writer line, so a world can cite what it was built from.
Nothing matches this filter.
This roadmap is a synthesized cross-project view. The exhaustive, item-by-item checklists
live in the repos: LplKernel/docs/ROADMAP.md and the LplPlugin wiki
(Roadmap, Implementation-Status, Future-Ideas).