Skip to content

pySpatialML v0.5.0

Choose a tag to compare

@bd-jimmy bd-jimmy released this 03 Sep 00:20
7421135

First release under the new pySpatialML name (formerly pySecureMR). This is a ground-up rework focused on SpatialML pipeline authoring and a
LiteRT/TFLite model workflow, with a single unified pyspatialml CLI and host + on-device pipeline execution.

Renaming note: the project and its repository moved from pySecureMR → pySpatialML. The securemr Python module is retained for operator
bindings and py2smr tracing; the user-facing tool is now pyspatialml. The PyPI distribution is published as pyspatialml-pico (import names
securemr/pyspatialml are unchanged).

Highlights

  • New unified pyspatialml CLI covering the full workflow: model → pipeline → package → run → compare.
  • LiteRT/TFLite model workflow replaces the previous QNN toolchain. Model commands delegate to the Google AI Edge LiteRT CLI (installed/managed
    on demand), with ONNX conversion via a managed onnx2tf.
  • Pure-Python package — native _securemr bindings and bundled .so libraries removed. Install is now pip install pyspatialml-pico, no
    prebuilt binaries required.
  • Pipeline authoring from the CLI — build, validate, and inspect pipeline JSON, or trace a decorated Python function into a pipeline with
    py2smr.
  • SpatialML pipeline packages — create/validate/inspect self-contained packages (pipelines, models, glTF assets, manifest) with inline model
    metadata.
  • Run pipelines two ways — host Python executor, or a connected XR device through a bundled runner APK, with matching per-pipeline output
    layouts and tensor comparison tooling.
  • Dual execution modes — packages support both xr and spatial runtime modes, with dedicated xr_pipeline_runner and new
    spatial_pipeline_runner runner apps.

What's new

CLI

  • pyspatialml tools litert {status,install,repair} — manage the LiteRT CLI in the tool cache.
  • pyspatialml model {info,run,convert,quantize,benchmark,visualize} — LiteRT/TFLite model operations (ONNX/PyTorch conversion supported).
  • pyspatialml pipeline {init,add-tensor,add-op,set-input,set-output,validate,inspect,trace} — pipeline JSON builder and py2smr tracing.
  • pyspatialml package {create,validate,inspect} — SpatialML pipeline package authoring.
  • pyspatialml run {host,device} — execute a package on host CPU or on a connected XR device (with --backend {npu,gpu,cpu} override for device
    runs).
  • pyspatialml operator {list,describe-op} — inspect supported operators.
  • pyspatialml compare EXPECTED ACTUAL — diff .npy tensor outputs/directories.

Operators & tracing

  • Expanded and reworked operator set with closer parity between xr and spatial, including spatial operators such as SCENEGRAPH_VISIBILITY and
    UPDATE_COMPONENT.
  • Substantial py2smr improvements (converter, ops, tracer, verifier) and a much larger operator test suite.

Packaging & docs

  • Ships two runner APKs (pyspatialml_xr_runner, pyspatialml_spatial_runner) as package data.
  • Pipeline JSON spec and SpatialML skill docs updated for schema v2.
  • Rewritten README.md and PyPI-ready pyproject.toml.

Breaking changes / removed

  • Renamed from pySecureMR to pySpatialML; the console entry point is now pyspatialml (the old securemr inspect CLIs are removed).
  • QNN toolchain removed — securemr/qnn/*, install_qnn, onnx_to_qnn, pytorch_to_qnn, qnn_model*, and qnn_to_pipeline are gone in
    favor of the LiteRT/TFLite path.
  • Native bindings removed — securemr/bindings/* (including _securemr and bundled OpenCV/SNPE .so files) deleted; the package is now pure
    Python.
  • Large serialized example/model binaries removed from the repo.

Requirements

  • Python 3.13 (required for the managed LiteRT runtime and CLI).
  • Linux or Windows (WSL2); development on macOS supported.

Install

python3.13 -m pip install pyspatialml-pico
# verify
pyspatialml --version
python -c "import securemr"