CesiumGS / cesium-omniverse

Bringing the 3D geospatial ecosystem to Omniverse
https://cesium.com/platform/cesium-for-omniverse/
Apache License 2.0
57 stars 7 forks source link

Python API #12

Open lilleyse opened 2 years ago

lilleyse commented 2 years ago

Related to https://github.com/CesiumGS/cesium-omniverse/issues/3 and https://github.com/CesiumGS/cesium-omniverse/issues/4

We should have a lightweight Python API that wraps the C++ 3D Tiles streaming API.

This is the API used by our Omniverse Kit extensions. It should also be generic enough that it can be used by other Kit extensions and even non-Omniverse Python code.

Currently we use pybind11 to generate a Python Dynamic Module (.pyd), which includes some baked-in documentation. See PythonBindings.cpp. In addition to this we probably need some basic .py wrapper code to create a proper Python module.

lilleyse commented 2 years ago

Or we could take the complete opposite approach and do as little as possible in Python. The examples in https://github.com/NVIDIA-Omniverse/kit-extension-template-cpp show how to write a Carbonite plugin that hooks directly into the update loop.

lilleyse commented 1 year ago

An initial Python API was added in https://github.com/CesiumGS/cesium-omniverse/pull/496. This issue could stay open until we have versioning and documentation figured out.