Spaces:
Running
Running
Commit History
-
feat: Reachy Mini logo as app icon (PNG via Git LFS)
RemiFabreUse the downloaded morse.png (resized to 512px) as the icon everywhere: favicon, host top-bar appIconUrl, HF catalog tile, and the in-app header brand mark (replacing the 📡 emoji). Tracked via Git LFS since HF rejects plain binary blobs. Removed the placeholder icon.svg.9355f7d -
feat: Demo mode for filming two robots conversing
RemiFabreApp/Demo toggle in the header. Demo mode shows only the live detection (big readout + scope + running conversation) and the alphabet — no compose box, so nothing reveals a message before it's heard. Hidden 'Demo setup' (gear) holds 'if you hear X, answer Y' rules + a per-rule 'Send' to kick one off. When this robot's mic decodes a finished message that matches a rule, it taps the reply on its own antennas. A self-echo guard (ctx.transmit sets a window covering the send + idle-finalize tail) stops a robot replying to its own taps. Matching is normalized so 'U OK?'/'U OK'/'UOK' are equivalent. Defaults: U OK->Y, SOS->WTF. Added lib/rules.js (+tests) and ctx.transmit; only the active page holds the mic.a33a583
-
ui: compact, denser layout so message + transcript fit together
RemiFabre- Message box is now a single line (was 3-row textarea); long text scrolls. - Removed the Speed control from Compose (lives in Settings; brisk was unreliable). Kept 'Who sends it?' and the Morse preview. - Tighter spacing everywhere: smaller uppercase section headers, reduced gaps/paddings, shorter scope, height-capped scrolling transcript. - Fix el() parser: '.class#id' (class-before-id) order silently failed, so the three view roots never got their .view class. Now any order works.4f5e7fd -
fix: clap the RIGHT antenna into the held LEFT (was the non-colliding mirror)
RemiFabreBoth SDKs order antennas [right, left] (init pose [-0.1745, +0.1745]). My Python calibration wrote antennas=[a,b] assuming index 0 was LEFT — it is RIGHT — so the motion I recorded clean decodes from was right-slams/left-held. The JS app's setAntennasDeg(right,left) was called fixed-first/moving-second, which slammed the LEFT antenna: the mirror image, which does NOT collide on this robot (confirmed by Rémi). Now the right antenna slams (0->54deg) into the held left (-39deg), matching the validated motion. Re-confirmed on hardware: strong click (mic peak 0.146 vs 0.004 for the mirror). Added a gentle preroll ramp into the rest pose so the held antenna doesn't snap. Renamed profile fields (heldDeg/slamRestDeg) + settings label to match.02264c2 -
tune: robust live detector + calibrated robot clap from hardware test
RemiFabreReal robot-clap audio (tools/robot_clap_test.py, replayed through the live StreamingOnsetDetector) revealed two issues, both now fixed: - Live detector fired on mid-level strays the offline detector rejected via its global-peak threshold. Added a decaying peakRatio gate + raised default refractory to 180ms so echoes between real clicks are dropped. New streaming.test.js locks in the live path (incl. ringing-echo rejection). - The last clap rang because the return-to-pose goto jerked the still-vibrating antenna. RobotTapper now holds a settleMs tail after the final clap. - Calibrated clap: contact 54deg + 70ms hold = clearly audible/detectable. HELLO and SOS now decode 21/21 and 12/12 through the live path on hardware.fa08634 -
tune: calibrate speed presets from through-air mic test (unit floor ~120ms)
RemiFabreMic+speaker calibration (tools/calibrate_audio.py): unit=120/160 decode 18/18; 90/70 fail because dahGap (2*unit) falls under the detector's ~200ms reverb window. Presets: brisk=120 (proven floor), normal=150, relaxed=190.5eb6ab5 -
feat: initial Reachy Mini Morse Code app
RemiFabreTalk to Reachy Mini in Morse: the robot transmits by clapping its antennas (each hit = an audible click), the phone/laptop transmits with beeps, and any device (or a second Mini) decodes incoming hits live through its mic. - Onset-only impulse wire code (dot=1 tap, dash=2 taps) so robot clicks, phone beeps and robot<->robot all share one detector. - Transient-onset detector ported from the Marionette audio-sync tests (highpass -> 5ms energy -> spectral flux -> peak pick), offline + streaming. - Compose / Listen / Learn UI, mobile-first, host-shell + CDN SDK (sdk: static). - 42 unit tests (codec, detector round-trip, view DOM) + browser smoke tests.843a4b2