Velox started as a compact 3D core: math, ECS, physics, assets, and a modern GPU pipeline without the legacy of a large general-purpose engine. Then the goal changed. Instead of adding another collection of effects, we began building an environment where the image follows from one model of the world — from orbits and atmosphere to light transport and the observer's eye.
One world model
Astronomical f64 space, a floating origin, and true scale instead of separate scenes for space and the surface.
Light as physics
Spectral path tracing, participating atmosphere, and interchangeable observers instead of disconnected color effects.
Game foundation
ECS, GPU-driven rendering, physics, glTF, animation, audio, an editor, and testable headless simulation.
The engine is not the source of truth
In a conventional renderer, a planet, sky, shadow, and color often live in separate systems. Velox has one coordinate truth: celestial bodies exist in astronomical f64 space, while a floating origin maps only the visible neighborhood into local GPU coordinates. Earth, Moon, and Mars are not scaled down to fit a scene; the camera can move from space to the surface without entering another world.
Analytic Kepler orbits define body positions. Perturbations can opt into N-body dynamics using the symplectic velocity Verlet integrator. The analytic path remains stable under pause, reverse, and accelerated time, while live N-body dynamics become an optional law instead of replacing the architecture.
flowchart LR
laws[Laws and state, f64] --> frame[Floating origin]
frame --> visible[Visible neighborhood, f32]
visible --> trace[Raster / path tracing]
trace --> eye[Observer: eye]
eye --> pixel[Pixel]Light is transported, not painted
The Sun is an emissive body in the tracer. The terminator, eclipses, planet-shine, and moonlight emerge from energy transport rather than separate art switches. Atmosphere participates in both camera and lighting rays, so surface light naturally reddens and attenuates toward the horizon.
Color is not treated as an intrinsic property of the world. The spectral integrator transports wavelengths, and an Observer converts them into the response of a specific eye. The same scene can be viewed as a human, a UV-sensitive bird, a dichromatic dog, or an infrared-sensitive snake. This is not a post-processing filter: wavelengths irrelevant to the active observer are not evaluated.
A game engine beneath the simulator
The physical model sits on a practical game stack. The archetype ECS stores components in dense SoA columns, while the scheduler automatically runs independent systems in parallel. The GPU performs frustum and Hi-Z culling, instancing, and indirect draws. A render graph connects PBR, HDR, ACES, bloom, TAA, SSAO, particles, and path tracing.
Velox loads glTF, supports skeletal animation, XPBD physics, spatial audio, hot reload, scene serialization, editing, and CPU/GPU profiling. Through MCP, an agent can modify a running scene: spawn objects, adjust lights and materials, save the world, and inspect statistics. Commands are drained at a safe point in the frame.
Why simulation stays separate from presentation
For games, the studio's gamekit layer keeps rules independent from windows and rendering. Commands are serializable, time comes from an explicit clock, randomness comes from seeded streams, and a journal can reproduce the complete session. The same code runs headless in tests, locally offline, or in lockstep co-op. Automated guards prevent simulation crates from acquiring hidden dependencies on the GPU, filesystem, or wall clock.
Velox owns space, physics, and the image; gamekit owns deterministic game rules; 0xd-ui owns the interface. This boundary lets us change a camera, renderer, or platform host without changing combat or economy outcomes.
Testing physical honesty
The CPU reference tracer runs in f64, while its GPU mirror runs in f32/WGSL. Tests compare converged radiance rather than bytes produced by different processors. Separate checks cover the terminator, eclipse shadows, energy conservation, atmospheric extinction, and orbital stability. Golden frames come from the deterministic CPU reference so they do not drift with GPU drivers.
Where this approach fits
Not every project needs a custom engine. A standard mobile mechanic is usually faster to ship on an existing platform. Velox is justified when the world model is itself part of the product: a space game, scientific visualization, training simulator, digital twin, or an experience with unusual perception and scale.
One testable world model, one path from law to pixel, and as few special cases as possible.Need a purpose-built game engine or simulator?
We can define the physical model, target platforms, and accuracy gates, then build a technical prototype or the complete production pipeline.
Hollowdeep: a dark RPG about the chain holding a cityHollowdeep concept art and design: an endless descent, a heavy chain hook, offline progress, co-op, and one deterministic Rust simulation.
Custom game development: from concept to an iOS buildHow we build custom games: core loop, art direction, deterministic simulation, content packs, and one codebase for iPhone, iPad, and Mac.
Our own AI, all the way down: engine, memory, agent — and the night it learnsIn five and a half months we built a complete AI stack of our own in Rust: an inference engine faster than llama.cpp, an agent runtime with memory and task preemption, a benchmark harness and a nightly training loop with proof. Numbers from our benchmarks — and what of it your business needs.