Skip to main content

NanoVDB Editor Python Module

Project description

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(device_id=args.device)

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nanovdb_editor_dev-0.1.2.tar.gz (24.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

nanovdb_editor_dev-0.1.2-py3-none-win_arm64.whl (15.3 MB view details)

Uploaded Python 3Windows ARM64

nanovdb_editor_dev-0.1.2-py3-none-win_amd64.whl (53.7 MB view details)

Uploaded Python 3Windows x86-64

nanovdb_editor_dev-0.1.2-py3-none-manylinux_2_35_x86_64.whl (75.0 MB view details)

Uploaded Python 3manylinux: glibc 2.35+ x86-64

nanovdb_editor_dev-0.1.2-py3-none-manylinux_2_34_aarch64.whl (23.4 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

nanovdb_editor_dev-0.1.2-py3-none-manylinux_2_27_x86_64.whl (80.9 MB view details)

Uploaded Python 3manylinux: glibc 2.27+ x86-64

nanovdb_editor_dev-0.1.2-py3-none-macosx_15_0_arm64.whl (63.8 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

File details

Details for the file nanovdb_editor_dev-0.1.2.tar.gz.

File metadata

  • Download URL: nanovdb_editor_dev-0.1.2.tar.gz
  • Upload date:
  • Size: 24.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nanovdb_editor_dev-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8f35f2d629edc5d1ccd76d9f875e68d83c0c10e505a77d46d7f77186ab0dd4d2
MD5 905dab0ccbe30ebf799600759cee1f33
BLAKE2b-256 68a47f003410b70aabc26e104b779434190c773586838ba49a83a51125e0c90c

See more details on using hashes here.

File details

Details for the file nanovdb_editor_dev-0.1.2-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.2-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 d4688222a1a6a0aa167f00adb8deaa708b888d399c2859c5fc3e31bc86bb7dc6
MD5 a06cd2bba2143d55de12188bf4d57448
BLAKE2b-256 bf760ba75f245e8fe2363dcb2f7711fb1c09e9e46ee36846a6212c4a4abdf386

See more details on using hashes here.

File details

Details for the file nanovdb_editor_dev-0.1.2-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 49d5395233b85f106552c3498b39fec9d6e32f2208fa95ff6afcada68402cf9e
MD5 81ba093dd1d29a1251f08707ba50269e
BLAKE2b-256 2f32fa77ee6b49c01e9e286fa14eb5a4f4319ee9a3cd90e1ceec7f194d226cec

See more details on using hashes here.

File details

Details for the file nanovdb_editor_dev-0.1.2-py3-none-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.2-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 05375ad138189aada8a416f898a7659c50226b6001d73bf6a493c8dfb2e41955
MD5 a2f43e5bb4f7178ab5e9cf8b6305eeb2
BLAKE2b-256 ffb38f6d7f67f6be13358170b531d54e74595828ab6147b384aec105dcb762b4

See more details on using hashes here.

File details

Details for the file nanovdb_editor_dev-0.1.2-py3-none-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.2-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 7547fe59918feb7d58f8efca3995149ad7cceda17625bcbfc93c9308a4c60c70
MD5 375016c7fbb9d72449b4460b1bada390
BLAKE2b-256 5bad452e9af05093e8bb430d87da33d1538334f8167b5798a9926f40a407eb07

See more details on using hashes here.

File details

Details for the file nanovdb_editor_dev-0.1.2-py3-none-manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.2-py3-none-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 ff77c1337121cd19b1ba08b51c3d571cdb34633deee07d61bdbd0d306462ad8b
MD5 a3df77c1df626c484ff346b0d3b45997
BLAKE2b-256 b1a2077c45a5a961bd93af7f87faddd16bf0f1bed7e31291ae04d2dbfb2bb8f5

See more details on using hashes here.

File details

Details for the file nanovdb_editor_dev-0.1.2-py3-none-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.2-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 32471cd20a57224d4c0c66ee0f4c1a914c09cc8478fbf4c1de3e105a8e680f76
MD5 f4226eb94adfc55ea5c25d12414e87c3
BLAKE2b-256 4083c8d2e049c567317e478ad303d354848a3883c1cf45dbfa3d9cd37e1f62f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page