Metadata-Version: 2.1
Name: nwaves-leader
Version: 0.1.0
Summary: NWaves leader bridge: drive the NWaves SO-101 simulation with the leader arm plugged into your computer
Home-page: UNKNOWN
Author: NWaves
Author-email: support@nwaves.ai
License: UNKNOWN
Platform: UNKNOWN
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: pyserial (>=3.5)

# NWaves leader bridge

Drives the NWaves SO-101 simulation with the leader arm plugged into your own computer,
for browsers that cannot open USB devices themselves (Firefox, Safari). Chrome and Edge
connect over USB directly from the session page and do not need it.

Install and run (the session page shows the same one-liners):

    macOS / Linux:   curl -fsSL https://<academy host>/nwaves-leader.sh | sh
    Windows:         irm https://<academy host>/nwaves-leader.ps1 | iex
    any:             python3 -m pip install nwaves-leader   then   nwaves-leader

Then press "Connect through the NWaves leader bridge" in the session page.

The bridge listens on 127.0.0.1:8765 only, accepts connections from nwaves.ai pages only,
and sends nothing but the six servo positions to the page in your browser. The page does
the calibration and forwards the positions to your simulation.

What the academy hosts and how to rebuild it (from the repo root): `sh tools/nwaves-leader/build.sh`

- `nwaves-leader.pyz`: the self-contained app the installers download (pyserial is vendored, BSD licence
  kept inside), runs with any Python 3.8+ as `python3 nwaves-leader.pyz`
- `nwaves_leader-<version>-py3-none-any.whl`: for `pip install` and for PyPI
- `nwaves-leader.py`: the single-file version (needs pyserial)

Publishing to PyPI (name `nwaves-leader` was free on 2026-10-17): create the NWaves account on pypi.org with
2FA, make an API token, then `python3 -m pip install build twine && python3 -m build && twine upload dist/*`
with `TWINE_USERNAME=__token__ TWINE_PASSWORD=<token>`. Bump `version` in pyproject.toml and setup.py first.


