Skip to content

Commit

Permalink
release v0.15.0 (#777)
Browse files Browse the repository at this point in the history
* add wheels config

Signed-off-by: Clement Fuji Tsang <[email protected]>

* Update installation.rst

Signed-off-by: Clement Fuji Tsang <[email protected]>

---------

Signed-off-by: Clement Fuji Tsang <[email protected]>
  • Loading branch information
Caenorst committed Dec 20, 2023
1 parent c67198d commit 5406915
Show file tree
Hide file tree
Showing 10 changed files with 80 additions and 55 deletions.
34 changes: 18 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,34 +14,33 @@ Note that Kaolin library is part of the larger [NVIDIA Kaolin effort](https://de
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.12.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-{TORCH_VERSION}_cu{CUDA_VERSION}.html
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.13.0 over torch 1.12.1 and cuda 11.3:
For example, to install kaolin 0.15.0 over torch 1.12.1 and cuda 11.3:
```
pip install kaolin==0.13.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-1.12.1_cu113.html
pip install kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-1.12.1_cu113.html
```

We now support versions 0.12.0 to 0.14.0.
## About the Latest Release (0.15.0)

## About the Latest Release (0.14.0)
In this version we added a [non commercial section](https://kaolin.readthedocs.io/en/latest/modules/kaolin.non_commercial.html) under [NSCL license](LICENSE.NSCL). See [The license section for more info](#Licenses) for more details.

In this version we added a [conversion Op for mesh to SPC](https://kaolin.readthedocs.io/en/latest/modules/kaolin.ops.conversions.html#kaolin.ops.conversions.unbatched_mesh_to_spc),
which allows turning meshes into Structured Point Cloud, our octree based representation.
In addition, [interactive 3D visualizers](https://kaolin.readthedocs.io/en/latest/modules/kaolin.visualize.html) for Jupyter notebooks
and a [SurfaceMesh class](https://kaolin.readthedocs.io/en/latest/modules/kaolin.rep.surface_mesh.html#kaolin-rep-surfacemesh) (see tutorials below).
In this new section we implemented [features for Flexicubes](https://kaolin.readthedocs.io/en/latest/modules/kaolin.non_commercial.html#kaolin.non_commercial.FlexiCubes) a method to extract meshes from scalar fields. See more information in [the official repository](https://github.com/nv-tlabs/FlexiCubes) which is now using Kaolin's implementation.

<a href="https://kaolin.readthedocs.io/en/latest/modules/kaolin.non_commercial.html#kaolin.non_commercial.FlexiCubes"><img src="./assets/flexicubes.png" alt="flexicubes" height="250" /></a>

Check our new tutorials:
In addition we implemented a [GLTF mesh loader](https://kaolin.readthedocs.io/en/latest/modules/kaolin.io.gltf.html) that can be used to load models from [Objaverse](https://objaverse.allenai.org/objaverse-1.0) and [Objaverse-XL](https://objaverse.allenai.org/).

[**Bring any custom renderer** into a Jupyter notebook for debugging. Use Kaolin Camera to navigate:](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/interactive_visualizer.ipynb)
<a href="https://kaolin.readthedocs.io/en/latest/modules/kaolin.io.gltf.html"><img src="./assets/gltf.png" alt="gltf" height="250" /></a>

<a href="https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/interactive_visualizer.ipynb"><img src="./assets/visualizer.gif" alt="visualizer" height="300" /></a>

[Read and manage **batched mesh attributes** with convenience using SurfaceMesh:](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/working_with_meshes.ipynb)
Check our new tutorial:
[**Load and render a GLTF file** interactively into a Jupyter notebook:](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/gltf_viz.ipynb)
In this file we show how to load a gltf file and fully differentiably render it with [nvdiffrast](https://nvlabs.github.io/nvdiffrast/) and [spherical gaussian for diffuse and specular lighting](https://kaolin.readthedocs.io/en/latest/modules/kaolin.render.lighting.html), using displacement mapping and other materials properties from the GLTF file.

<a href="https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/working_with_meshes.ipynb"><img src="./assets/working_with_meshes.png" alt="working_with_meshes" height="250" /></a>
<a href="https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/gltf_viz.ipynb"><img src="./assets/avocado.png" alt="gltf notebook" height="250" /></a>

See [change logs](https://github.com/NVIDIAGameWorks/kaolin/releases/tag/v0.14.0) for details.
See [change logs](https://github.com/NVIDIAGameWorks/kaolin/releases/tag/v0.15.0) for details.

## Contributing

Expand All @@ -58,9 +57,12 @@ Please review our [contribution guidelines](CONTRIBUTING.md).
* [Neural Geometric Level of Detail: Real-time Rendering with Implicit 3D Surfaces](https://github.com/nv-tlabs/nglod):
* Use [SPC](https://kaolin.readthedocs.io/en/latest/modules/kaolin.ops.spc.html) conversions and [ray-tracing](https://kaolin.readthedocs.io/en/latest/modules/kaolin.render.spc.html#kaolin.render.spc.unbatched_raytrace), yielding 30x memory and 3x training time reduction.
* [Learning Deformable Tetrahedral Meshes for 3D Reconstruction](https://github.com/nv-tlabs/DefTet):
* Use [Kaolin's DefTet volumetric renderer](https://kaolin.readthedocs.io/en/latest/modules/kaolin.render.mesh.html#kaolin.render.mesh.deftet_sparse_render), [tetrahedral losses](https://kaolin.readthedocs.io/en/latest/modules/kaolin.metrics.tetmesh.html), [camera_functions](https://kaolin.readthedocs.io/en/latest/modules/kaolin.render.camera.html), [mesh operators and conversions](https://kaolin.readthedocs.io/en/latest/modules/kaolin.ops.html), [ShapeNet dataset](https://kaolin.readthedocs.io/en/latest/modules/kaolin.io.shapenet.html#kaolin.io.shapenet.ShapeNetV1), [point_to_mesh_distance](https://kaolin.readthedocs.io/en/latest/modules/kaolin.metrics.trianglemesh.html#kaolin.metrics.trianglemesh.point_to_mesh_distance)and [sided_distance](https://kaolin.readthedocs.io/en/latest/modules/kaolin.metrics.pointcloud.html#kaolin.metrics.pointcloud.sided_distance).
* Use [Kaolin's DefTet volumetric renderer](https://kaolin.readthedocs.io/en/latest/modules/kaolin.render.mesh.html#kaolin.render.mesh.deftet_sparse_render), [tetrahedral losses](https://kaolin.readthedocs.io/en/latest/modules/kaolin.metrics.tetmesh.html), [camera_functions](https://kaolin.readthedocs.io/en/latest/modules/kaolin.render.camera.html), [mesh operators and conversions](https://kaolin.readthedocs.io/en/latest/modules/kaolin.ops.html), [ShapeNet dataset](https://kaolin.readthedocs.io/en/latest/modules/kaolin.io.shapenet.html#kaolin.io.shapenet.ShapeNetV1), [point_to_mesh_distance](https://kaolin.readthedocs.io/en/latest/modules/kaolin.metrics.trianglemesh.html#kaolin.metrics.trianglemesh.point_to_mesh_distance) and [sided_distance](https://kaolin.readthedocs.io/en/latest/modules/kaolin.metrics.pointcloud.html#kaolin.metrics.pointcloud.sided_distance).
* [Text2Mesh](https://github.com/threedle/text2mesh):
* Use [Kaolin's rendering functions](https://kaolin.readthedocs.io/en/latest/modules/kaolin.render.mesh.html#), [camera functions](https://kaolin.readthedocs.io/en/latest/modules/kaolin.render.camera.html), and [obj](https://kaolin.readthedocs.io/en/latest/modules/kaolin.io.obj.html#kaolin.io.obj.import_mesh) and [off](https://kaolin.readthedocs.io/en/latest/modules/kaolin.io.off.html#kaolin.io.off.import_mesh) importers.
* [Flexible Isosurface Extraction for Gradient-Based Mesh Optimization (FlexiCubes)
](https://github.com/nv-tlabs/FlexiCubes):
* Use [Flexicube class](https://kaolin.readthedocs.io/en/latest/modules/kaolin.non_commercial.html#kaolin.non_commercial.FlexiCubes), [obj loader](https://kaolin.readthedocs.io/en/latest/modules/kaolin.io.obj.html), [turntable visualizer](https://kaolin.readthedocs.io/en/latest/modules/kaolin.visualize.html#kaolin.visualize.IpyTurntableVisualizer)

## Licenses

Expand Down
Binary file added assets/avocado.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/flexicubes.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/gltf.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 34 additions & 18 deletions ci/gitlab_jenkins_templates/core_ci.jenkins
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,6 @@ def ubuntu_cpuonly_configs = [
// Configs for building python wheels
def ubuntu_for_wheels_configs = [
/*
[
'cudaVer': '11.3.1', 'cudnnVer': '8',
'torchVer': '1.11.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.5.2', 'cudnnVer': '8',
'torchVer': '1.11.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.3.1', 'cudnnVer': '8',
'torchVer': '1.12.0', 'archsToTest': 'MULTI'
Expand Down Expand Up @@ -125,20 +117,28 @@ def ubuntu_for_wheels_configs = [
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.0.1', 'archsToTest': 'MULTI'
]
*/
]

def windows_for_wheels_configs = [
/*
],
[
'cudaVer': '11.3', 'cudnnVer': '8',
'torchVer': '1.11.0', 'archsToTest': ''
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.1.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.5', 'cudnnVer': '8',
'torchVer': '1.11.0', 'archsToTest': ''
'cudaVer': '12.1.0', 'cudnnVer': '8',
'torchVer': '2.1.0', 'archsToTest': 'MULTI'
],
[
'cudaVer': '11.8.0', 'cudnnVer': '8',
'torchVer': '2.1.1', 'archsToTest': 'MULTI'
],
[
'cudaVer': '12.1.0', 'cudnnVer': '8',
'torchVer': '2.1.1', 'archsToTest': 'MULTI'
],
*/
]

def windows_for_wheels_configs = [
/*
[
'cudaVer': '11.3', 'cudnnVer': '8',
'torchVer': '1.12.0', 'archsToTest': ''
Expand Down Expand Up @@ -186,6 +186,22 @@ def windows_for_wheels_configs = [
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.0.1', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.1.0', 'archsToTest': ''
],
[
'cudaVer': '12.1', 'cudnnVer': '8',
'torchVer': '2.1.0', 'archsToTest': ''
],
[
'cudaVer': '11.8', 'cudnnVer': '8',
'torchVer': '2.1.1', 'archsToTest': ''
],
[
'cudaVer': '12.1', 'cudnnVer': '8',
'torchVer': '2.1.1', 'archsToTest': ''
]
*/
]
Expand Down
6 changes: 5 additions & 1 deletion ci/gitlab_jenkins_templates/ubuntu_test_CI.jenkins
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,14 @@ spec:
- key: "kubernetes.io/hostname"
operator: "NotIn"
values:${node_blacklist}
- key: "nvidia.com/driver_version"
operator: "NotIn"
values:
- "545.23"
""") {
node(POD_LABEL) {
container("docker") {
timeout(time: 40, unit: 'MINUTES') {
timeout(time: 60, unit: 'MINUTES') {
stage("Install deps") {
sh 'pip install -r /kaolin/tools/ci_requirements.txt'
sh 'apt update && apt install -y unzip && unzip /kaolin/examples/samples/rendered_clock.zip -d /kaolin/examples/samples/'
Expand Down
3 changes: 2 additions & 1 deletion ci/gitlab_jenkins_templates/windows_build_CI.jenkins
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ def cuda_version_url = [
'11.5': 'https://developer.download.nvidia.com/compute/cuda/11.5.2/local_installers/cuda_11.5.2_496.13_windows.exe',
'11.6': 'https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_511.65_windows.exe',
'11.7': 'https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_516.94_windows.exe',
'11.8': 'https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_522.06_windows.exe'
'11.8': 'https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_522.06_windows.exe',
'12.1': 'https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_531.14_windows.exe'
]


Expand Down
36 changes: 19 additions & 17 deletions docs/notes/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ Requirements
------------

* Linux, Windows, or macOS (CPU-only)
* Python >= 3.7, <= 3.10
* Python >= 3.8, <= 3.10
* `CUDA <https://developer.nvidia.com/cuda-toolkit>`_ >= 10.0 (with 'nvcc' installed) See `CUDA Toolkit Archive <https://developer.nvidia.com/cuda-toolkit-archive>`_ to install older version.
* torch >= 1.8, <= 2.0.1
* torch >= 1.8, <= 2.1.1

Quick Start (Linux, Windows)
----------------------------
Expand All @@ -24,7 +24,7 @@ Quick Start (Linux, Windows)
.. code-block:: bash
$ pip install kaolin==0.14.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-{TORCH_VER}_cu{CUDA_VER}.html
$ pip install kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-{TORCH_VER}_cu{CUDA_VER}.html
.. Note::
Replace *TORCH_VER* and *CUDA_VER* with any of the compatible options below.
Expand All @@ -33,28 +33,30 @@ Quick Start (Linux, Windows)
.. rst-class:: center-align-center-col

+------------------+-----------+-----------+-----------+-----------+-----------+
| **torch / CUDA** | **cu113** | **cu115** | **cu116** | **cu117** | **cu118** |
| **torch / CUDA** | **cu113** | **cu116** | **cu117** | **cu118** | **cu121** |
+==================+===========+===========+===========+===========+===========+
| **torch-2.0.0** | | | |||
| **torch-2.1.1** | | | |||
+------------------+-----------+-----------+-----------+-----------+-----------+
| **torch-2.0.1** | | | |||
| **torch-2.1.0** | | | |||
+------------------+-----------+-----------+-----------+-----------+-----------+
| **torch-1.13.1** | | ||| |
| **torch-2.0.1** | | ||| |
+------------------+-----------+-----------+-----------+-----------+-----------+
| **torch-1.13.0** | | ||| |
| **torch-2.0.0** | | ||| |
+------------------+-----------+-----------+-----------+-----------+-----------+
| **torch-1.12.1** | | || | |
| **torch-1.13.1** | | || | |
+------------------+-----------+-----------+-----------+-----------+-----------+
| **torch-1.12.0** | | || | |
| **torch-1.13.0** | | || | |
+------------------+-----------+-----------+-----------+-----------+-----------+
| **torch-1.11.0** ||| | | |
| **torch-1.12.1** ||| | | |
+------------------+-----------+-----------+-----------+-----------+-----------+

| **torch-1.12.0** ||| | | |
+------------------+-----------+-----------+-----------+-----------+-----------+

For example, to install kaolin for torch 1.12.1 and CUDA 11.3:

.. code-block:: bash
$ pip install kaolin==0.13.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-1.12.1_cu113.html
$ pip install kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-1.12.1_cu113.html
You can check https://nvidia-kaolin.s3.us-east-2.amazonaws.com/index.html to see all the wheels available.

Expand All @@ -66,7 +68,7 @@ Installation from source

.. code-block:: bash
$ conda create --name kaolin python=3.7
$ conda create --name kaolin python=3.8
$ conda activate kaolin
1. Clone Repository
Expand All @@ -78,7 +80,7 @@ Clone and optionally check out an `official release <https://github.com/NVIDIAGa
$ git clone --recursive https://github.com/NVIDIAGameWorks/kaolin
$ cd kaolin
$ git checkout v0.13.0 # optional
$ git checkout v0.15.0 # optional
2. Install dependencies
^^^^^^^^^^^^^^^^^^^^^^^
Expand All @@ -103,14 +105,14 @@ You can verify that CUDA is properly installed at the desired version with nvcc
^^^^^^^^^^^^^^^^^^

Follow `official instructions <https://pytorch.org>`_ to install PyTorch of a supported version.
Kaolin may be able to work with other PyTorch versions, but we only explicitly test within the version range 1.10.0 to 2.0.0.
Kaolin may be able to work with other PyTorch versions, but we only explicitly test within the version range 1.10.0 to 2.1.1.
See below for overriding PyTorch version check during install.

Here is how to install the latest Pytorch version supported by Kaolin for cuda 11.8:

.. code-block:: bash
$ pip install torch==2.0.1 --extra-index-url https://download.pytorch.org/whl/cu118
$ pip install torch==2.1.1 --extra-index-url https://download.pytorch.org/whl/cu118
4. Optional Environment Variables
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import warnings

TORCH_MIN_VER = '1.6.0'
TORCH_MAX_VER = '2.1.0'
TORCH_MAX_VER = '2.1.1'
CYTHON_MIN_VER = '0.29.20'
IGNORE_TORCH_VER = os.getenv('IGNORE_TORCH_VER') is not None

Expand Down
2 changes: 1 addition & 1 deletion version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.15.0a0
0.15.0

0 comments on commit 5406915

Please sign in to comment.