👻
Ghost Hunter/Field Consolev0.3.0
Right now, the room is
DORMANT
No deviation from baseline. The hunter is watching but the room is quiet.
baseline holding · 5 sensors agreeing · session 00:00:14
12
presence
👁
Sightings tonight
0
since session start
📡
Sensors agreeing
— / —
multi-radio consensus
Session length
00:00:00
live data
📶
CSI packets
per second
🧭
Hot bearing
strongest energy
🌀
Baseline age
since recalibration
Room radar
live sonar sweep · ectoplasm lingers where it passed
ESP32-S3 sensors
disturbance
strong return
N · 0.0m
~ test chamber · 6m × 4m ~
Field journal — entries
~ listening · listening · listening

Instrumentation

LIVE
Phase-space orbit
tight loop = calm · scattered = something here
orbit radius σ = 0.18 · stable
CSI waveforms
8 subcarriers · oscilloscope trace
CH 6 · 2.437 GHz REC
Direction of arrival
where the energy is coming from
bearing: — · spread: —°

Last 2 minutes of deviation

Evidence log

Every anomaly_detected event the hunter has captured this session. Click any row to open the case file — replay the deviation, see which sensors agreed, mark it as confirmed or noise.

Sightings over time
events / bucket
Severity wheel
visible events only
TimeBearingSensor leadConfidenceSeverityNote

Baseline

The hunter learns the "calm" shape of the room as an attractor in CSI state-space. When live readings stop tracing that shape, the deviation score rises and the ghost meter wakes up.

Attractor dimension
3.42
fractal estimate
Last shift
baseline_shift
Stability (1h)
94%
attractor lock
Calm-state attractor
the orbit the room traces when nothing's there
Centroid drift
how far the room has drifted from initial baseline
Baseline shift history
every time the attractor was re-fit or jumped
WhenReasonΔ centroidNew dimSamples

Sensors

Paired ESP32-S3 radios. Each sensor's position on the floor plan matters — the more spread out, the better the direction-of-arrival estimate.

Floor plan
drag sensors to update their position · click empty space to add

Tuning

Crank sensitivity up to chase whispers; back it off to ignore the fridge. All changes apply live.

Detection sensitivity
how far from baseline counts as "ghost"
Baseline & attractor
how the calm-state model is built
Config preview
JSON pushed to the cog
{}

About this cog

Ghost Hunter watches Wi-Fi channel-state information from ESP32-S3 sensors, learns the "shape" of an empty room as an attractor in state-space, and raises an alarm when the room's signature stops tracing that shape. Entertainment / research use only — don't make life decisions based on it.

👻 Ghost Hunter
anomaly detection via attractor-based environmental baseline
research
Version
v0.3.0
Size
22 KB
Difficulty
Medium
Hardware
ESP32-S3
Input
CSI raw
Category
Research

Emitted events

anomaly_detected deviation_score baseline_shift

How it decides there's a ghost

  1. Sensors stream raw CSI (channel-state information) — basically how Wi-Fi sub-carriers reflect off everything in the room, dozens of times a second.
  2. During calibration the cog watches the room "empty" for a few minutes and learns a low-dimensional manifold (the attractor) that the CSI orbits around.
  3. Live CSI is continuously projected into the same space. The distance from the orbit becomes the deviation score.
  4. If the score crosses your threshold for N consecutive frames, an anomaly_detected event fires. If multiple sensors agree on bearing, confidence goes up.
  5. Slow drift (HVAC, sunlight, doors closed) re-shapes the orbit itself — that's a baseline_shift, not a ghost.

Source

cognitum-one/cogs/src/cogs/ghost-hunter