← all repositories
NVlabs/nvdiffrec

Inverse rendering that outputs actual triangle meshes

To recover triangle meshes, materials, and lighting from multi-view photographs via differentiable rendering.

2.3k stars Python Computer VisionML Frameworks
nvdiffrec
Not currently ranked — collecting fresh signals.
star history

What it does Nvdiffrec takes multi-view photographs and jointly reconstructs a triangular 3D mesh, spatially-varying materials, and environment lighting. It frames the task as a large-scale inverse rendering problem, optimizing topology and surface appearance simultaneously to match the input observations. The output is an explicit triangular model rather than a neural density field.

The interesting bit Instead of stopping at a signed distance field or NeRF-like density, the pipeline extracts actual triangle topology through differentiable marching tetrahedrons adapted from NVIDIA Kaolin. A later update added FlexiCubes support, giving the mesh extraction step an alternative isosurfacing backend. The project also maintains a slang branch that replaces hand-rolled CUDA extension gradients with SlangPy autodiff, trading boilerplate for the same runtime.

Key highlights

  • Joint optimization of mesh topology, materials, and lighting from image observations
  • Differentiable marching tetrahedrons for end-to-end topology learning
  • Optional FlexiCubes backend for isosurfacing
  • slang branch simplifies custom renderutils by using SlangPy autodiff instead of manual CUDA forward/backward passes
  • Includes reproduction configs for NeRF synthetic and NeRD datasets

Caveats

  • Requires a high-end NVIDIA GPU with substantial VRAM; mid-range cards need batch-size reduction
  • Multi-GPU training is experimental and Linux-only; all published results used a single GPU
  • Live training visualization is only supported on Windows

Verdict Worth a look if you need explicit mesh extraction from photos and have the GPU hardware to match. Skip it if you want a lightweight photogrammetry tool or a permissive open-source license.

Frequently asked

What is NVlabs/nvdiffrec?
To recover triangle meshes, materials, and lighting from multi-view photographs via differentiable rendering.
Is nvdiffrec open source?
Yes — NVlabs/nvdiffrec is an open-source project tracked on heatdrop.
What language is nvdiffrec written in?
NVlabs/nvdiffrec is primarily written in Python.
How popular is nvdiffrec?
NVlabs/nvdiffrec has 2.3k stars on GitHub.
Where can I find nvdiffrec?
NVlabs/nvdiffrec is on GitHub at https://github.com/NVlabs/nvdiffrec.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.