Saurabh Buttan
← Personal Projects
INDEPENDENT ENGINE · C++23 / DIRECTX 12

Nubix Engine

Light. Atmosphere. Impact.

Real-time path-traced materials, dynamic volumetrics, and interactive physics in one engine. Explore reflective glass and metal, light moving through fog, a deformable basketball, and destruction that changes the scene.

Path tracingVolumetric ReSTIRNeural reconstructionPhysX · FleX · Blast

Nubix Engine in motion

Real-time rendering4K HDR capture

Glass that catches the room. Fog that carries light. Objects that bend, bounce, and break.

INSIDE THE ENGINE

A scene you can light, touch, and transform.

01 / RENDERING

Light that responds to the scene

Surface reflections, dynamic lighting, and dynamic shadows give glass, metal, and opaque materials their character. Path tracing brings these interactions together as objects and the camera move.

ReflectionsDynamic shadowsPBR materials
02 / GLASS

See through it. See the world in it.

Transparent glass spheres combine transmission and reflections. A dedicated glass-fog pass follows reflected and refracted rays through the volume, bringing the surrounding atmosphere into intact glass spheres and panes.

TransparencyReflection & refraction
03 / VOLUMETRICS

Atmosphere with depth and motion

NVIDIA Flow drives evolving smoke and fog. Sparse-volume rendering adds dynamic lighting and dynamic shadows within the volume, while volumetric ReSTIR reuses light-transport samples across space and time.

FlowOpenVDB / NanoVDBTemporal + spatial reuse
04 / RECONSTRUCTION

From sparse samples to a resolved image

DLSS 4.5 + Ray Reconstruction supports the surface rendering path. Volumetrics combine ReSTIR sampling with an optional recurrent neural denoiser deployed through TensorRT and CUDA. NRD denoisers are also integrated for surface rendering.

DLSS 4.5 + Ray ReconstructionReSTIR + neural denoiser
05 / PHYSICS

Three balls. Three distinct behaviors.

A FleX soft-body basketball deforms and bounces. Glass and metal balls use rigid-body dynamics, with different throw weights and material responses. PhysX handles collisions and the interaction of objects throughout the scene.

Soft-body basketballPhysXFleX
06 / DESTRUCTION

Impacts become part of the world

Blast turns collision-driven damage into fractured chunks and broken bonds. PhysX carries those pieces into the simulation, connecting a thrown object to a visible, physical change in the environment.

Blast destructionCollision-driven damage
Nubix capture showing dynamic light and shadow through fog
Dynamic lighting and shadows extend into the atmosphere.
Illustrated comparison of the light basketball, medium-weight glass ball, and heavy metal ball
Different materials and physical behavior, illustrated in the showcase.
SMOOTHER PRESENTATION

Over 40 rendered FPS. Smoother with 2×.

Nubix exceeded 40 FPS before generated frames were counted. In a separate default-scene benchmark, frame generation off delivered 51.4 FPS. With 2× Multi-Frame Generation enabled, the engine delivered 42.4 rendered FPS and 84.7 presented FPS.

The FPS figures above come from a separate 1920 × 1080 benchmark on an RTX 5070 Ti with DLSS Balanced and Ray Reconstruction. The featured recording was captured in 4K HDR. Rendered FPS counts engine-rendered frames; presented FPS includes generated frames.

Real-time · 4K (3840 × 2160) · HDR capture. The featured recording uses 2× Multi-Frame Generation alongside DLSS 4.5 and Ray Reconstruction, with path tracing at one ray per pixel. Streamline and NVIDIA Reflex connect reconstruction to presentation; supported generation modes are selected according to GPU capability.

Generated frames improve presentation smoothness. Physics and input continue at the rendered-frame rate.

BUILT BY SAURABH BUTTAN

Rendering and simulation, engineered together.

Nubix is my independent C++ engine, bringing DirectX 12 and HLSL rendering together with NVIDIA simulation and reconstruction technologies. The work spans GPU resource lifetimes, rendering passes, physics integration, model training, and live validation.

Runtime controls expose lighting, fog, denoising, and frame-generation settings. Capture and profiling tools connect what appears on screen to the buffers, timings, and numerical checks behind it.

Read the PhysX & Blast integration article ↗

ReSTIR & neural-denoiser validation

Recorded checks from September 18–21, 2026 cover raw volumetric sampling, the deployed neural model, and recurrent history. Reproducible capture tools connect GPU tensor dumps, Python analysis, PyTorch evaluation, and TensorRT execution.

Volumetric ReSTIR: convergence against reference renders

Three static cases with path lengths of 1, 3, and 7 scattering events were tested at 640 × 360 on an RTX 5070 Ti. Each mode accumulated 1,024 frames after warm-up. Two independent native path-tracing reference splits provided 65,536 samples per pixel in total. Neural denoising and upscaling were disabled to isolate raw fog RGB.

These are static consistency checks against Nubix’s own native path tracer, which shares its SHARC-assisted lighting model. They do not establish equivalence to an external renderer or quality under motion.

Neural denoiser: deployment fidelity

The epoch-750 recurrent model was validated in a 1,040-frame live run at 1280 × 720. Four dense-fog captures passed guide-channel, finite-output, temporal-history, and analytic-opacity checks.

These checks validate deployment fidelity and history alignment, rather than denoising accuracy against a converged image. The 1080p TensorRT engine also built successfully; live deployment validation used 720p. Neural filtering remains optional.

Libraries, research & acknowledgments

Nubix brings together NVIDIA libraries, published rendering methods, and engine-specific simulation and reconstruction work. Its current rendering code builds on NVIDIA’s NRD Sample and NRI framework. The sources below credit that foundation and explain where each technology fits.

NVIDIA rendering and reconstruction

Simulation and sparse volumes

Research implemented or cited in the code

  1. Fast Volume Rendering with Spatiotemporal Reservoir Resampling — Daqi Lin, Chris Wyman, and Cem Yuksel, 2021. The research basis for Nubix’s volumetric ReSTIR estimator and temporal/spatial reservoir reuse. Authors’ reference implementation ↗
  2. Interactive Path Tracing and Reconstruction of Sparse Volumes — Nikolai Hofmann, Jon Hasselgren, Petrik Clarberg, and Jacob Munkberg, 2021. The reference for sparse-volume path tracing, recurrent neural reconstruction, and the denoiser’s guide-input contract.
  3. Sampling the GGX Distribution of Visible Normals — Eric Heitz, 2018. Cited in Nubix’s ray-tracing shader for microfacet sampling and Monte Carlo throughput evaluation.
  4. A Low-Discrepancy Sampler that Distributes Monte Carlo Errors as a Blue Noise in Screen Space — Eric Heitz, Laurent Belcour, Victor Ostromoukhov, David Coeurjolly, and Jean-Claude Iehl, 2019. Cited by the shader’s screen-space sampling code.
  5. The Iray Light Transport Simulation and Rendering System — Alexander Keller and colleagues, 2017. Appendix 3 is cited in the shader’s ray-direction and shading-normal correction to avoid self-intersections.

Research behind the integrated simulation library

Unified Particle Physics for Real-Time Applications — Miles Macklin, Matthias Müller, Nuttapong Chentanez, and Tae-Yong Kim, 2014. FleX’s documentation identifies this paper as a foundation of its particle-based solver. Nubix uses that solver through FleX for its deformable objects.

Nubix’s contribution is the engine integration, extensions, interactive behavior, volumetric implementation, training workflow, and validation shown on this page. The upstream libraries and research methods remain credited to their respective authors. The links above describe the technologies; Nubix’s own captures and measurements document this integration.