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)

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.0.18.tar.gz (21.6 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.0.18-py3-none-win_amd64.whl (43.6 MB view details)

Uploaded Python 3Windows x86-64

nanovdb_editor_dev-0.0.18-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.2 MB view details)

Uploaded Python 3manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

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

File metadata

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

File hashes

Hashes for nanovdb_editor_dev-0.0.18.tar.gz
Algorithm Hash digest
SHA256 e91b382e51227b5a49649ad8a7c046c2eca5451698e50902936b87af8c54615c
MD5 407c61935a3a0ab7453aeecef8911902
BLAKE2b-256 da820533ae673d92b5548b390409ecaeec812e78174ebf9b78f414cf4bebd45c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.18-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b2a6d6f9ea8e2b6d5dac25fcca25284b9b8582cf672cce26806537bdea7b9d25
MD5 354a4a63d22fa0219efc7dd8c123e32e
BLAKE2b-256 00c3a6b20ef5ee7124f966e063f6822f090ac0dadf5b1a05c76f73a0ef814f1a

See more details on using hashes here.

File details

Details for the file nanovdb_editor_dev-0.0.18-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.18-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 95fae0c6b3955e67fe5789c0505a3341944bbfb448773da1dfd3a8ef5e7f9445
MD5 2f84d38fcfc70c863fd171b91af836b9
BLAKE2b-256 9c62f6ba20ea10b751802ed5788e2c9af552e0967ed6e85c846c9a4db903f1e2

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