What it is

OPERAnet is a synchronised multimodal human-sensing dataset from the University of Bristol OPERA project (Bocus et al., Scientific Data 2022). It records the same activities simultaneously through four modalities — WiFi CSI, Passive WiFi Radar (PWR), Ultra-Wideband (UWB, two passive receivers), and Microsoft Kinect v2 skeletons — so CSI-only, radar-only, UWB-only and vision pipelines can be compared on identical ground truth. ~8 hours of annotated measurements, up to 6 participants, two furnished office rooms. Intended for human activity recognition (HAR), device-free/non-collaborative localization, and crowd counting.

Paper (indexed in vault): bocus2022_ce7f .

Verified specs

Confirmed by loading the real files (not just the README) and by the authors' own codes/ plotting scripts.

Experiments. Numbered exp001exp061 (with gaps; not every modality captured every experiment). Activity/localization/crowd-count experiment types are split by number range (Table 2 in the paper):

  • exp002–exp018, exp020–exp033, exp056–exp061 — activity recognition (one person performing the six activities, random or predefined order).
  • exp028 — crowd counting (up to 6 people; one steps out every 5 min).
  • exp035–exp043 static device-free localization; exp044–exp048 dynamic device-free localization; exp049–exp054 device-to-device localization (TX/RX at ±30°/±60°, no human).

Activities (6). Strings in the activity column: walk, sit (sitting down on a chair), stand (standing from chair), laydown/liedown (lying on the floor), standfromlie (standing from floor), bodyrotate (upper-body rotation). Non-activity frames are labelled noactivity.

Common label fields (present as the leading columns/cells of every modality — the basis of cross-modal time sync): timestamp (HH:MM:SS.fff), activity, exp_no, person_id ("One""Six"), room_no (1 = left room, 2 = right room), plus ground-truth 2D tag coordinates (tag4422_x/y, tag89b3_x/y, …) from the positioning UWB system.

Modality Dir / files Format Hardware Contents (verified)
WiFi CSI wificsi1/, wificsi2/ (one dir per receiver NUC) .mat (MATLAB struct) 3× Intel NUC i5 (Intel 5300 NIC); NUC1/NUC2 = receivers, NUC3 = TX struct with a timestamp vector + complex CSI vectors named tx<i>rx<j>_sub<k> (3 TX × 3 RX × 30 subcarriers), 40 MHz BW, ~1.6 kHz packet rate. wificsi2_exp001.mat alone is 1.1 GB.
PWR pwr/ — 38 .mat .mat, var PWR cell array USRP-2945 SDR, 4 phase-coherent channels, 6-dBi directional antennas; illuminated by NUC3 CSI TX @1600 Hz cell array (Nframes+1) × 8: header + exp_no, timestamp, activity, person_id, room_no, PWR_ch1, PWR_ch2, PWR_ch3. Each PWR_chX frame = 200 Doppler/velocity bins (3 surveillance channels rx2/rx3/rx4). CPI 1 s, 20 MHz/channel sampling; ~10 Hz frame rate.
UWB uwb1/ (40 .csv), uwb2/ (40 .csv) .csv, one row per received UWB packet Decawave DW1000 (MDEK1001), two passive multi-static networks (uwb1 = yellow nodes, uwb2 = blue nodes) 29 metadata cols (timestamp, activity, exp_no, person_id, room_no, tag x/y, left/right_arm_tag_id, anchor_node_xy_positions, fp_pow_dbm, rx_pow_dbm, tx_id, rx_id, tx/rx_x/y_coord, tx_rx_dist_meters, fp_index, fp_amp1-3, max_growth_cir, rx_pream_count, max_noise, std_noise) + CIR taps: cir1…cir35 (uwb1, 64 cols total) / cir1…cir50 (uwb2, 79 cols total). CIR sample period ≈ 1.0016 ns; CIR pre-normalised by preamble count.
Kinect kinect/ — 36 .mat .mat, var Kinect cell array 2× Microsoft Kinect v2 (IR depth + skeletal tracking) cell array (Nframes+1) × 7: header + exp_no, timestamp, activity, person_id, room_no, Kinect1_Markers, Kinect2_Markers. Each KinectN_Markers = 19 skeleton joints × 3D (x,y,z) float64 at 10 Hz frame rate.
Ground truth (in UWB/CSI/Kinect tag columns) Decawave MDEK1001: 11 wall-mounted anchors, DRTLS app Person wore 2 tags (IDs 4422, 89b3) on either arm; 2D xy logged @10 Hz. exp028 used up to 6 tags.
codes codes/ — 14 files (.m, .py) scripts Authors' plotting/demo scripts: plot_wificsi.m, plot_pwr_spectrogram.py, plot_uwb.m, plot_kinect_data.m, stick-figure/skeleton helpers. Useful as ground-truth documentation of each .mat/.csv layout.

Acquisition & storage

  • Provenance: Figshare collection 5551209 (7 per-modality zip articles: codes, wificsi1, wificsi2, pwr, uwb1, uwb2, kinect), CC0 1.0 — free to redistribute.
  • Our copy: mirrored to Hetzner S3 at s3://monad-knowledge/datasets/operanet/, upstream folder tree preserved (codes/ kinect/ pwr/ uwb1/ uwb2/ wificsi1/ wificsi2/), uncompressed. status: acquired-partialwificsi1/ is not yet uploaded (was still downloading upstream when this note was written); everything else (231 files / ~63.3 GB) is present.
  • Loading (bounded, S3-only per the datasets contract): read datasets/operanet/_manifest.json first, filter files[] by modality/exp_no/ext, then get_bytes/byte-range the subset you need — never sync the whole 60 GB+ corpus locally. .mat files are classic v7 (scipy.io.loadmat); UWB .csv are plain CSV (CIR columns are complex-valued strings). See .claude/skills/datasets/references/s3_dataset_loader.py.

Why it matters here

  • The clean-real anchor the sim corpus lacks. OPERAnet is CC0 real CSI + radar + UWB + vision on shared ground truth — exactly the kind of public, multi-session real data the journal-publication strategy flags as required to counter the "no first-party real CSI" integrity gap, and a natural zero-shot / cross-dataset generalization target.
  • Cross-modal calibration. Synchronised CSI + PWR Doppler + UWB CIR against Kinect skeletal ground truth is a direct testbed for the thesis's BLE-calibrated-CSI direction and for cross-modal disagreement→drift detection.
  • Crowd counting. exp028 (6→1 people, stepwise) is a real graded-occupancy trace to check the observability/occupancy findings against real hardware rather than ray-traced CSI.
  • Complements huang2025_060d (multi-user WiFi HAR) as a second, multimodal real benchmark.

2 vault papers evaluate on this dataset

Titles and DOIs only — no abstracts, no analyses.

  • WiMANS: A Benchmark Dataset for WiFi-based Multi-user Activity Sensing 2025 DOI ↗
  • OPERAnet, a multimodal activity recognition dataset acquired from radio frequency and vision-based sensors 2022 DOI ↗