Skip to main content

NanoVDB Editor Python Module

Project description

NanoVDB Editor

Prerequisities:

  • numpy

Hello World

from nanovdb_editor import Compiler, Compute, Editor, EditorConfig

compiler = Compiler()
compiler.create_instance()

compute = Compute(compiler)
compute.device_interface().create_device_manager()
compute.device_interface().create_device()

editor = Editor(compute, compiler)

config = 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)

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

Uploaded Python 3Windows x86-64

nanovdb_editor_dev-0.0.15-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.0 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.15.tar.gz.

File metadata

  • Download URL: nanovdb_editor_dev-0.0.15.tar.gz
  • Upload date:
  • Size: 20.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.15.tar.gz
Algorithm Hash digest
SHA256 a39cec311888d8915327162b89443916c7b76b794207de7c0655d55829d5884c
MD5 6b82cbb867095281e01641be21053c5c
BLAKE2b-256 24364733164c7540405d510086671fd7fe0daa31e2b2ae97b532fa447a7eff2f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.15-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 c3c37aff8cc59fa181f8a6cc0b9b5a577bbe9a0f14187b45589c20990056cc16
MD5 7ae5865445b61eaf07096db83b41aa71
BLAKE2b-256 37228de8e778963bf0fddf1d8d79e135a3cf8684bb2b95011e5e7820c759dd03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor_dev-0.0.15-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d26a6abb03bb8cd0f7b22d43756b5a5c35253abe52a996f1933080a17e3b76d8
MD5 e29370e28ee45050b6040a956d6f19e7
BLAKE2b-256 2fd27a62b33f1a9074c40604db958990f484baf849536996a2367e3e8d5d15ee

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