Build documentation#

The main documentation and Python documentation is written in reStructuredText and generated by sphinx. The C++ API documentation is generated by Doxygen.

Documentation can be built on Ubuntu or macOS. Building documentation on Windows may also be possible but is not officially tested.

If you’re building documentation on a computer without a display, please use Headless rendering, otherwise the Jupyter tutorials will fail to execute.

Install system dependencies#

Ubuntu

sudo apt-get -y install doxygen texlive texlive-latex-extra ghostscript pandoc

macOS

First, install a TeX distribution such as MacTeX.

brew install ghostscript pandoc doxygen

Building C++ documentation#

If you only want to build C++ API documentation, clone the Open3D repo and run doxygen.

git clone https://github.com/isl-org/open3d
cd open3d/docs
doxygen Doxyfile.in

Start browsing the generated C++ API documentation from the file docs/doxygen/html/index.html. Read on if you want to build the full documentation (including Python API and tutorials).

Install or Build Open3D#

pip install open3d

To instead build Open3D from source, see Build from source.

Install Python dependencies#

pip install -r docs/requirements.txt

Build docs#

cd docs

# Run `python make_docs.py --help` to usage of the flags.
python make_docs.py --help

# Example: build .rst and C++ docs only, skip notebooks.
python make_docs.py --execute_notebooks=never --sphinx --doxygen

# Example: build .rst and C++ docs only, skip notebooks, with parallel build.
python make_docs.py --execute_notebooks=never --sphinx --doxygen --parallel

# Example: build .rst and c++ docs, execute notebooks when it has not been executed.
python make_docs.py --execute_notebooks=auto --sphinx --doxygen

The docs html will be saved in docs/_out folder.

Preview#

Open docs/_out/html/index.html in a web browser to preview the docs.

google-chrome docs/_out/html/index.html

Create Python stubs (type hints) for type checking and autocomplete#

You can get type checking and auto-complete features in editors and IDES (e.g.

VS Code, PyCharm, etc.) using type hints produced from Open3D. These can be created with the pybind11-stubgen tool and placed alongside the Open3D files:

# Install open3d and pybind11-stubgen
pip install pybind11-stubgen open3d
# Print location of install open3d library
pip show open3d
# This outputs a line like:
# Location: path/to/venv/site-packages
# Create stubs and place them next to Open3D files
pybind11-stubgen -o <path/to/venv/site-packages/> --root-suffix "" open3d