API Overview

Below is a summary of Kaolin functionality. Refer to Tutorial Index for specific use cases, examples and recipes that use these building blocks.

Operators for 3D Data:

kaolin/ops contains operators for efficient processing functions of batched 3d models and tensors. We provide, conversions between 3d representations, primitives batching of heterogenenous data, and efficient mainstream functions on meshes and voxelgrids.


kaolin/io contains functionality to interact with files.

We provide, importers and exporters to popular format such as .obj and .usd, but also utility functions and classes to preprocess and cache datasets with specific transforms.


kaolin/metrics contains functions to compute distance and losses such as point_to_mesh distance, chamfer distance, IoU, or laplacian smoothing.

Differentiable Rendering:

kaolin/render provide functions related to differentiable rendering, such a DIB-R rasterization, application of camera projection / translation / rotation, lighting, and textures.

3D Checkpoints and Visualization:

kaolin/visualize contains utilities for writing 3D checkpoints for visualization. Currently we provide timelapse exporter that can be quickly picked up by the Omniverse Kaolin App.


kaolin/utils contains utility functions to help development of application or research scripts. We provide functions to display and check informations about tensors, and features to fix seed.

Non Commercial

kaolin/non_commercial contains features under NSCL license restricted to non commercial usage for research and evaluation purposes.


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