ragleap-physical
Status: pre-alpha. Simulation only. Nothing here controls real hardware.
A small library that connects RagLeap AI employees to open-source simulators, so people can build and test safely. Observing comes first. Every action goes through a proposal, an approval and a safety envelope that lives in the bridge, in one place. The model cannot change the limits.
What works today (and what does not)
- Observation and proposal formats (v0), the four capability levels, the safety envelope, approvals bound to the exact proposal, dry run, outcome check, and a stop that needs no approval. Tested with a tiny built-in one-joint simulator (standard library only).
- Exactly four tools for an AI agent: list sources, get an observation, get the envelope, propose an action.
None of them can approve, apply, stop or change a limit. A small MCP server (standard library, loopback by
default, optional bearer token) serves them. Tested against the official MCP Python SDK (
mcp>=1.28,<2). RagLeap's own MCP client was not read or tested: it may need changes (for example HTTPS). - MuJoCo adapters as an optional extra: one observe-only, and one servo adapter that follows
set_position_targetin simulation, only through the bridge. - Workspace limits: a box in x, y, z that every tracked point must stay inside, checked on the starting state, on the dry run, and again on the real motion in short slices. If a workspace is set and the adapter cannot report positions, everything is refused. A two-link arm model (built-in stand-in and MuJoCo) exercises it.
- A simulated machine tool (tool wear): the AI can only adjust a tool offset, in micrometres, inside an envelope (range, step size, minimum gap between changes). Changing the tool is a human action and is not a command. It is a model with invented numbers and says nothing about a real machine.
- Hardened after independent review by two other AI sessions (see the CHANGELOG): stricter input and prediction checks, no self-approval.
- A three-joint arm model (MuJoCo XML in
examples/robots/, plus a built-in stand-in), an offline ROS 2 observe-only mock that needs no ROS install, and a repeatability experiment inbenchmarks/(exact replay within one installed environment; cross-machine repeatability is not claimed). - An operator console (
ragleap_physical.console): the human side of the bridge. A named person sees the pending proposals, approves the exact digest, applies, and can stop. Loopback only, one token per person, and the approver's name comes from the token, never from the request. It is not a tool: the AI cannot reach it. - Two observe-only industrial mocks, with no network and no real meter or machine: a simulated energy site and an MTConnect
document reader with strict limits (it refuses DTDs and entities, and caps size). MTConnect itself is not purely read-only;
these adapters only read. See
docs/industry/observe-only-adapters.mdand the first-hour guidedocs/first-hour.md. - Not built: a second simulator, real hardware, Java and npm clients.
- Simulation is not reality. Do not read a passing simulation test as proof for a real machine.
Out of scope, always
Life-safety systems, medical devices, vehicles on public roads, weapons, and anything that could hurt people without an independent hardware safety stop.
Docs
- Plan, decisions, safety rules and conventions: docs/HANDOVER.md
- Design (formats, safety envelope, threat model): docs/design/phase0-interface.md
Try it
pip install -e ".[test]" # core only, standard library
pip install -e ".[mujoco,test]" # with the optional MuJoCo adapter
pip install -e ".[test,interop]" # also runs the MCP SDK interop test
pytest
python examples/demo_fake.py
python examples/two_link_workspace_demo.py
Report vulnerabilities privately through the repository's Security tab (see SECURITY.md).
Other languages (drafts, not reviewed by native speakers)
Metadata
Release files for ragleap-physical 0.0.3
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 |
|---|---|---|---|---|
| ragleap_physical-0.0.3.tar.gz | 102.8 kB | With provenance | Details for ragleap_physical-0.0.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ragleap_physical-0.0.3-py3-none-any.whl | Python 3 | none | any | Details for ragleap_physical-0.0.3-py3-none-any.whl |
Total release size: 148.7 kB
Release files / ragleap_physical-0.0.3.tar.gz
| Download URL | ragleap_physical-0.0.3.tar.gz |
|---|---|
| Size | 102.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
977676af5b6cdfa162a2f270211706f88a835338549892e8e6b63b779df4930c
|
|
BLAKE2b-256 checksum How to use checksums |
6960cb9627850c754b06db289164fd10e37f10dbfb7394c0c2ccbb0dc29b8d60
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logRelease files / ragleap_physical-0.0.3-py3-none-any.whl
| Download URL | ragleap_physical-0.0.3-py3-none-any.whl |
|---|---|
| Size | 45.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4cf9bc508950e53ac926608276ffa26adef8242005d2cccea3b2124e0ce850c2
|
|
BLAKE2b-256 checksum How to use checksums |
ca327db9de256fdfbf623eab2bcd4490712ef5a2c09b309d3b5bffbe682374e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logSecurity for ragleap-physical 0.0.3
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.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for ragleap_physical-0.0.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logA 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.