Spectrum — Multi-Modal Reception
Your phone, tablet or laptop is already a wide-band sensor array. Toggle each modality on or off and adjust its sensitivity below — settings persist locally and take effect live without restarting the sensor.
The Spectrum page uses your device's built-in sensors. Each permission is optional — the modality it powers simply stays offline when denied. Nothing is uploaded.
- Microphone? UnknownWhy we ask: Sample sonic and ultrasonic waves in real time.Feeds the FFT analyser that renders the spectrogram and detects near-ultrasonic beacons around 19 kHz. Audio stays on your device — nothing is uploaded or recorded to disk from this page.
- Camera? UnknownWhy we ask: Measure photonic activity and near-IR flicker.Reads per-frame luminance and red-channel intensity to surface flicker (e.g. TV remotes emitting near-IR that phone sensors partially see). Frames are analysed in memory and immediately discarded.
- Motion & orientation? UnknownWhy we ask: Detect geomagnetic heading and device tilt.Uses the compass/accelerometer to expose local field changes as a live heading. iOS Safari requires an explicit tap to unlock motion — this button issues that request.
- Location? UnknownWhy we ask: Show GNSS lock quality and accuracy.Uses your device's GPS/GNSS to display latitude, longitude and accuracy. Coordinates are shown only on this page and are not sent anywhere.
Power controls
7/7 runningPause every modality — or a single band — to cut CPU and battery use without touching your thresholds. Paused bands stay recorded across a refresh and can be resumed to exactly what was running.
- runningSonic
- runningUltrasonic
- runningPhotonic
- runningAmbient
- runningMagnetic
- runningNetwork
- runningGNSS
Performance & privacy
● On-device onlyEvery reading on this page is captured, analysed, and shown in your browser. Nothing is uploaded, streamed, or logged to any server — the microphone, camera, motion, and location data stay on this device.
Scheduler diagnostics
per-loop throttlingEach active loop reports its ticks to a shared scheduler. Rows show the target FPS applied (native, low-power throttle, or event-driven), the measured FPS over the last second, and how long ago the last tick fired.
Privacy controls
● On-device onlyChoose whether Spectrum session logs and preferences are stored in this browser, kept only in memory for exports, or never stored at all. This setting itself is remembered so your choice survives reloads.
vhf.spectrum.* key from this browser (redaction, export settings, presets, thresholds). Your privacy choice is kept.Auto-detect environment
Samples live noise, motion, light, and network activity for a few seconds, then recommends the best built-in preset for your current surroundings.
Analysis presets
Save the current gains, thresholds, and enabled bands as a named preset for an environment (e.g. quiet room, moving car, loud venue), then load it back instantly. Presets are stored on this device.
Session recorder
○ IDLE · 0 samples · 0 eventsRecords every band's normalized reading and detail string once per second, plus activation events and decoded messages, so you can share or debug what your device saw. All data stays on this device until you export it.
Export settings
4/6 sections · 7/7 bandsPrivacy redaction (applied to exports)
0 activeSession playback
○ IDLE · 0 samples · 0 eventsRecord readings at 1 Hz, then scrub the timeline to review what every band was measuring at any instant. Events (activations, decodes) that occurred near the cursor appear on the right.
Start recording to build a timeline you can scrub.
Snapshot export
Download the current spectrogram view plus every band value and threshold as an image or a JSON file. Device and timestamp metadata are embedded for traceability; everything is generated on-device.
Quick calibration
Hold the device still in your current environment for 5s. We'll measure the ambient baseline and suggest slider values that surface signals without triggering on noise.
Live diagnostics
All engaged modalities look nominal. Start more sensors above to include them here.
- Sonic (mic RMS)inactive
Not engaged yet — start the modality to diagnose.
- Ultrasonic (>18 kHz)inactive
Not engaged yet — start the modality to diagnose.
- Photonic (camera flicker)inactive
Not engaged yet — start the modality to diagnose.
- Ambient lightunsupported
Sensor not exposed by this device.
- Geomagneticunsupported
Sensor not exposed by this device.
- Network EMunsupported
Sensor not exposed by this device.
- GNSS positionalunsupported
Sensor not exposed by this device.
Auto-pause on background
When the tab is hidden or the app is backgrounded, the microphone and camera loops are stopped to save CPU and battery. Threshold sliders, presets, and calibration are left unchanged. Sensors that were running resume automatically when you return.
Sonic + Ultrasonic
Photonic (camera luminance / IR proxy)
Point at a TV remote and press a button — near-IR shows up as a visible flicker on the red channel on most phone cameras.
Passive channels
True microwave / SHF / UHF RF, X-ray and full UV cannot be sampled by a web page — the OS never exposes the modem baseband, and phone cameras filter UV/IR out. Where the platform gives us an approximation (near-IR via camera, magnetometer for local field changes, RTT as an EM-path proxy) we surface it above and label it honestly.