SoftRasterizer
vgit-2019Differentiable mesh renderer using soft rasterization for gradient flow through occlusion boundaries
Development Activity
Sample Renders
Overview
Best for
Understanding the foundations of differentiable mesh rendering and reproducing the original SoftRas paper results
Not ideal for
Production differentiable rendering pipelines — use PyTorch3D or nvdiffrast instead, which offer better performance, broader features, and active maintenance
Strengths
- Pioneered the soft rasterization approach to differentiable rendering — the foundational concept has been adopted by PyTorch3D, and the paper (NeurIPS 2019) is cited by over 500 subsequent works in differentiable rendering and 3D reconstruction
- Clean, readable research code that maps directly to the paper's mathematical formulation, making it an excellent educational reference for understanding how differentiable rasterization works at a fundamental level
- Supports both silhouette-based and shaded image supervision, enabling gradient-based mesh reconstruction from single or multi-view 2D images without 3D ground truth
- MIT license allows unrestricted use in both academic research and commercial applications
Limitations
- Research prototype with no ongoing maintenance — the repository has seen no updates since 2019, and compatibility with recent PyTorch and CUDA versions is not guaranteed
- Limited shading model restricted to basic Phong shading — no PBR materials, environment maps, or advanced lighting, limiting the visual realism of rendered outputs
- Performance has been significantly surpassed by PyTorch3D and nvdiffrast, which offer optimized CUDA kernels with hardware-accelerated rasterization
- Requires NVIDIA CUDA-capable GPU with no CPU fallback, limiting accessibility on non-NVIDIA hardware
- Supports only triangle meshes via OBJ loading — no point clouds, volumes, curves, or other geometry types
Background
SoftRasterizer (SoftRas) introduced the concept of soft rasterization for differentiable mesh rendering, enabling gradients to flow through the traditionally non-differentiable rasterization process. Published at NeurIPS 2019 by Shichen Liu, Tianye Li, Weikai Chen, and Hao Li from the University of Southern California and Pinscreen, it replaces the hard pixel-face assignment in standard rasterization with a probabilistic (soft) assignment based on a sigmoid-like aggregate function, making the entire rendering pipeline differentiable with respect to vertex positions, colors, and normals.
The core insight is elegant: by treating each triangle's influence on a pixel as a smooth probability rather than a binary occupancy, SoftRas enables gradient-based optimization of 3D mesh geometry from 2D image supervision. This was one of the earliest works to demonstrate end-to-end differentiable mesh rendering and directly influenced the design of PyTorch3D's differentiable rasterizer, nvdiffrast, and other subsequent systems in the differentiable rendering ecosystem.
As a research prototype, SoftRasterizer provides a clean, readable implementation that maps closely to the paper's mathematical formulation. It supports silhouette-based and shaded image supervision with basic Phong shading and per-vertex colors. The codebase remains widely cited (500+ papers) and serves as an important historical reference for understanding differentiable rendering, though production users are better served by more actively maintained tools like PyTorch3D or nvdiffrast that have adopted and extended its foundational ideas.
Quick Start
Visit the repository for installation instructions for SoftRasterizer.
View RepositoryRelated Renderers
Community & Resources
Paper & Citations
Performance Benchmarks
No benchmark data available for SoftRasterizer yet.
Benchmarks will be added as more renderers are tested across our standard scene suite.
Learn about our methodology