You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Onboarding:
- Add sound/microphone permission notice (orange callout)
- Add detection range and optimal conditions tips (blue box)
- Expand step descriptions (mic permission, stay still during calibration)
- Add Help (?) button in header to re-show onboarding anytime
Post-onboarding guidance:
- Add dynamic init hint that updates through the user journey
(init -> calibrate -> scan, with error-specific messages)
- Disabled buttons now explain why in tooltips
- Descriptive status labels (idle -> "click Init Audio to begin")
Error handling:
- Specific messages for mic permission denied and no audio device
- Error hint directs to Diagnostics log
Information gaps filled:
- Heatmap hint explains axes and color meaning
- Profile hint explains peaks and hover interaction
- Geometry hint explains layout and target trails
- Calibration section explains quality scores and conditions
- Direction axis hint explains detection range and surface types
- Keyboard shortcuts listed near viz pane with ? button reference
- Device preset shows (detected) on initial auto-detection
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
<buttonid="btnInit" title="Initialize Web Audio, request microphone access, and prepare the app for ping/scan operations.">Init Audio <kbd>I</kbd></button>
40
-
<buttonid="btnPing" disabledtitle="Run a single measurement at the current steering angle and update readouts.">Ping <kbd>P</kbd></button>
41
-
<buttonid="btnScan" disabledtitle="Run a full angular sweep using current scan settings and build the heatmap.">Scan <kbd>S</kbd></button>
42
-
<buttonid="btnStop" disabledtitle="Stop the active scan loop immediately.">Stop <kbd>Esc</kbd></button>
43
-
<buttonid="btnCalibrate" disabledtitle="Run direct-path calibration to improve timing lock and range accuracy.">Calibrate <kbd>C</kbd></button>
42
+
<buttonid="btnInit" title="Start here: initialize Web Audio and request microphone permission. Required before any other action.">Init Audio <kbd>I</kbd></button>
43
+
<buttonid="btnPing" disabledtitle="Requires Init Audio first. Runs a single measurement at the current steering angle.">Ping <kbd>P</kbd></button>
44
+
<buttonid="btnScan" disabledtitle="Requires Init Audio first. Runs a full angular sweep and builds the heatmap.">Scan <kbd>S</kbd></button>
45
+
<buttonid="btnStop" disabledtitle="No scan is running. Active only during a scan sweep.">Stop <kbd>Esc</kbd></button>
46
+
<buttonid="btnCalibrate" disabledtitle="Requires Init Audio first. Measures speaker-to-mic timing for accurate range.">Calibrate <kbd>C</kbd></button>
<pclass="hint">Use <b>Horizontal (L/R)</b> for left/right and <b>Vertical (T/B)</b> when your speaker axis is rotated 90 degrees.</p>
634
+
<pclass="hint">Use <b>Horizontal (L/R)</b> for left/right and <b>Vertical (T/B)</b> when your speaker axis is rotated 90°. Detection works best on hard, flat surfaces (walls, furniture) within 0.3–5 m. Soft materials (curtains, pillows) absorb sound and produce weak echoes.</p>
629
635
630
636
<hr/>
631
637
632
638
<!-- Calibration -->
633
-
<pclass="hint">Calibration measures speaker-to-mic distances to lock direct-path timing and improve range accuracy.</p>
639
+
<pclass="hint">Calibration measures speaker-to-mic distances to lock direct-path timing and improve range accuracy. Keep the room quiet and don't move the device during calibration. A quality score above 0.5 is good; above 0.8 is excellent.</p>
Correlation vs range for the latest ping/scan row.
801
+
Correlation strength vs distance (meters) for the latest ping. Peaks indicate detected objects; taller peaks = stronger reflections. Hover to read exact range values.
<pclass="hint">If audio goes silent after switching apps/locking screen: tap <b>Init Audio</b> to resume.</p>
835
+
<pclass="hint">Keyboard shortcuts: <kbd>I</kbd> Init Audio, <kbd>P</kbd> / <kbd>Space</kbd> Ping, <kbd>S</kbd> Scan, <kbd>Esc</kbd> Stop, <kbd>C</kbd> Calibrate. Click <b>?</b> in the header for the full guide.</p>
<pclass="onboarding-subtitle">Browser-based active sonar echolocation. Transmit acoustic signals through your speakers, capture echoes with your microphone, and visualize your surroundings in real time.</p>
846
+
<pclass="onboarding-notice">🔊 This app emits audible sound through your speakers and requires <b>microphone permission</b> to capture echoes. Use headphones-free and keep volume moderate.</p>
839
847
<olclass="onboarding-steps">
840
848
<li><b>Select your device</b> — pick your laptop or tablet from the <em>Device preset</em> dropdown so speaker/mic geometry is correct.</li>
841
-
<li><b>Init Audio</b> — click the button (or press <kbd>I</kbd>) to grant microphone access and start the audio engine.</li>
842
-
<li><b>Calibrate</b> — click <em>Calibrate</em> (or press <kbd>C</kbd>) to measure speaker-to-mic timing in your room.</li>
843
-
<li><b>Scan</b> — click <em>Scan</em> (or press <kbd>S</kbd>) to start echolocation and build a heatmap.</li>
849
+
<li><b>Init Audio</b> — click the button (or press <kbd>I</kbd>) to grant microphone access and start the audio engine. Your browser will ask for mic permission.</li>
850
+
<li><b>Calibrate</b> — click <em>Calibrate</em> (or press <kbd>C</kbd>) to measure speaker-to-mic timing in your room. Stay still and keep the room quiet.</li>
851
+
<li><b>Scan</b> — click <em>Scan</em> (or press <kbd>S</kbd>) to start echolocation and build a heatmap of nearby objects.</li>
844
852
</ol>
853
+
<pclass="onboarding-tip">Typical detection range is <b>0.3 – 5 m</b> indoors. Hard, flat surfaces (walls, furniture, monitors) reflect best. A quiet room with minimal background noise gives the best results.</p>
0 commit comments