Spaces:
Running
Running
| # Architecture | |
| Reachy Mini I Spy runs as one application on the same machine as the Reachy daemon. | |
| ## Deployment profiles | |
| ### Reachy Mini Lite | |
| Reachy Mini Control and the daemon run on the connected Mac/PC. The I Spy app, camera-frame processing and direct provider calls run on that same host. The Lite robot supplies camera, microphones, speaker and motion hardware over its normal USB connection. | |
| ### Reachy Mini Wireless | |
| The daemon and I Spy app run on Reachy's onboard Raspberry Pi CM4. Cloud provider calls leave directly from the app; local ONNX detection and offline speech run on the CM4. No second server is required. | |
| ## Application boundary | |
| The `reachy_mini_i_spy` package is installed through the official `reachy_mini_apps` entry point. It owns: | |
| - game settings and camera-opt-in state; | |
| - owner-only provider credentials; | |
| - fixed provider URL, models, prompts and response schemas; | |
| - deterministic game and generation state; | |
| - bounded head/base motion and final folding; | |
| - transient frame capture; | |
| - local UI and status endpoints; | |
| - moderation, audio playback and immediate Stop handling. | |
| The UI cannot configure arbitrary URLs, models, prompts, voices or tools. Provider credentials are never returned through the status API. | |
| ## Direct cloud data flow | |
| ```text | |
| Camera opt-in | |
| β | |
| βΌ | |
| App host: bounded motion + up to three transient JPEGs | |
| β fixed HTTPS endpoint, fixed schema, owner-only API key | |
| βΌ | |
| OpenAI: moderation + fixed vision/TTS operations | |
| β untrusted bounded result | |
| βΌ | |
| App host: deterministic validation + clue/guess state + motion/audio | |
| β | |
| βββ Stop/reveal/error β invalidate generation, reject late results, | |
| stop audio, revoke camera, clear target, fold, disable motors | |
| ``` | |
| Frames and guesses are processed in memory. The app does not intentionally persist gameplay media or transcripts. | |
| ## Local-mode data flow | |
| ```text | |
| Camera opt-in | |
| β | |
| βΌ | |
| App host: bounded motion + up to three transient JPEGs | |
| β no network inference | |
| βΌ | |
| Bundled ONNX detector: boxes + COCO labels + confidence | |
| β untrusted bounded detections | |
| βΌ | |
| Deterministic allowlist + stability + colour + hints + aliases | |
| β | |
| βΌ | |
| Pinned sherpa-onnx English/Dutch speech β Reachy speaker | |
| ``` | |
| The local path replaces both cloud vision and cloud speech synthesis backends, not the safety state machine: | |
| - ONNX object detection executes on the daemon host; | |
| - object classes are restricted to an explicit child-safe allowlist; | |
| - stability across viewpoints, bounding-box rules and colour extraction are deterministic; | |
| - hints and guess aliases come from reviewed English/Dutch tables; | |
| - Stop and generation rules remain unchanged; | |
| - speech uses Apache-2.0 `sherpa-onnx` with pinned, checksummed English public-domain and Dutch CC0 voice datasets; | |
| - voice archives are installed atomically after path-traversal and size checks; | |
| - model engines are cached in memory after their first load. | |
| Version `0.2.0` local mode is clean-install validated and physically accepted on Wireless. The redesigned Lite-host profile remains explicitly marked as awaiting same-version physical acceptance. | |
| ## Origin and related project | |
| Reachy Mini I Spy originated as a focused extraction of the I Spy experience developed in [Reachy Mini Hermes](https://github.com/Timverhoogt/reachy-mini-hermes). It now owns its runtime, provider integration, safety contract, releases and acceptance lifecycle. | |
| Reachy Mini Hermes retains a separate integrated Kids Mode implementation with different frame counts, camera choreography and alternating roles. The two projects may share safety principles, but neither inherits the other's release or physical acceptance. | |