Repository navigation
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"