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-0.0.25.tar.gz (22.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-0.0.25-py3-none-win_arm64.whl (15.2 MB view details)

Uploaded Python 3Windows ARM64

nanovdb_editor-0.0.25-py3-none-win_amd64.whl (53.5 MB view details)

Uploaded Python 3Windows x86-64

nanovdb_editor-0.0.25-py3-none-manylinux_2_35_x86_64.whl (74.7 MB view details)

Uploaded Python 3manylinux: glibc 2.35+ x86-64

nanovdb_editor-0.0.25-py3-none-manylinux_2_34_aarch64.whl (23.1 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

nanovdb_editor-0.0.25-py3-none-manylinux_2_27_x86_64.whl (80.6 MB view details)

Uploaded Python 3manylinux: glibc 2.27+ x86-64

nanovdb_editor-0.0.25-py3-none-macosx_15_0_arm64.whl (63.5 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

File details

Details for the file nanovdb_editor-0.0.25.tar.gz.

File metadata

  • Download URL: nanovdb_editor-0.0.25.tar.gz
  • Upload date:
  • Size: 22.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-0.0.25.tar.gz
Algorithm Hash digest
SHA256 988d95565ec9e615c1a9126ec6ac27b849bbc6c5b385bebc0f407290db677c4d
MD5 c76e4f1a986057393cb59ac656b25625
BLAKE2b-256 922519ef5055d487e0b5a87c6f0a31aada576c953369c817b026680d42e445bf

See more details on using hashes here.

File details

Details for the file nanovdb_editor-0.0.25-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for nanovdb_editor-0.0.25-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 cefaca49ad7775c32fa6981df8b0b56e26ce9684e754437bb58e673dc499e5e9
MD5 b7ae95132cffeee30a333f4c0f7f0c03
BLAKE2b-256 04be576f7f4c47a1639b390898e65c2bff71a40c91af8431cb88543530785b06

See more details on using hashes here.

File details

Details for the file nanovdb_editor-0.0.25-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for nanovdb_editor-0.0.25-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d6c4def463e561a504af1435f6ca8f4146cc3e7bfa3e3f8ee5171065b00d9a6b
MD5 8ccbd648495e0b063c6b556e5d6a8f0e
BLAKE2b-256 1d98875e6bc1f93283f6a0f7fdce2636f2ca462712b8edbced827765b6c0b554

See more details on using hashes here.

File details

Details for the file nanovdb_editor-0.0.25-py3-none-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for nanovdb_editor-0.0.25-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 e0d290479e8b343264fb9129dbec7d7b74950a2c06c476f069c9321baf7a20bb
MD5 9b15fb19938140ad495af5547ed56972
BLAKE2b-256 07d7b93da4be3ceed3646041ae37faa02e7b7c270e476073f7a0970d421dc6cd

See more details on using hashes here.

File details

Details for the file nanovdb_editor-0.0.25-py3-none-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for nanovdb_editor-0.0.25-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 a4b263febbcd0142ec333e81f5449c5b2b904eb9fbb73ed90f5845f8409e410c
MD5 280ee424686ae018fa286f6a42ef2050
BLAKE2b-256 46e533d34fd2a820b70973998680d68096b8d4e5d490b772c1c5234bacb4a445

See more details on using hashes here.

File details

Details for the file nanovdb_editor-0.0.25-py3-none-manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for nanovdb_editor-0.0.25-py3-none-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 845f1f230616ad700d210a09fd3be45888b82dcbe2acda07ea09275a00c44081
MD5 e04a8e26dc7ead603ed2e3c9e73fa778
BLAKE2b-256 290f647201b432241f311b1cc2e96deb386dedf27a933a94d0e152daa473070a

See more details on using hashes here.

File details

Details for the file nanovdb_editor-0.0.25-py3-none-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for nanovdb_editor-0.0.25-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6cb4d26cfa3327a6be35cf7b25bfef1c37eb1f6e3617e4e0ec5af1576e802b2b
MD5 4bfb25a643b43b67e350cf4278e77a5d
BLAKE2b-256 48cde5e7d9acfd6a434d2e25b3e4e3bc5fd3fbb5d2b91f76c953972491626540

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