visii is a python-enabled ray tracing based renderer built on top of NVIDIA OptiX (C++/CUDA backend). The tool allows you to define complex scenes: 3d meshes, object materials, lights, loading textures, etc., and render them using ray tracing techniques. A scene can be described in many ways, you can use our simple mesh definitions, use multiple obj files, or load a complex scene defined in an obj file. visii can be used to export metadata about the scene, e.g., object segmentation.
We highly recommend that you use the pre-built wheels for python as follow:
pip install visii
Also make sure your NVIDIA drivers are up to date (R435 or above). If you need more information about how to install NVIDIA drivers on Ubuntu please consult this.
We wrote different examples covering most of the functionalities of visii, here. You can also find more extensive documentation here.
Exact commands used to visii can be found in .github/manylinux.yml and .github/windows.yml. More information on how to build will be added in the near future.
Here are the steps to build a docker image for visii.
cd docker
sudo sh get_nvidia_libs.sh
Since the CUDA docker image includes limited libs, this script adds the missing one for visii to run. This could potentially cause problems if the docker image is deployed on a different system, please make sure the NVIDIA drivers match on all your systems.
docker build . -t visii:07.20
You can run an example like follow,
make sure you change /PATH/TO/visii/
to your path to the root of this repo.
docker run --gpus 1 -v /PATH/TO/visii/:/code visii:07.20 python examples/01.simple_scene.py
This will save a tmp.png
in the root folder.
If you use this tool in your research project, please cite as follows:
@misc{Morrical20visii,
author = {Nathan Morrical and Jonathan Tremblay and Stan Birchfield and Ingo Wald},
note= {\url{ https://github.com/owl-project/visii/ }},
title = {{visii}: VIrtual Scene Imaging Interface},
Year = 2020
}