Skip to content

NVIDIAGameWorks/kaolin

Repository files navigation

Kaolin: A Pytorch Library for Accelerating 3D Deep Learning Research

Overview

NVIDIA Kaolin library provides a PyTorch API for working with a variety of 3D representations and includes a growing collection of GPU-optimized operations such as modular differentiable rendering, fast conversions between representations, data loading, 3D checkpoints, differentiable camera API, differentiable lighting with spherical harmonics and spherical gaussians, powerful quadtree acceleration structure called Structured Point Clouds, interactive 3D visualizer for jupyter notebooks, convenient batched mesh container and more. Visit the Kaolin Library Documentation to get started!

Note that Kaolin library is part of the larger NVIDIA Kaolin effort for 3D deep learning.

Installation and Getting Started

Starting with v0.12.0, Kaolin supports installation with wheels:

# Replace TORCH_VERSION and CUDA_VERSION with your torch / cuda versions
pip install kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-{TORCH_VERSION}_cu{CUDA_VERSION}.html

For example, to install kaolin 0.15.0 over torch 1.12.1 and cuda 11.3:

pip install kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-1.12.1_cu113.html

About the Latest Release (0.15.0)

In this version we added a non commercial section under NSCL license. See The license section for more info for more details.

In this new section we implemented features for Flexicubes a method to extract meshes from scalar fields. See more information in the official repository which is now using Kaolin's implementation.

flexicubes

In addition we implemented a GLTF mesh loader that can be used to load models from Objaverse and Objaverse-XL.

gltf

Check our new tutorial: Load and render a GLTF file interactively into a Jupyter notebook: In this file we show how to load a gltf file and fully differentiably render it with nvdiffrast and spherical gaussian for diffuse and specular lighting, using displacement mapping and other materials properties from the GLTF file.

gltf notebook

See change logs for details.

Contributing

Please review our contribution guidelines.

External Projects using Kaolin

Licenses

Most of Kaolin's repository is under Apache v2.0 license, except under kaolin/non_commercial which is under NSCL license restricted to non commercial usage for research and evaluation purposes. For example, FlexiCubes method is included under non_commercial.

Default kaolin import includes Apache-licensed components:

import kaolin

The non-commercial components need to be explicitly imported as:

import kaolin.non_commercial

Citation

If you are using Kaolin library for your research, please cite:

@misc{KaolinLibrary,
      author = {Fuji Tsang, Clement and Shugrina, Maria and Lafleche, Jean Francois and Takikawa, Towaki and Wang, Jiehan and Loop, Charles and Chen, Wenzheng and Jatavallabhula, Krishna Murthy and Smith, Edward and Rozantsev, Artem and Perel, Or and Shen, Tianchang and Gao, Jun and Fidler, Sanja and State, Gavriel and Gorski, Jason and Xiang, Tommy and Li, Jianing and Li, Michael and Lebaredian, Rev},
      title = {Kaolin: A Pytorch Library for Accelerating 3D Deep Learning Research},
      year = {2022},
      howpublished={\url{https://github.com/NVIDIAGameWorks/kaolin}}
}

Contributors

Current Team:

  • Technical Lead: Clement Fuji Tsang
  • Manager: Maria (Masha) Shugrina
  • Charles Loop
  • Or Perel
  • Alexander Zook

Other Majors Contributors:

  • Wenzheng Chen
  • Sanja Fidler
  • Jun Gao
  • Jason Gorski
  • Jean-Francois Lafleche
  • Rev Lebaredian
  • Jianing Li
  • Michael Li
  • Krishna Murthy Jatavallabhula
  • Artem Rozantsev
  • Tianchang (Frank) Shen
  • Edward Smith
  • Gavriel State
  • Towaki Takikawa
  • Jiehan Wang
  • Tommy Xiang