halo-ws-simulator
Wireless (WebSocket) simulator of the Brilliant Labs Halo. Develop and debug Flutter apps for the glasses on your PC with no hardware — your app connects over a WebSocket exactly as it would to a real Halo over Bluetooth LE, and switching between the two is one dependency block, no code changes.
The device runtime is the upstream
halo-emulator package (a real Lua
5.4 VM + the full frame.* API + a 256×256 framebuffer). This package adds the
wireless link, a REPL/message bridge, a desktop + web view, and optional bridges
from the PC's real microphone / speaker / webcam (including
acoustic-activity / voice detection).
Full docs, the Flutter-side setup and the media bridges: https://github.com/DaryeDev/halo-ws-simulator
Install
pip install halo-ws-simulator
Not on PyPI yet? pip install "halo-ws-simulator[all] @ git+https://github.com/DaryeDev/halo-ws-simulator.git#subdirectory=python"
Extras: msg (ship the brilliant_msg device libs for --libs), media
(mic / speaker / camera bridges — pulls sounddevice, opencv-python-headless,
numpy), or all:
pip install "halo-ws-simulator[all]"
On Linux, sounddevice needs PortAudio: sudo apt install libportaudio2.
Run
halo-ws-sim # pygame window + web view on http://localhost:8766
halo-ws-sim --mic --speaker --camera
halo-ws-sim --headless -vv
It prints every URL a client can use on startup. The Flutter transport
auto-discovers it (Android emulator / adb reverse / localhost need no config).
Point your Flutter app at it
# pubspec.yaml — the only change vs. real hardware
dependencies:
brilliant_sdk: ^2.0.0
dependency_overrides:
brilliant_ble:
git:
url: https://github.com/DaryeDev/halo-ws-simulator.git
path: flutter/brilliant_ble_ws
ref: main
Layout
| Module | Role |
|---|---|
server.py |
WebSocket server, one connection = one session |
bridge.py |
owns the single Lua worker thread; TX ⇄ REPL / messages, media stubs |
protocol.py |
JSON envelope spec |
media.py |
PC microphone / speaker / webcam bridges + acoustic activity detection |
window.py |
pygame desktop view |
observe.py |
HTTP view + event injection + /mic_level on port + 1 |
Develop
git clone https://github.com/DaryeDev/halo-ws-simulator.git
cd halo-ws-simulator
pip install -e "python/[all]"
python -m halo_ws_sim --headless -vv
Release to PyPI
cd python
python -m pip install --upgrade build twine
python -m build # -> dist/*.whl and dist/*.tar.gz
python -m twine check dist/*
python -m twine upload dist/* # needs a PyPI API token
Bump version in pyproject.toml first, and tag the repo (git tag vX.Y.Z).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file halo_ws_simulator-0.1.0.tar.gz.
File metadata
- Download URL: halo_ws_simulator-0.1.0.tar.gz
- Upload date:
- Size: 19.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62d6697d14cd270ad99510037af31b4ead43aad05b48d3187d7456536686d871
|
|
| MD5 |
84e46a8453012417fe9221a7b45c5feb
|
|
| BLAKE2b-256 |
e44cc3b5c72fcbca02248d4bd5f1010216dda80016301b83226be35cbd02539e
|
File details
Details for the file halo_ws_simulator-0.1.0-py3-none-any.whl.
File metadata
- Download URL: halo_ws_simulator-0.1.0-py3-none-any.whl
- Upload date:
- Size: 23.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1e405c8dff56ddb954a101ce865c335d64ed6ff4f606e290e05be9056e56236
|
|
| MD5 |
c693ea56026473daa7ff45d32c238417
|
|
| BLAKE2b-256 |
4d4f836eaa782a2934fde52b5585116d2fc93607a3d586d70c96f5a41f6e52c0
|