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.22.tar.gz (22.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.0.22-py3-none-win_arm64.whl (14.8 MB view details)

Uploaded Python 3Windows ARM64

nanovdb_editor_dev-0.0.22-py3-none-win_amd64.whl (53.2 MB view details)

Uploaded Python 3Windows x86-64

nanovdb_editor_dev-0.0.22-py3-none-manylinux_2_35_x86_64.whl (74.9 MB view details)

Uploaded Python 3manylinux: glibc 2.35+ x86-64

nanovdb_editor_dev-0.0.22-py3-none-manylinux_2_34_aarch64.whl (23.3 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

File details

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

File metadata

  • Download URL: nanovdb_editor_dev-0.0.22.tar.gz
  • Upload date:
  • Size: 22.5 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.22.tar.gz
Algorithm Hash digest
SHA256 159468c3db0354e080b4872df3aab83a18a9286bace8e90853d8bbd227f5b44c
MD5 a393407758fa1114f4f973a7b6e88304
BLAKE2b-256 76fc1816052c4bd16957b46d7def10af6cfa1775214c49061a2408dfa7d19e0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.22-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 3a3af2a3e00dee5d24e62317ed4c3433b86a645de740a0d4d99a735d7d3ca79d
MD5 d9e0aed791c0ffe8e56a3351ee1cc939
BLAKE2b-256 b2821ec15105ab499ef5459c0b83ac839e8fef175f31bb97f4a388d94879709f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.22-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 fd414328e4b15feb62c9a2b12ebabce98393c1b76e0d7f5fdbf05d40257abeec
MD5 9c641b5615ca833a40401d15ac693e96
BLAKE2b-256 ab0c574ebf25bc46d16ccffa36d55739034d15162dd1dea1d8a61ed7f9385ab2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.22-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 bc2ea3d0765cd151f7fcbae25c32f7dc0d5ede4aee62bc8b06cee430457e43ef
MD5 6f5ef97d06e9b30c51d6d4f59ad67d06
BLAKE2b-256 bc60cdf521024f423ddace0c6e10a7a9e54676b3d1a963684a8af9502ce6d49c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.22-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 66fc7a89392a1933cc985eb6153e6616b0824027c9745523d7b1f45b09a3bbda
MD5 6311acb2b395efb92414b3f69542f1ac
BLAKE2b-256 44c0fd6a17555b50dbc1c6b08485334402932d5365fb76ecc9506adb29d4cac8

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