diff --git a/README.md b/README.md index d7e4a7f0..1d48a833 100644 --- a/README.md +++ b/README.md @@ -14,33 +14,34 @@ 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.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-{TORCH_VERSION}_cu{CUDA_VERSION}.html +pip install kaolin==0.16.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: +For example, to install kaolin 0.16.0 over torch 2.0.0 and cuda 11.8: ``` -pip install kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-1.12.1_cu113.html +pip install kaolin==0.16.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.0.0_cu118.html ``` -## About the Latest Release (0.15.0) +## About the Latest Release (0.16.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 [Physics section](https://kaolin.readthedocs.io/en/latest/modules/physics.html). -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. +In this new section we implemented [Simplicits](https://kaolin.readthedocs.io/en/latest/modules/kaolin.physics.html) a geometry-agnostic method for elastic simulation. See more information in [the project page](https://research.nvidia.com/labs/toronto-ai/simplicits/). -flexicubes +We've also added a [math section](https://kaolin.readthedocs.io/en/latest/modules/kaolin.math.html) with quaternions math features. -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/). +Finally we've improved workflow, with an [easy rendering API](https://kaolin.readthedocs.io/en/latest/modules/kaolin.render.easy_render.html), for quickly visualizing a model. -gltf +Check our new tutorials: +[Use Simplicit's Easy API to Simulate a Mesh](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/physics/simplicits_easy_api.ipynb) In this notebook we show how to use the high-level Simplicit API to simulate an imported Mesh. +[Interact with a Physics Simulation](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/physics/simplicits_interactive.ipynb) In this notebook we show to interact with the simulation by moving objects. +[Use Simplicit's Full-Feature API](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/physics/simplicits_low_level_api.ipynb) In this notebook we show how to use the low-level API to simulate a pointcloud. -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. +[Easy rendering of Meshes](https://github.com/NVIDIAGameWorks/kaolin/blob/master/examples/tutorial/easy_mesh_render.ipynb) Use our new high-level API to load a mesh, create a camera and lighting parameters and render interactively. -gltf notebook +physics documentation -See [change logs](https://github.com/NVIDIAGameWorks/kaolin/releases/tag/v0.15.0) for details. +See [change logs](https://github.com/NVIDIAGameWorks/kaolin/releases/tag/v0.16.0) for details. ## Contributing @@ -98,6 +99,7 @@ Current Team: - Technical Lead: Clement Fuji Tsang - Manager: Maria (Masha) Shugrina - Charles Loop +- Vismay Modi - Or Perel - Alexander Zook diff --git a/assets/physics_bulldozer.gif b/assets/physics_bulldozer.gif new file mode 100644 index 00000000..3fc7356a Binary files /dev/null and b/assets/physics_bulldozer.gif differ diff --git a/ci/gitlab_jenkins_templates/core_ci.jenkins b/ci/gitlab_jenkins_templates/core_ci.jenkins index f2f3fb18..5fa3b174 100644 --- a/ci/gitlab_jenkins_templates/core_ci.jenkins +++ b/ci/gitlab_jenkins_templates/core_ci.jenkins @@ -65,53 +65,251 @@ def ubuntu_cpuonly_configs = [ // Configs for building python wheels def ubuntu_for_cuda_wheels_configs = [ +/* + [ + 'cudaVer': '11.7.1', 'cudnnVer': '8', + 'torchVer': '2.0.0', 'archsToTest': 'MULTI' + ], [ 'cudaVer': '11.8.0', 'cudnnVer': '8', 'torchVer': '2.0.0', 'archsToTest': 'MULTI' ], -/* + [ + 'cudaVer': '11.7.1', 'cudnnVer': '8', + 'torchVer': '2.0.1', 'archsToTest': 'MULTI' + ], + [ + 'cudaVer': '11.8.0', 'cudnnVer': '8', + 'torchVer': '2.0.1', 'archsToTest': 'MULTI' + ], + [ + 'cudaVer': '11.8.0', 'cudnnVer': '8', + 'torchVer': '2.1.0', 'archsToTest': 'MULTI' + ], [ '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' + ], + [ + 'cudaVer': '11.8.0', 'cudnnVer': '8', + 'torchVer': '2.1.2', 'archsToTest': 'MULTI' + ], + [ + 'cudaVer': '12.1.0', 'cudnnVer': '8', + 'torchVer': '2.1.2', 'archsToTest': 'MULTI' + ], + [ + 'cudaVer': '11.8.0', 'cudnnVer': '8', + 'torchVer': '2.2.0', 'archsToTest': 'MULTI' + ], + [ + 'cudaVer': '12.1.0', 'cudnnVer': '8', + 'torchVer': '2.2.0', 'archsToTest': 'MULTI' + ], + [ + 'cudaVer': '11.8.0', 'cudnnVer': '8', + 'torchVer': '2.2.1', 'archsToTest': 'MULTI' + ], + [ + 'cudaVer': '12.1.0', 'cudnnVer': '8', + 'torchVer': '2.2.1', 'archsToTest': 'MULTI' + ], + [ + 'cudaVer': '11.8.0', 'cudnnVer': '8', + 'torchVer': '2.3.0', 'archsToTest': 'MULTI' + ], + [ + 'cudaVer': '12.1.0', 'cudnnVer': '8', + 'torchVer': '2.3.0', 'archsToTest': 'MULTI' + ], [ 'cudaVer': '11.8.0', 'cudnnVer': '8', 'torchVer': '2.3.1', 'archsToTest': 'MULTI' ], -*/ [ 'cudaVer': '12.1.0', 'cudnnVer': '8', 'torchVer': '2.3.1', 'archsToTest': 'MULTI' + ] + [ + 'cudaVer': '11.8.0', 'cudnnVer': '8', + 'torchVer': '2.4.0', 'archsToTest': 'MULTI' ], + [ + 'cudaVer': '12.1.0', 'cudnnVer': '8', + 'torchVer': '2.4.0', 'archsToTest': 'MULTI' + ], + [ + 'cudaVer': '12.4.1', 'cudnnVer': '', + 'torchVer': '2.4.0', 'archsToTest': 'MULTI' + ] +*/ ] def ubuntu_for_cpu_wheels_configs = [ +/* [ - 'torchVer': '2.3,1' + 'torchVer': '2.0.0' ], [ - 'torchVer': '2.0.0' + 'torchVer': '2.0.1' + ], + [ + 'torchVer': '2.1.0' + ], + [ + 'torchVer': '2.1.1' + ], + [ + 'torchVer': '2.1.2' + ], + [ + 'torchVer': '2.2.0' + ], + [ + 'torchVer': '2.2.1' + ], + [ + 'torchVer': '2.3.0' + ], + [ + 'torchVer': '2.3.1' ] + [ + 'torchVer': '2.4.0' + ] +*/ ] def windows_for_cuda_wheels_configs = [ +/* + [ + 'cudaVer': '11.7', 'cudnnVer': '8', + 'torchVer': '2.0.0', 'archsToTest': '' + ], [ 'cudaVer': '11.8', 'cudnnVer': '8', 'torchVer': '2.0.0', 'archsToTest': '' ], + [ + 'cudaVer': '11.7', 'cudnnVer': '8', + 'torchVer': '2.0.1', 'archsToTest': '' + ], + [ + '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': '' + ], + [ + 'cudaVer': '11.8', 'cudnnVer': '8', + 'torchVer': '2.1.2', 'archsToTest': '' + ], + [ + 'cudaVer': '12.1', 'cudnnVer': '8', + 'torchVer': '2.1.2', 'archsToTest': '' + ], + [ + 'cudaVer': '11.8', 'cudnnVer': '8', + 'torchVer': '2.2.0', 'archsToTest': '' + ], + [ + 'cudaVer': '12.1', 'cudnnVer': '8', + 'torchVer': '2.2.0', 'archsToTest': '' + ], + [ + 'cudaVer': '11.8', 'cudnnVer': '8', + 'torchVer': '2.2.1', 'archsToTest': '' + ], + [ + 'cudaVer': '12.1', 'cudnnVer': '8', + 'torchVer': '2.2.1', 'archsToTest': '' + ], + [ + 'cudaVer': '11.8', 'cudnnVer': '8', + 'torchVer': '2.3.0', 'archsToTest': '' + ], + [ + 'cudaVer': '12.1', 'cudnnVer': '8', + 'torchVer': '2.3.0', 'archsToTest': '' + ], + [ + 'cudaVer': '11.8', 'cudnnVer': '8', + 'torchVer': '2.3.1', 'archsToTest': '' + ], [ 'cudaVer': '12.1', 'cudnnVer': '8', 'torchVer': '2.3.1', 'archsToTest': '' + ], + [ + 'cudaVer': '11.8', 'cudnnVer': '8', + 'torchVer': '2.4.0', 'archsToTest': '' + ], +*/ + [ + 'cudaVer': '12.1', 'cudnnVer': '8', + 'torchVer': '2.4.0', 'archsToTest': '' + ], + [ + 'cudaVer': '12.4', 'cudnnVer': '', + 'torchVer': '2.4.0', 'archsToTest': '' ] ] def windows_for_cpu_wheels_configs = [ +/* [ 'torchVer': '2.0.0', 'archsToTest': '' ], + [ + 'torchVer': '2.0.1', 'archsToTest': '' + ], + [ + 'torchVer': '2.1.0', 'archsToTest': '' + ], + [ + 'torchVer': '2.1.1', 'archsToTest': '' + ], + [ + 'torchVer': '2.1.2', 'archsToTest': '' + ], + [ + 'torchVer': '2.2.0', 'archsToTest': '' + ], + [ + 'torchVer': '2.2.1', 'archsToTest': '' + ], + [ + 'torchVer': '2.3.0', 'archsToTest': '' + ], [ 'torchVer': '2.3.1', 'archsToTest': '' ] +*/ + [ + 'torchVer': '2.4.0', 'archsToTest': '' + ] ] // Configs for build from Windows server docker images // (See: https://hub.docker.com/_/microsoft-dotnet-framework-sdk) diff --git a/ci/gitlab_jenkins_templates/windows_wheels_CI.jenkins b/ci/gitlab_jenkins_templates/windows_wheels_CI.jenkins index d2f10ce8..18614543 100644 --- a/ci/gitlab_jenkins_templates/windows_wheels_CI.jenkins +++ b/ci/gitlab_jenkins_templates/windows_wheels_CI.jenkins @@ -67,9 +67,7 @@ spec: --log-disable=PIL.TiffImagePlugin \ --log-disable=kaolin.rep.surface_mesh \ /kaolin/tests/python/kaolin/io/test_gltf.py \ - /kaolin/tests/python/kaolin/io/usd/ \ /kaolin/tests/python/kaolin/io/test_obj.py - ''' } if (currentBuild.getCurrentResult() != "FAILURE") { diff --git a/docs/notes/installation.rst b/docs/notes/installation.rst index 48cae3ce..4fd705de 100644 --- a/docs/notes/installation.rst +++ b/docs/notes/installation.rst @@ -13,9 +13,9 @@ Requirements ------------ * Linux, Windows, or macOS (CPU-only) -* Python >= 3.8, <= 3.10 +* Python >= 3.9, <= 3.11 * `CUDA `_ >= 10.0 (with 'nvcc' installed) See `CUDA Toolkit Archive `_ to install older version. -* torch >= 1.8, <= 2.1.1 +* torch >= 2.0, <= 2.4.0 Quick Start (Linux, Windows) ---------------------------- @@ -32,31 +32,37 @@ Quick Start (Linux, Windows) .. rst-class:: center-align-center-col - +------------------+-----------+-----------+-----------+-----------+-----------+ - | **torch / CUDA** | **cu113** | **cu116** | **cu117** | **cu118** | **cu121** | - +==================+===========+===========+===========+===========+===========+ - | **torch-2.1.1** | | | | ✓ | ✓ | - +------------------+-----------+-----------+-----------+-----------+-----------+ - | **torch-2.1.0** | | | | ✓ | ✓ | - +------------------+-----------+-----------+-----------+-----------+-----------+ - | **torch-2.0.1** | | | ✓ | ✓ | | - +------------------+-----------+-----------+-----------+-----------+-----------+ - | **torch-2.0.0** | | | ✓ | ✓ | | - +------------------+-----------+-----------+-----------+-----------+-----------+ - | **torch-1.13.1** | | ✓ | ✓ | | | - +------------------+-----------+-----------+-----------+-----------+-----------+ - | **torch-1.13.0** | | ✓ | ✓ | | | - +------------------+-----------+-----------+-----------+-----------+-----------+ - | **torch-1.12.1** | ✓ | ✓ | | | | - +------------------+-----------+-----------+-----------+-----------+-----------+ - | **torch-1.12.0** | ✓ | ✓ | | | | - +------------------+-----------+-----------+-----------+-----------+-----------+ + +------------------+-----------+-----------+-----------+-----------+ + | **torch / CUDA** | **cu117** | **cu118** | **cu121** | **cu124** | + +==================+===========+===========+===========+===========+ + | **torch-2.4.0** | | ✓ | ✓ | ✓ | + +------------------+-----------+-----------+-----------+-----------+ + | **torch-2.3.1** | | ✓ | ✓ | | + +------------------+-----------+-----------+-----------+-----------+ + | **torch-2.3.0** | | ✓ | ✓ | | + +------------------+-----------+-----------+-----------+-----------+ + | **torch-2.2.2** | | ✓ | ✓ | | + +------------------+-----------+-----------+-----------+-----------+ + | **torch-2.2.1** | | ✓ | ✓ | | + +------------------+-----------+-----------+-----------+-----------+ + | **torch-2.2.0** | | ✓ | ✓ | | + +------------------+-----------+-----------+-----------+-----------+ + | **torch-2.1.2** | | ✓ | ✓ | | + +------------------+-----------+-----------+-----------+-----------+ + | **torch-2.1.1** | | ✓ | ✓ | | + +------------------+-----------+-----------+-----------+-----------+ + | **torch-2.1.0** | | ✓ | ✓ | | + +------------------+-----------+-----------+-----------+-----------+ + | **torch-2.0.1** | ✓ | ✓ | | | + +------------------+-----------+-----------+-----------+-----------+ + | **torch-2.0.0** | ✓ | ✓ | | | + +------------------+-----------+-----------+-----------+-----------+ -For example, to install kaolin for torch 1.12.1 and CUDA 11.3: +For example, to install kaolin for torch 2.0.0 and CUDA 11.8: .. code-block:: bash - $ pip install kaolin==0.15.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-1.12.1_cu113.html + $ pip install kaolin==0.16.0 -f https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.0.0_cu118.html You can check https://nvidia-kaolin.s3.us-east-2.amazonaws.com/index.html to see all the wheels available. @@ -80,7 +86,7 @@ Clone and optionally check out an `official release