loop-sdk
Connect your robots, cameras, sensors, policies, and teleoperation code to Loop. Your Python application exposes a Node; Loop connects it to a Cell for control and recording.
How Loop uses your Node
Your application owns the device or model code and its execution loop. Loop's Orchestrator applies Config and manages the Node's lifecycle. The Node exchanges application data directly with other Nodes through Ports.
Install
Install SDK 0.6.0 for Loop v2 in an isolated environment:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install loop-sdk==0.6.0
python -c 'from loop_sdk import CameraNode, SensorNode, RobotNode'
Installation brings in loop-node[numpy]>=0.3.0,<0.4.0, including NumPy; no
separate NumPy extra is needed on loop-sdk. Release wheels support
CPython 3.10–3.14 on Linux x86_64 and ARM64 (aarch64), with glibc 2.28+.
You also need a running Loop instance using loop-node 0.3.x (control protocol
version 2) to activate Nodes. Update Loop and external Nodes together.
Port transport
Ports default to auto: image contracts use shared memory when all connected
peers pass the SHM probe, and otherwise use ordinary Zenoh transmission.
Contracts without images use ordinary transmission by default. Custom Port
declarations can require zenoh_network or zenoh_shared_memory; request and
reply policies are independent. The selected mode stays fixed until bindings
are released, and Cell Config no longer stores transport choices.
Application payloads and the publish/poll/request APIs remain unchanged. See transport policies for options and Port declarations for usage.
Run your first Node
Start with the simulated sensor example. It needs no hardware.
-
Save the file as
sensor_node.py. It connects totcp/127.0.0.1:7448; changeloop_endpointin the file if Loop runs on another host. -
Run your Node:
python sensor_node.py -
In Loop, add
force_sensorto a Cell as an externalloop.sensor@1Node. Config{}uses the defaults. Connect itssensor_observationoutput to Main Controller Node, then click Start Nodes.
The terminal prints Start: sample_hz=50.0, and the Node begins publishing
{"force": 1.25} approximately 50 times per second. Launching the script
connects the Node; Loop configures it, validates connections, then starts publication. Stop Nodes pauses it;
Ctrl+C exits the example.
Node classes and examples
| What your application does | Example |
|---|---|
| Read sensor values | SensorNode |
| Provide camera frames | CameraNode |
| Publish robot state and apply incoming actions | RobotNode |
| Run an existing robot control loop and record its observation/action pairs | RobotStepNode |
| Generate actions with a model | PolicyNode |
| Generate actions through teleoperation | TeleopNode |
Replace each example's simulated or file-backed data with your device or model. See the example setup guide for Node IDs, Config, and compatible examples.
Documentation
| Guide | Use it to |
|---|---|
| Architecture and lifecycle | Understand Nodes, Ports, the Orchestrator, and Configure/Start/Stop |
| Recording flow and data | Follow observations and actions into a recorded episode |
| Node API reference | Look up classes, methods, contracts, and value types |
For SDK development, see CONTRIBUTING.md.
Metadata
Release files for loop-sdk 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 3.3 MB
Release files / loop_sdk-0.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | loop_sdk-0.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 362.1 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
eac9455bedc94aebc1161c05fa6bafc7a817916eb0a7b5fde314c4d5ee5965fe
|
|
BLAKE2b-256 checksum How to use checksums |
f21221b4074d6e0358a11d0e6c3db9d55780e15d988c8ff93211b512eee6e7d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency logRelease files / loop_sdk-0.6.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | loop_sdk-0.6.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 327.3 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
e550238aceb37ba4472d6c3762c9c0a91d151282ce00e231773b4059a966e808
|
|
BLAKE2b-256 checksum How to use checksums |
41cc426be48453dc330f839a332dc49fc9f79c39344ca03cdd308acb595ec740
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency logRelease files / loop_sdk-0.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | loop_sdk-0.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 358.1 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a32bf2771cfaa65351cbd9f03c35936b75261f53822b8a67809de15d2d31f5f1
|
|
BLAKE2b-256 checksum How to use checksums |
8ad9d4ae8f14edd730cf4c942c68b1601429cdd5b80df42fc4acd81d482b22ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency logRelease files / loop_sdk-0.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | loop_sdk-0.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 323.1 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
d4f24ae847f9bf8764f1a5631db82c1182df5a6e52da4126f5a7e1911370fceb
|
|
BLAKE2b-256 checksum How to use checksums |
6450347a66998956d89731195be96042a283b281bf3e790f2c4e1cc2dd7d0f75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency logRelease files / loop_sdk-0.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | loop_sdk-0.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 356.1 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
c6561bd0fa1b40c77f99776d8cfd06c74de110449fbff833bab0f529423b45f2
|
|
BLAKE2b-256 checksum How to use checksums |
f5462ade9b800959565e42ad46dfdda519b7adc3e8239f5f96c379a55a42fe36
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency logRelease files / loop_sdk-0.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | loop_sdk-0.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 321.0 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
d75ff363a7f1409b30c3c30d3cf8361465159d974e0af7abb2a55649b375505d
|
|
BLAKE2b-256 checksum How to use checksums |
b165210d38f696218af914deef81b30a3da1f3fd1690383622b380bf413ee86c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency logRelease files / loop_sdk-0.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | loop_sdk-0.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 325.0 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
bcba9ddd446ae9a04e11c5d20bc27d5e1d0783cf5b5dda9eff7c490a09451fc6
|
|
BLAKE2b-256 checksum How to use checksums |
78b63c59b12ebb240fd7fbde6668132a24bff9b4cacf5440ab2ba704d22e14f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency logRelease files / loop_sdk-0.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | loop_sdk-0.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 297.4 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
678770a4df21936cef4c385abc9dae595b1cecc039bb93fb6c0b6696fabed408
|
|
BLAKE2b-256 checksum How to use checksums |
d867cec2d31393821f9c4d485984824dae09e4f472f992fb3db2382b10f47e5f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency logRelease files / loop_sdk-0.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | loop_sdk-0.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 314.3 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
bf0093ee688a224782adf321af5ca71b883f17deab0608bb5ab3e1407c96d806
|
|
BLAKE2b-256 checksum How to use checksums |
05b73c3dfd5ec2941dc5655a543da50ce915a42d8b1f75299d7ce9a2681c3c80
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency logRelease files / loop_sdk-0.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | loop_sdk-0.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 290.7 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
83146c874101d508d38ccf4a9927df9e8ae57bf7d30a6b72ee58b5cac9f13533
|
|
BLAKE2b-256 checksum How to use checksums |
f410860e53513a538ad941fdeb11fb45a90f2f2fb63866a6d10a9b4f442e0427
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency log