NanoVDB Editor
Prerequisities:
numpy
Running in Docker
To run the editor in the docker container, the Dockerfile needs to contain:
EXPOSE 8080
ENV NVIDIA_DRIVER_CAPABILITIES compute,graphics,utility
RUN apt-get update \
&& apt-get install -y \
libxext6 \
libegl1
Then run with the NVIDIA runtime selected (https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html):
docker run --runtime=nvidia --net=host --gpus=all ...
Hello World
import nanovdb_editor as nve
editor, compute, compiler = nve.create_default()
config = nve.EditorConfig()
# Default values, set as needed
config.ip_address = b"127.0.0.1"
config.port = 8080
config.headless = 0
config.streaming = 0
editor.show(config)
# editor.wait_for_interrupt() # uncomment when streaming is enabled
Shader Parameters
Shaders can have defined struct with shader parameters which are intended to be shown in the editor's UI:
struct shader_params_t
{
float4 color;
bool use_color;
bool3 _pad1;
int _pad2;
};
ConstantBuffer<shader_params_t> shader_params;
Shader parameters can have defined default values in the json file:
{
"ShaderParams": {
"color": {
"value": [1.0, 0.0, 1.0, 1.0],
"min": 0.0,
"max": 1.0,
"step": 0.01
}
}
}
Supported types: bool, int, uint, int64, uint64, float and its vectors and 4x4 matrix.
Variables with _pad in the name are not shown in the UI.
Those parameters can be interactively changed with generated UI in the editor's Params tab.
To display a group of shader parameters from different shaders define a json file with various shader paths:
{
"ShaderParams": [
"editor/editor.slang",
"test/test.slang"
]
}
Acknowledgements
This project makes use of the following libraries:
- zlib – Compression library
- c-blosc – High-performance compressor optimized for binary data
- Vulkan-Headers – Vulkan API headers
- Vulkan-Loader – Vulkan ICD loader
- GLFW – Windowing, context, and input (optional)
- Dear ImGui – Immediate-mode GUI
- ImGuiFileDialog – File dialog for Dear ImGui
- ImGuiColorTextEdit – Syntax-highlighted text/code editor widget
- Slang – Shading language and compiler
- filewatch – Cross-platform file watching
- JSON for Modern C++ – JSON serialization for C++
- cnpy – Read/write NumPy .npy/.npz files from C++
- zstr – Transparent zlib iostream wrappers
- llhttp – High-performance HTTP parser
- Asio – Asynchronous networking and concurrency primitives
- RESTinio – Lightweight HTTP server framework
- fmt – Modern formatting library
- argparse – Header-only argument parser for C++17
- expected-lite – std::expected-like type for C++11/14/17
- libE57Format – E57 point cloud IO (optional)
- OpenH264 – H.264 encoder (optional)
- GoogleTest – C++ testing framework
Many thanks to the authors and contributors of these projects.
Metadata
Release files for nanovdb-editor 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nanovdb_editor-0.1.6.tar.gz | 25.6 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| nanovdb_editor-0.1.6-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| nanovdb_editor-0.1.6-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| nanovdb_editor-0.1.6-py3-none-manylinux_2_35_x86_64.whl | Python 3 | none | Linux glibc 2.35+ x86-64 | Details |
| nanovdb_editor-0.1.6-py3-none-manylinux_2_34_aarch64.whl | Python 3 | none | Linux glibc 2.34+ ARM64 | Details |
| nanovdb_editor-0.1.6-py3-none-manylinux_2_27_x86_64.whl | Python 3 | none | Linux glibc 2.27+ x86-64 | Details |
| nanovdb_editor-0.1.6-py3-none-macosx_15_0_arm64.whl | Python 3 | none | macOS 15.0+ ARM64 | Details |
Total release size: 313.4 MB
Release files / nanovdb_editor-0.1.6.tar.gz
| Download URL | nanovdb_editor-0.1.6.tar.gz |
|---|---|
| Size | 25.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5bfed0803c2f4f04dcbb11bf7f828ae358f1753271f82e2d71628a242b7ba349
|
|
BLAKE2b-256 checksum How to use checksums |
976c5baf823c7846647f8c3ec37d65344f81564c6e1a8b31babfb807562ba899
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / nanovdb_editor-0.1.6-py3-none-win_arm64.whl
| Download URL | nanovdb_editor-0.1.6-py3-none-win_arm64.whl |
|---|---|
| Size | 15.5 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
7860b94f723ccf75b8d76d5c56894ed731781117b44496ebf2ee1032861d6ce7
|
|
BLAKE2b-256 checksum How to use checksums |
4b9d3ef9866f15285385da687cff0b9a9bd4c45c3ae5d45eae1e4d06576bbc69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / nanovdb_editor-0.1.6-py3-none-win_amd64.whl
| Download URL | nanovdb_editor-0.1.6-py3-none-win_amd64.whl |
|---|---|
| Size | 54.0 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1eb3fcba24e85fac3b521ba604bed67254b98f8d50435f5c1df35a15e9f54e88
|
|
BLAKE2b-256 checksum How to use checksums |
6de62137a9598424193c01483cae9adad2ac87b259c0bb7c6f280ac22d7f0836
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / nanovdb_editor-0.1.6-py3-none-manylinux_2_35_x86_64.whl
| Download URL | nanovdb_editor-0.1.6-py3-none-manylinux_2_35_x86_64.whl |
|---|---|
| Size | 75.3 MB |
| Tags | Linux glibc 2.35+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
6ed5191e0b6f4845ca1bbd5a7d17c470231f8cdcbe365bf926ed96e96f81a93d
|
|
BLAKE2b-256 checksum How to use checksums |
2cfe5cea6b76f0738437add84f6ff168891a6b049f7f3559af61be1f22ee7294
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / nanovdb_editor-0.1.6-py3-none-manylinux_2_34_aarch64.whl
| Download URL | nanovdb_editor-0.1.6-py3-none-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 23.6 MB |
| Tags | Linux glibc 2.34+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
4d7d319023a0c0c24a1833c7677341286f644919d9ac11e4681f7ea85e874e7b
|
|
BLAKE2b-256 checksum How to use checksums |
b077fb205b8d38f7e182e02f1e2862818971adad9872497c1b9715147d032cde
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / nanovdb_editor-0.1.6-py3-none-manylinux_2_27_x86_64.whl
| Download URL | nanovdb_editor-0.1.6-py3-none-manylinux_2_27_x86_64.whl |
|---|---|
| Size | 81.1 MB |
| Tags | Linux glibc 2.27+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
a46b6fa20c086f36d150672dff43f72f00646ddaca83eab3671b31ee3c9b0bcb
|
|
BLAKE2b-256 checksum How to use checksums |
8066a4c1a1d5b46e18b329bb9706517e66a2828563056c0dcd5b814190fb84c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / nanovdb_editor-0.1.6-py3-none-macosx_15_0_arm64.whl
| Download URL | nanovdb_editor-0.1.6-py3-none-macosx_15_0_arm64.whl |
|---|---|
| Size | 63.9 MB |
| Tags | Python 3 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e85e79d3adcf091eb02eca1678858162f1f9eb050fc51af30915dff4e8cd6fd5
|
|
BLAKE2b-256 checksum How to use checksums |
1e23d5fb5e648fd7b310efa89d6724569abfdda820996e76bfb159cea4a9715f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|