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.0.tar.gz (24.5 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.0-py3-none-win_arm64.whl (14.9 MB view details)

Uploaded Python 3Windows ARM64

nanovdb_editor_dev-0.1.0-py3-none-win_amd64.whl (53.3 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.34+ ARM64

File details

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

File metadata

  • Download URL: nanovdb_editor_dev-0.1.0.tar.gz
  • Upload date:
  • Size: 24.5 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.0.tar.gz
Algorithm Hash digest
SHA256 b3d9c7d8c3f6bf999dcac4a9014677e15cdbcabb90e412dc6cfaeaf62730a10f
MD5 107151cd7d77150368d1bd634e23537d
BLAKE2b-256 ff5d69c5ebb4d0f51a22d731bf1553f06409acdaf030e6e5d97b8c6c78a4abf1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 9a96eb85264b6a3d94f11350642872acbb96c1899273be75d3a8fd832e17f9e3
MD5 e925375c11450109e9ac3c001f03443f
BLAKE2b-256 dec9dc6b1464e2159fa286a603ae7a3c5fc36bb6948308c8f9d327ecab66029d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a3f92975ea615859e899fde99c5dc0cc14dd66a045d405ab18f35f6e89825d79
MD5 846c6579ce53603b2288dc8a4af2b993
BLAKE2b-256 11507534dc05c7ecd0668034747cd4f302e34e1446afe9be447039ba6f87765a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.0-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 fa00f37ade9e2281482e942e972a938ffd89b689a2efa2696a772897d9927949
MD5 d0f5b69cb817fac87610217bfc5ca064
BLAKE2b-256 976674ac92ab7ee7a67915f0d8418104df8f521579b9a545b2f5e16a8554f054

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.1.0-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 cfa6f537e1e93ca503f45739302ab1e22929666de17362883d721de1dc8c7b1b
MD5 efac4a6e1c4ebab4ee46c31b439ca384
BLAKE2b-256 cf4519034cc6bb3d4e1fbc0bfa14825fe6389f9beb42594f9e717c64678dfb35

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