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

Uploaded Python 3Windows x86-64

nanovdb_editor_dev-0.0.20-py3-none-manylinux_2_34_aarch64.whl (15.3 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

nanovdb_editor_dev-0.0.20-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.20.tar.gz.

File metadata

  • Download URL: nanovdb_editor_dev-0.0.20.tar.gz
  • Upload date:
  • Size: 22.4 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.20.tar.gz
Algorithm Hash digest
SHA256 60ea56ca32ec00072c1ab1663bd4514d69079570d3148d0987d1258c4111b0da
MD5 c5c0de280ce064ede8f5543e27dddd2b
BLAKE2b-256 39edb82ab356ec3a6dfc997ff6c2cacbaa93f6991871bae85dee051bf9eb293c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.20-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 33649a477e651d904e31545e359a92bcda863ff7bcc5b800ff626f4ad1ee4f33
MD5 23bab6ee5765c4ac1ecef738135c867f
BLAKE2b-256 765b225eae871ce832cbde62c6ca6d7aeab8d7c85502b2705c341eed3cf80be3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.20-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 546d69ee92be5ba4567723429c73385ae087555155bb3aa255d8afdf98ad495c
MD5 4bcbcbe16a28b7db1a2be9dbd05f307a
BLAKE2b-256 930c661ab5b2b5d83e2b6c9f84f518596dbd26f17669b01c93a4901090f14e71

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.20-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a72dc310434616e009bc3f280af529850a344711f92d2f3040706db596eac8a0
MD5 f0228fb860dd630c4941ee0a5622bf35
BLAKE2b-256 5632c29bb9ccfd73166560587dd564f2998e209e266bb69f3491721939548e95

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