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

Uploaded Python 3Windows x86-64

nanovdb_editor-0.0.9-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (15.9 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.9.tar.gz.

File metadata

  • Download URL: nanovdb_editor-0.0.9.tar.gz
  • Upload date:
  • Size: 19.0 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.9.tar.gz
Algorithm Hash digest
SHA256 5c6da5953c030a9c809b719ba5e96c781f17ce87f3966db03501ece419c1b502
MD5 4e2111a34d1b4b32cc36d76f68b5e8b2
BLAKE2b-256 417c02c51cf8626873e891174b504f274ee55530ccfb63d0f0d7d2030eb71ea4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor-0.0.9-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 fd6e23a04aa51b77674d9013528e73324da12a987e9b7c88c0a03a4cf1c5e6a9
MD5 d9ae26a80b1620eb4d9188f239a5cb99
BLAKE2b-256 7e1a434a9ef6666df96001541fecc95f11daafe2e07281b8e8ca25ca4ec880c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nanovdb_editor-0.0.9-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0d9a0497ce61954ae28c77d092d441ae5d24f4bcce5cd09312c7bea270d74be
MD5 3abb5006f49f7bd5521a9b133c282c59
BLAKE2b-256 776912480a2d0fa7a1157ea611e519debaf45074117053538f0da4c6d4dcf43c

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