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-0.0.13.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-0.0.13-py3-none-win_amd64.whl (43.6 MB view details)

Uploaded Python 3Windows x86-64

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

File metadata

  • Download URL: nanovdb_editor-0.0.13.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-0.0.13.tar.gz
Algorithm Hash digest
SHA256 938600b7059cef6409851aefa6fd03e3bd40462efdb90b3f11e8bb99a0c242be
MD5 3b28ebc4f9a4a27f9e011e10ba7b8ae3
BLAKE2b-256 b3fd7d3c6ab651875269258dfb0b039c661c41c8da993fdee0d1b101e9727d59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor-0.0.13-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4db7aa43cf9da45cc9522540b62e7cbcd1f1af330d2e0f467dc2d7c9c97f28a6
MD5 af9b9adac58eceb07c37c8cbe7e82de8
BLAKE2b-256 26d5b47dddb0dcf2b2fa6c5e365744ff185ba0aa71ce1181e485f18abdda8062

See more details on using hashes here.

File details

Details for the file nanovdb_editor-0.0.13-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nanovdb_editor-0.0.13-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 082547ef5b8d6cb11c9f2c82ffea1fe69a2c0d44e3ba828153ff5c9004bd129f
MD5 88fb1a1b0aa72a37aa4ff57672bc6529
BLAKE2b-256 5fe6fdec1db2b92771641dcf3af3907e6d58b4c75f0fb78b1b7aa26e3df6a067

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