Community-maintained Python bindings for NVIDIA OptiX (fork of otk-pyoptix with OptiX 9.1 support)
Project description
pyoptix-contrib
Community-maintained Python bindings for NVIDIA OptiX, forked from NVIDIA/otk-pyoptix.
This fork adds support for OptiX 9.1 features including cluster acceleration structures and cooperative vectors.
Requirements
- OptiX SDK 7.6 or newer (9.1+ for cluster accel / coop vec features)
- CUDA Toolkit 12.6 or newer
- CMake
- A C++17 compiler
Installation
export OptiX_INSTALL_DIR=/path/to/OptiX-SDK
pip install pyoptix-contrib
On Windows (PowerShell):
$env:OptiX_INSTALL_DIR = 'C:\ProgramData\NVIDIA Corporation\OptiX SDK 9.1.0'
pip install pyoptix-contrib
The package builds from source via CMake, so the OptiX SDK must be available at install time.
For additional CMake arguments, use the PYOPTIX_CMAKE_ARGS environment variable.
Usage
import optix
# Create a device context
ctx = optix.deviceContextCreate(cuda_context, optix.DeviceContextOptions())
# Query device properties
rtcore_version = optix.deviceContextGetProperty(
ctx, optix.DeviceProperty.DEVICE_PROPERTY_RTCORE_VERSION
)
See the examples directory for complete samples including triangle rendering, curves, denoising, and motion blur.
What's New in This Fork
- OptiX 9.1 support: Conditional compilation via
IF_OPTIX91macro - Cluster acceleration structures: Enums, structs, and host functions (
clusterAccelComputeMemoryUsage,clusterAccelBuild) - Cooperative vectors: Element types, matrix layouts, and description structs
- New primitive types: ROCAPS curve variants and associated flags
allowClusteredGeometrypipeline compile option- New device properties:
COOP_VEC,CLUSTER_ACCEL, max cluster vertices/triangles/SBT index/clusters-per-GAS
Windows: CUDA DLL Loading (Python 3.8+)
Python 3.8+ on Windows no longer uses PATH to find DLLs. PyOptiX will auto-detect CUDA from the CUDA_PATH environment variable. If auto-detection fails, set CUDA_BIN_DIR:
$env:CUDA_BIN_DIR = 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\bin'
License
BSD 3-Clause. See LICENSE.txt.
Acknowledgments
Original work by Keith Morley and NVIDIA Corporation (NVIDIA/otk-pyoptix).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyoptix_contrib-0.1.2.tar.gz.
File metadata
- Download URL: pyoptix_contrib-0.1.2.tar.gz
- Upload date:
- Size: 32.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3595491ba85b94a5a63e4cdeee5636aaba0d7b8376e309bc241b72e26fe3e5a2
|
|
| MD5 |
3a28181b6c0c2d6018882b5127e08fdf
|
|
| BLAKE2b-256 |
a2e4f16b5b7b22d661fd6aa68b3996a477a9b1803ecbb62b8af161e4d4df8b42
|
File details
Details for the file pyoptix_contrib-0.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyoptix_contrib-0.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 662.7 kB
- Tags: CPython 3.14, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8548e760ec84b1b612a7acc3608dabdd8e84fee28ce1de8752c5a6de9c8c290
|
|
| MD5 |
9a6a311d190a3471e7e7116eb45013c8
|
|
| BLAKE2b-256 |
8370e1da35f17b24aa0826cf243276b790baf28cfb5d4e1fcd6a995dad902598
|
File details
Details for the file pyoptix_contrib-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyoptix_contrib-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 662.5 kB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3412235b09210bebccbbdeeb2d844ebcf2400e1bb47a7ecae7760fb0d8e155a4
|
|
| MD5 |
e07a72cf613be0e0c47192c14381baec
|
|
| BLAKE2b-256 |
a195164f7ae3b1556259678138b24f52218e4eff78900902bc0b9ca897889127
|
File details
Details for the file pyoptix_contrib-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyoptix_contrib-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 661.3 kB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a822b3934277cf2e806bb86fe1ee9dd704237a5ffbfa21949427e847c904293
|
|
| MD5 |
6d256fe5de59ea9b14223c4992d2bfcf
|
|
| BLAKE2b-256 |
3c7bd5457918e29d045c6c844e8acae1ba27ae4a19d3b181ab2ca5efd8e0fac3
|
File details
Details for the file pyoptix_contrib-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyoptix_contrib-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 660.8 kB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b085efa475d87caaed63caf6ac1f580623c9043ae687655bf71a0f88a3627db2
|
|
| MD5 |
c67e576dc53cda0ccda03d1974941d2c
|
|
| BLAKE2b-256 |
0c60778500a00400127d7ffa1570a00816a8b486080d2c838e87af877ea4b1f3
|
File details
Details for the file pyoptix_contrib-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyoptix_contrib-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 659.1 kB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f128f18d05ec806e7f4fe67ffba53342124271bf443f5b9b2dffc48ea1fd3d2
|
|
| MD5 |
79754498d9700b0a0dd8586b1875215b
|
|
| BLAKE2b-256 |
22de9620f221ea48b563b608a23218952a053c258d538f5b2ccda0cca8d43f38
|