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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

nanovdb_editor_dev-0.0.21-py3-none-manylinux_2_34_x86_64.whl (46.4 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

nanovdb_editor_dev-0.0.21-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.21.tar.gz.

File metadata

  • Download URL: nanovdb_editor_dev-0.0.21.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.21.tar.gz
Algorithm Hash digest
SHA256 6d46a23fd0c2d09e6bfed4127439887673c58a6f88cc37d37041fa71187cd7f7
MD5 e1d2268d4141dd03ec053a32f10804b8
BLAKE2b-256 f440c64847464b35ca14fdd9ddd28d4d98a8bcdeec9d1a9b3c7d23a5d65469f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.21-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 c302612767b5c48a406a231908c56b8cdabcf23db3eedcf0c03be52de7e379ce
MD5 d5147b047816ae3e921878ddbfa90f26
BLAKE2b-256 7387326f1c93f2f16db2ec1670f69b5d29c47bed08cc9386223040a77aed2e44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.21-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4f89c646b9fceef424f97557ed806f5e460bd7420f532ddb330fa6563bce6911
MD5 a234ea4d174a26388088d93b887dbe86
BLAKE2b-256 3842d2fffbe2316214b7448326c783c8dd9b9ccc2cb3c7375b02531c17b3d3af

See more details on using hashes here.

File details

Details for the file nanovdb_editor_dev-0.0.21-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.21-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3d4d59d4b86e3c68d4bc4f7443a981cbe86cce727022cffdbe7a31d185edda1d
MD5 ef0dae9e61c79cd2096ec71583febefe
BLAKE2b-256 2914cd8ce371488ffb14dbfd83a1bcbe640af66f983593d9e49d11133d3b69ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.21-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 7e43692774cf0d570bca51255b109908093c6adeac79d4d770ccd3b40222bff4
MD5 655e35cc1194b767f63fae8639e6b310
BLAKE2b-256 0e8c130ed70071ca7b631e413a95a7b9cc5048f6e2960b85444660a3c04d9e08

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