Skip to content

Releases: Pico-Developer/pySpatialML

pySpatialML v0.5.2

Choose a tag to compare

@matthewnbd matthewnbd released this 07 Oct 23:42

pySpatialML v0.5.2

This release brings pipeline authoring, validation, and execution into closer alignment with the SpatialML/OpenMR pipeline specification.

Highlights

  • Standardized canonical operator names across the CLI, converters, validators, examples, and runtime.
  • Replaced generic operator arguments with operand-specific CLI arguments such as --src, --dst, --operand0, and --result.
  • Added support for dynamic and named model/JavaScript tensor bindings.
  • Centralized operator contracts so pipeline authoring and validation use consistent input and output definitions.
  • Strengthened validation for:
    • Tensor descriptors and required placeholders.
    • Operator signatures, operand counts, and tensor types.
    • Model input and output bindings.
    • Canonical tensor reference objects.
    • Package-relative asset and model paths.
    • Invalid absolute paths and directory traversal.
  • Improved native XR pipeline loading, model I/O handling, tensor readback, and device execution.
  • Refreshed the bundled XR and Spatial device-runner APKs.
  • Added XR and Spatial all-operator pipeline fixtures.
  • Expanded regression coverage across CLI authoring, conversion, package validation, native loading, and device runners.

Compatibility Note

Existing scripts may need to be updated if they use short operator names or generic --input and --output arguments. Pipeline JSON should use canonical
operator names, numeric tensor type and usage values, canonical tensor references, and package-relative paths.

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"

pySecureMR v0.0.1 released

Choose a tag to compare

@DuinoDu DuinoDu released this 07 Apr 09:57

We release pySecureMR v0.0.1 version 🎉🎉🎉

  1. Use pysecuremr to build securemr pipeline in python.
  2. Use pysecuremr to convert pytorch model to qnn model, and verify output consistency.