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.5
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.5.tar.gz | 25.6 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| nanovdb_editor-0.1.5-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| nanovdb_editor-0.1.5-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| nanovdb_editor-0.1.5-py3-none-manylinux_2_35_x86_64.whl | Python 3 | none | Linux glibc 2.35+ x86-64 | Details |
| nanovdb_editor-0.1.5-py3-none-manylinux_2_34_aarch64.whl | Python 3 | none | Linux glibc 2.34+ ARM64 | Details |
| nanovdb_editor-0.1.5-py3-none-manylinux_2_27_x86_64.whl | Python 3 | none | Linux glibc 2.27+ x86-64 | Details |
| nanovdb_editor-0.1.5-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.5.tar.gz
| Download URL | nanovdb_editor-0.1.5.tar.gz |
|---|---|
| Size | 25.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c0bb0631084dfef0679dc9ee271a246dfd946f627151a74918788af921ab51bb
|
|
BLAKE2b-256 checksum How to use checksums |
dbf7849e72df94f2e80096ada98a477c1d8ae73e1d0f0f9ed1455d8b448a14a0
|
| 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.5-py3-none-win_arm64.whl
| Download URL | nanovdb_editor-0.1.5-py3-none-win_arm64.whl |
|---|---|
| Size | 15.5 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
fe0f7786f2688274da3614b59bd91d2228a13846b3c5e148932613e58c047b56
|
|
BLAKE2b-256 checksum How to use checksums |
e8dfb325497c36d8a9c61f348bab5493693e0e767cd37d58be8b886c72db772b
|
| 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.5-py3-none-win_amd64.whl
| Download URL | nanovdb_editor-0.1.5-py3-none-win_amd64.whl |
|---|---|
| Size | 54.0 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e5f0f358bacfdbfb80142caa967c33c7489d193b3d9e0d1e1eed167f84eadc1c
|
|
BLAKE2b-256 checksum How to use checksums |
68ed519cf16ae7bba4b529f430e8fdf7f432699bdfa13c9482cf5dafbd2e5218
|
| 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.5-py3-none-manylinux_2_35_x86_64.whl
| Download URL | nanovdb_editor-0.1.5-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 |
b0bd7fd027995862ca69871b3061e21dad25ff17c007be72aba46dcd0843e6a1
|
|
BLAKE2b-256 checksum How to use checksums |
349209db3bf5f87d6399dda39ed195fb26fbbb92ffb1ff8e66449b082bc238db
|
| 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.5-py3-none-manylinux_2_34_aarch64.whl
| Download URL | nanovdb_editor-0.1.5-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 |
e13122e137fcd510cc3ea45ce89266057d2c6118354bbddd2688b9ee7cc46841
|
|
BLAKE2b-256 checksum How to use checksums |
e2e5c29d52fcd74aa4818af274521607a165270d50ef6bfbf47463e8038dd288
|
| 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.5-py3-none-manylinux_2_27_x86_64.whl
| Download URL | nanovdb_editor-0.1.5-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 |
8c24c7026977ba6dd810e2c7018df90ffcb552a9f3d35cd0e1060d1e5167186b
|
|
BLAKE2b-256 checksum How to use checksums |
dce7c7101f8398606d848bf0f2ead6328876b5328ac92aa5d9df0c31d80c70ed
|
| 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.5-py3-none-macosx_15_0_arm64.whl
| Download URL | nanovdb_editor-0.1.5-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 |
b1046488d9e5cad72c2227398bcf8460fb09af022d69cc0b9f5e6058fd7c7c04
|
|
BLAKE2b-256 checksum How to use checksums |
4405d54f792886c51942fb33096b9663242e6c764104d05b068a33309efed21e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|