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.3.tar.gz (25.1 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.3-py3-none-win_arm64.whl (15.3 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

nanovdb_editor_dev-0.1.3-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.3-py3-none-manylinux_2_34_aarch64.whl (23.4 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

nanovdb_editor_dev-0.1.3-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.3-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.3.tar.gz.

File metadata

  • Download URL: nanovdb_editor_dev-0.1.3.tar.gz
  • Upload date:
  • Size: 25.1 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.3.tar.gz
Algorithm Hash digest
SHA256 b6dda9dbb2cbc8f79ff8ab2052ff7cdb18e4532ab744151a4e92e0c27662fd25
MD5 9b9df049b59423a95e33c7a4abf64e93
BLAKE2b-256 ac781ec35054bdd847117cf502579f245e4017551d07fc4a6248e89d0e23336e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.3-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 d6ac116a192670c0bad859455c1f563ea03f6cfa065e2fa451d255b0770cb6f6
MD5 181ba3a88f23eb11b2e02198f4b0102b
BLAKE2b-256 eb14a85f8efa0b0d443142f5171f818049a0889bed64050bb36c537532c4c3a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d8968d4f5c1aad93c1c87830868eb8a4ef61e67072dad1f4b1a22a08896a6e15
MD5 93bb437b2121c754170fa7e6e9bed81c
BLAKE2b-256 13945ad6d5ff2edf065888528e6100950c1421f2eda452b215a56e07369f0d01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.3-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 0dfd499e5750b7f8c71d26b5922cd1d8abb5e26d682af2236880376dfab53b37
MD5 20e93280d26fcfd226e205107bc8d9f1
BLAKE2b-256 64b62bcc3279391d938460201b01fcb7914211b067c39d0fccae6d1da88a3110

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.3-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 41d30cf70e7c61f00dd3d29f16c10229d2cccbe4bd08ce91d61c39d29ec6d4ce
MD5 e433590c317481f6f5a6375e2263022b
BLAKE2b-256 583473c582cd6ab019958ae9e026051383054f30955d9d0117c55b9715f20514

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.3-py3-none-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 3ff140063052effee326899cc524fcb8cff75a3013321f77127aa976319030cf
MD5 5ea098fedcf2f8db5020486feecf323d
BLAKE2b-256 c59cc5ff9e7c3a8e62ad7a8831d7dfcc4e4a339f7eb15be25bed0f4ba71dcc0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.3-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 3b89eab1ef112fc3c6bcd7cf663a49786e12dcd95fdbacdea01d187d31b2fbe9
MD5 ce2afd601881d8baa386624cae1e0657
BLAKE2b-256 45b53e84fa36b710263dda2511e2158994429f16c6a2ca040842c6ad9d95fbe7

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