3D machine learning has gained tremendous popularity in recent years and has become one of the most researched areas in a few years. A combination of machine learning with computer vision and computer graphics, 3D machine learning has gained traction due to the ongoing research in areas such autonomous robots, self-driving vehicles, augmented and virtual reality, which has given a boost to the concept.
In this article, we list the top Python libraries for 3D Machine Learning.
(The libraries are listed according to the number of their GitHub stars).
1| PyTorch3D
GitHub Stars: 3.4k
About: PyTorch3D is an open-source library for 3D deep learning written in Python language. The library is highly modular and optimised with unique capabilities designed to make 3D deep learning easier with PyTorch. PyTorch operators are implemented using PyTorch tensors for smooth integration of deep learning and 3D data and can handle mini-batches of heterogeneous data. Facebook AI Research uses this library to power research projects such as Mesh R-CNN.
It provides a set of frequently used 3D operators and loss functions for 3D data that are fast and differentiable. It also has a modular differentiable rendering API which enables researchers to import these functions into current state-of-the-art deep learning systems right away.
Some of the features of this library are:
- It allows data structure for storing and manipulating triangle meshes
- It includes efficient operations on triangle meshes such as projective transformations, graph convolution, loss functions, among others
- PyTorch3D has a differentiable mesh renderer
- The library is well supported by major cloud platforms, providing frictionless development and easy scaling
Click here to know more.
2| Open3D
GitHub Stars: 3.1k
About: Open3D is an open-source library for 3D data processing that supports the rapid development of software that deals with 3D data. The frontend in this library exposes a set of carefully selected data structures and algorithms in both the C++ and Python languages. At the same time, the backend is highly optimised and is set up for parallelisation.
Some of the features are:
- 3D data structures
- 3D data processing algorithms
- Scene reconstruction
- 3D visualisation
- Physically-based rendering (PBR)
Click here to know more.
3| Panda3D
GitHub Stars: 2.3k
About: Panda3D is an open-source library for realtime 3D games, visualisations, simulations, among others. The library is written in C++ with a set of Python bindings. It provides convenient support for normal mapping, gloss mapping, HDR, cartoon shading and inking, among others.
Some of the features are:
- Panda3D combines the speed of C++ with the ease of use of Python to give you a fast rate of development without sacrificing on performance
- It is a cross-platform engine which helps in making easy deployment on all supported platforms
- It includes command-line tools for processing and optimising source assets
Click here to know more.
4| Kaolin
GitHub Stars: 2k
About: Kaolin is a PyTorch library that aims at accelerating 3D deep learning research by providing efficient implementations of differentiable 3D modules that are needed to build a 3D deep learning application.
Some of the features are:
- It provides functionality to load and preprocess the popular 3D dataset
- It provides a large model zoo of commonly used neural architectures and loss functions for 3D tasks on point clouds, meshes, voxel grids, signed distance functions, and RGB-D images
- Kaolin implements several existing differentiable renderers and supports several shaders in a modular way
- It provides most of the common 3D metrics for easy evaluation of research results
Click here to know more.
5| Mayavi
GitHub Stars: 747
About: Mayavi is an open-source, cross-platform tool for 3D scientific data visualisation written in Python language. Mayavi seeks to provide easy and interactive visualisation of 3D data by a simple and clean scripting interface in Python, including one-liners, object-oriented programming interface, and other features.
Some of the features are:
- Easy scriptability using Python
- Easy extendability via custom sources, modules, and data filters
- Saving rendered visualisation in a variety of image formats
- Reading several file formats such as VTK (legacy and XML), PLOT3D, etc.
Click here to know more.
6| pi3d
GitHub Stars: 257
About: pi3d is a Python module that aims to simplify significantly writing 3D in Python while giving access to the power of the Raspberry Pi GPU. It enables both 3D and 2D rendering and seeks to provide a host of commands to load in textured or animated models, create fractal landscapes, shaders, among others.
Some of the features are:
- Other than the Raspberry Pi, the pi3d module runs on Windows using Pygame, on Linux using the X server directly and on Android using python-for-android)
- The library is compatible with both Python 2 and 3
Click here to know more.