Repository navigation
Releases: Pico-Developer/pySpatialML
Release list
pySpatialML v0.5.2
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
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. ThesecuremrPython module is retained for operator
bindings and py2smr tracing; the user-facing tool is nowpyspatialml. The PyPI distribution is published aspyspatialml-pico(import names
securemr/pyspatialmlare unchanged).
Highlights
- New unified
pyspatialmlCLI 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 managedonnx2tf. - Pure-Python package — native
_securemrbindings and bundled.solibraries removed. Install is nowpip 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
xrandspatialruntime modes, with dedicatedxr_pipeline_runnerand new
spatial_pipeline_runnerrunner 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.npytensor outputs/directories.
Operators & tracing
- Expanded and reworked operator set with closer parity between
xrandspatial, including spatial operators such asSCENEGRAPH_VISIBILITYand
UPDATE_COMPONENT. - Substantial
py2smrimprovements (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.mdand PyPI-readypyproject.toml.
Breaking changes / removed
- Renamed from
pySecureMRtopySpatialML; the console entry point is nowpyspatialml(the oldsecuremrinspect CLIs are removed). - QNN toolchain removed —
securemr/qnn/*,install_qnn,onnx_to_qnn,pytorch_to_qnn,qnn_model*, andqnn_to_pipelineare gone in
favor of the LiteRT/TFLite path. - Native bindings removed —
securemr/bindings/*(including_securemrand bundled OpenCV/SNPE.sofiles) 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
We release pySecureMR v0.0.1 version 🎉🎉🎉
- Use pysecuremr to build securemr pipeline in python.
- Use pysecuremr to convert pytorch model to qnn model, and verify output consistency.