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.24.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.24-py3-none-win_arm64.whl (15.2 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

nanovdb_editor-0.0.24-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.24-py3-none-manylinux_2_34_aarch64.whl (23.1 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

nanovdb_editor-0.0.24-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.24.tar.gz.

File metadata

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

File hashes

Hashes for nanovdb_editor-0.0.24.tar.gz
Algorithm Hash digest
SHA256 796df895862ba42373b503900e10c84ab44909e85a6a7566255732878fa4dba9
MD5 720536fae292598e315edc855c82d81d
BLAKE2b-256 ea382fdcb5679b51fd6ac7551c80e43bf74d6efd5b1d56ccdfca164b248ed4ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor-0.0.24-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 d2a48c2f767a84979aadd8d0ce790e484a624a8eecc9683db8ae1d5d0aacf5c0
MD5 8908742e94e50a1400f1e9f679dc69ef
BLAKE2b-256 d2a64c709d6932a4ded5fbc54a236234954d9ede2c92988a7f4e2255fe3e5bdd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor-0.0.24-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 fcf80ac57cdc79018e20a60a3566b1c910891e8132fabe0da1bf275f1704ba24
MD5 c24d8243e6b5e2b611af27f0c301d3fc
BLAKE2b-256 10237729963ef5e43d6e3cca20bfcf0dffc49934ecca8cc05e7b7beeebe04e81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor-0.0.24-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 c8c1053661f63d120d3f22173a9121007b20baa3345545b1d2a37332fa2ac699
MD5 2f39f99685c9b8bc77add4a3e63bf483
BLAKE2b-256 4bb78e966cd2b8d51699f6bff2b2728c014cf72e1c3b7781c4ba06bfe8316c8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor-0.0.24-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 ebeaf147b0641311efa82a59d2ea3b9bccefe97249126d833c76284abb2ffd30
MD5 f1f8298c50de35aa23461216b3f5559c
BLAKE2b-256 0a3dcfbf2e05bcaa24e037e258254c148e87a3214e8a622645b9a661d00ee51d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor-0.0.24-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 98c7019716df30edd9ba3cd883828af1375c04bcd05acc8a8f1eee0b6a87d53f
MD5 da65d86a8c5804f8e523b215c5205f95
BLAKE2b-256 fea8334ef13eaf1730f20ab76c70d64d2b473ae5083de8ccb228424f9e26f305

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