One engineer. Twelve years. A bindless, GPU-driven engine with real-time path-traced global illumination.
A personal R&D engine, not a commercial product. No roadmap promises, no support queue, no compromises on the vision.
Spartan started as a university project. Ten years of nights and weekends later, its rendering technology runs in Godot Engine and S.T.A.L.K.E.R. Anomaly, ships in a published programming book, and anchors a community of 600+ engineers on Discord.
This is what a codebase looks like when a single person owns every line for a decade: no legacy committees, no half-migrated architectures, no "we'll fix it in the next version." One philosophy applied without compromise: favor real-time over baked, dynamic over static, modern over safe. Every system here exists to serve that.
There is a destination that gives all this tech a purpose. Curious? Read the plan →
The root worlds/ directory contains .world XML files and its directory README. All supporting assets,
including scripts, car definitions, materials, audio, previews, sequencer data, map
exports and backups, live in binaries/project/ and are excluded from Git. Runtime
asset paths start with project/ because the engine runs from binaries/.
Include these assets when packaging the Dropbox project.7z download.
Launch the engine and choose from a selection of default worlds. Nothing is a canned demo—every world is physics-enabled. Walk around, pick up objects with your mouse, or take a car for a spin.
![]() |
![]() |
![]() |
![]() |
The renderer is built around one principle: the GPU owns the data. Every resource (geometry, materials, textures, lights, transforms, AABBs) lives in persistent, globally accessible buffers. No per-draw descriptor updates, no per-draw resource binding, no CPU-side draw loops.
- Zero-binding draw path, all per-draw data lives in a single bindless storage buffer, push constants carry only an index






