latent-inspector-py
Python successor to latent-inspector: inspect and compare latent representations from DINOv2, I-JEPA, V-JEPA 2, and EUPE with a research-grade experiment pipeline and paper-first artifact trail.
Status: release candidate.
Validated on 2026-04-13:
make checkpassesmake buildpassesmake showcasepasses- 4-model parity runs against the Rust reference are available through Rust parity mode
Rust parity mode is the release path when exact cross-implementation alignment matters:
LATENT_INSPECTOR_RUNTIME_BACKEND=rust uv run lipy compare ...
North star
Build the Python version as the fast research workbench for the same core question as the Rust tool:
how do different training objectives shape the geometry, concentration, invariances, and downstream usefulness of latent world representations?
Scope of v1
- Same core model family as the Rust repo:
- DINOv2
- I-JEPA
- V-JEPA 2
- EUPE
- Python-first research stack:
- PyTorch / torchvision / timm / transformers / huggingface_hub
- ONNX Runtime for exported inference backends
- numpy / scipy / scikit-learn / einops / pandas / polars
- typer + rich CLI
- pydantic config + result schemas
- pytest for reproducible validation
- Dual mode execution:
- native backend for EUPE via official weights
- ONNX export + ONNX Runtime backend for DINOv2 / I-JEPA / V-JEPA 2
- Outputs:
- inspect / compare / profile / drift / dataset study commands
- parquet/json artifacts
- plots and paper-ready tables
- LaTeX-ready experiment summaries
Runtime modes
- Default runtime:
eupe-vit-b16uses the native Python backend- ONNX-backed models use the Python runtime path and prefer the Rust bridge when available
- Rust parity mode:
- force all supported models through the Rust reference bridge with
LATENT_INSPECTOR_RUNTIME_BACKEND=rust - use this for release validation, parity studies, and cross-implementation comparisons
- force all supported models through the Rust reference bridge with
The model catalog exposes the active runtime metadata in JSON:
uv run lipy models --format json
Quickstart
make sync
make check
make showcase
Common commands:
uv run lipy models --format json
uv run lipy inspect artifacts/showcase/dataset/scene-01-orbit.png --model eupe-vit-b16 --format json
uv run lipy compare artifacts/showcase/dataset/scene-01-orbit.png --models eupe-vit-b16,dinov2-vit-l14 --format json
uv run lipy profile --model eupe-vit-b16 --dataset artifacts/showcase/dataset --format json
uv run lipy study run artifacts/showcase/study.yaml
Handy targets
make sync: install locked dependencies withuvmake check: format, lint, typecheck, and testmake smoke: light CLI verificationmake showcase: generate demo assets and run the end-to-end showcase flowmake build: build sdist and wheel withuvmake publish-testpypi: publish to TestPyPImake publish: publish to PyPI
Release and publishing
Build locally:
make build
Publish with uv:
make publish-testpypi
make publish
Before publishing, run the release checklist in RELEASE_CHECKLIST.md.
Repo map
docs/spec/— product, research, contracts, scheduledocs/rfcs/— architecture decisionspaper/— paper draft, bib, figures, notessrc/latent_inspector_py/— implementationtests/— unit + integration testsAUTONOMOUS-GRIND-2026-04-12/— work queue and iteration log for today's 10-pass buildout
Metadata
Release files for latent-inspector-py 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| latent_inspector_py-0.1.0.tar.gz | 362.9 kB | Without provenance | Details for latent_inspector_py-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| latent_inspector_py-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for latent_inspector_py-0.1.0-py3-none-any.whl |
Total release size: 410.3 kB
Release files / latent_inspector_py-0.1.0.tar.gz
| Download URL | latent_inspector_py-0.1.0.tar.gz |
|---|---|
| Size | 362.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
92ae5ce5a5f5fa10f9f0a0e4f58c15f25b54efc4427d2df4ccf84c51cf529246
|
|
BLAKE2b-256 checksum How to use checksums |
cc120f851f33e4e56a0b601da8c2b81c1c7c05cdd5eb2c4aee08a5e6c213a30f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / latent_inspector_py-0.1.0-py3-none-any.whl
| Download URL | latent_inspector_py-0.1.0-py3-none-any.whl |
|---|---|
| Size | 47.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aa68d31174e790ba559dc2ff7325c26592c6a92602d3d4d3eca3e9abe4e6c74d
|
|
BLAKE2b-256 checksum How to use checksums |
a7dc172a81945fe565e89de4d596090b59bdb84a279faa3b0a8dfc3d7fc9063b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for latent-inspector-py 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.