Metadata-Version: 2.5
Name: armnet-busybox
Version: 0.3.2
Summary: BusyBox instrumented-task-box environment for armnet: live state, semantic decoding, goal-state success checks and automated scene resets.
Project-URL: Homepage, https://armnet.dev
Project-URL: Documentation, https://docs.armnet.dev/environments/busybox/
Author: Ville Kuosmanen
License-Expression: Apache-2.0
License-File: LICENSE
Requires-Python: <3.13,>=3.12
Requires-Dist: armnet-core>=0.3.0
Requires-Dist: paho-mqtt<3,>=2.0
Requires-Dist: pydantic<3,>=2.6
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == 'dev'
Description-Content-Type: text/markdown

# armnet-busybox

The BusyBox environment for the [Armnet](https://armnet.dev) managed arm farm.

BusyBox is an instrumented panel of switches, buttons, sliders and dials that
reports its own state, so a cell built around one can tell whether a task
succeeded without anyone watching, and put the panel back the way it started
between episodes. This package is what turns that hardware into an Armnet
environment: it reads the panel, decides whether an episode met its goal, and
replays the taught motion that resets the scene.

## Install

```bash
pip install armnet-busybox
```

You never import it. It registers itself under the `armnet.environments` entry
point, and [`armnet-runtime`](https://pypi.org/project/armnet-runtime/) finds it
there when a job runs on a BusyBox cell. Installing it in your container is the
whole of what you have to do:

```python
from armnet_runtime import main

@main
def run(ctx):
    robot = ctx.cell.instrument(build_robot())   # panel readings attached
    ...
    if ctx.cell.is_complete():                   # scored by the panel
        ...
    ctx.cell.reset()                             # scene restored, no operator
```

Without it the same job still runs — `armnet-runtime` falls back to asking a
human to judge and reset each episode.

## Documentation

The environment, its tasks and its reference datasets:
**<https://docs.armnet.dev/environments/busybox/>**

BusyBox itself is from Microsoft Research:
[paper](https://www.microsoft.com/en-us/research/publication/benchmarking-affordance-generalization-with-busybox/)
and [hardware](https://github.com/microsoft/busybox/).
