Widar 3.0: WiFi-based Activity Recognition Dataset

Citation Author(s):
School of Software, Tsinghua University
School of Software, Tsinghua University
School of Software, Tsinghua University
School of Software, Tsinghua University
School of Software, Tsinghua University
Submitted by:
Last updated:
Wed, 03/06/2024 - 08:20
2 ratings - Please login to submit your rating.


The Widar3.0 project is a large dataset designed for use in WiFi-based hand gesture recognition. The RF data are collected from commodity WiFi NICs in the form of Received Signal Strength Indicator (RSSI) and Channel State Information (CSI). The dataset consists of 258K instances of hand gestures with a duration of totally 8,620 minutes and from 75 domains. In addition, two sophisticated features from raw RF signal, including Doppler Frequency Shift (DFS) and a new feature Body-coordinate Velocity Profile (BVP) are included. More kinds of RF-based activity recognition data (e.g., gait identification, fall detection) are going to come. Please stay tuned for further updates.

More details are available at http://tns.thss.tsinghua.edu.cn/widar3.0/. To cite this dataset, the best reference is the paper "Zero-Effort Cross-Domain Gesture Recognition with Wi-Fi" in ACM MobiSys 2019.


Please refer to the README document.



Submitted by Nayan Bhatia on Thu, 02/18/2021 - 02:42

Bug list:

1. At the moment there is a bug in CSI_20181130.zip. In Linux, when listing files in 20181130/user5 with -ls, you will come across a file called yumeng-6-4-5-3-r6.dat. This file is supposed to be called user5-6-4-5-3-r6.dat.

2. When downloading all CSI_20181XXX.zip files, unpacking them in a directory, and running ls -lh -R $PWD/directory/ | awk '$5 == 0 {print $5, $9}' in that directory in Linux, you will discover that 7 .dat files are empty:
- 20181109/user2/user2-6-4-4-2-r1.dat
- 20181109/user3/user3-1-3-1-8-r5.dat
- 20181118/user2/user2-3-5-3-4-r4.dat
- 20181209/user6/user6-3-1-1-5-r5.dat
- 20181211/user8/user8-1-1-1-1-r5.dat
- 20181211/user8/user8-3-3-3-5-r2.dat
- 20181211/user9/user9-1-1-1-1-r1.dat
New .dat files should be provided, or these .dat files, including the .dat files of the other transceiver links, should be removed. The full paths can be extracted via find $PWD/directory/ -type f -size -1k.

3. There are .cfg files in CSI_20181117.zip, more specifically directory /20181117/user4/, that should be removed.

Submitted by Bram Berlo on Fri, 03/26/2021 - 20:21

Thank you for your thorough and kind comments. We have fixed these issues in the latest release.

1. The misleading name of the file 20181130/user5/yumeng-6-4-5-3-r6.dat has been corrected.
2. As for the empty files, they are raw data collected from the Wi-Fi receivers and are empty due to packet loss during data collection. We would leave these files unaltered to avoid the misunderstanding of the number of receivers we adopted for data collection. Instead, we highlight these empty files in the README document and recommend the users to skip them when loading data for their applications.
3. We have removed the irrelevant .cfg files in CSI_20181117.zip file.

Again, we thank you for the valuable comments. We welcome anyone to propose suggestions or issues to make this dataset easily usable.

Submitted by Yi Zhang on Thu, 04/08/2021 - 04:57


Submitted by Pradeep Kurukul... on Wed, 03/24/2021 - 02:02

I get an error when I run the BVPExtraction code in 'DVM_main.m':
'Exception OccuredUndefined function 'get_rotated_spectrum' for input arguments of type 'double'.'
Is the 'get_rotated_spectrum' function missing or from where can I get it?
Thanks in advance!

Submitted by Dirk Schumacher on Thu, 12/30/2021 - 11:58

Thank you for your kind reminder. We have updated the files.
Should you have any further questions, please feel free to contact me at zhangyithss[AT]gmail[DOT]com.

Submitted by Yi Zhang on Fri, 12/31/2021 - 03:26

I am trying to create a 4D matrix from the CSI samples (frames × Rx × subcarriers × antennas). However, the number of frames differs for different receivers (even in the same samples). Therefore, I don't know how to match the frames between the receivers.
Here is an example:
user1-5-4-2-15-r5.dat no_frames: 2605
user1-5-4-2-15-r2.dat no_frames: 2545
user1-5-4-2-15-r3.dat no_frames: 2615
user1-5-4-2-15-r4.dat no_frames: 2608
user1-5-4-2-15-r1.dat no_frames: 2591
user1-5-4-2-15-r6.dat no_frames: 2610

Submitted by Borna Barahimi on Mon, 02/06/2023 - 19:31

In the Gait_Dataset, user5 has a lot of missing data, suspecting compression loss.Please handle

Submitted by d gd on Mon, 09/18/2023 - 04:25

Dataset Files


File README_IEEE_DataPort.pdf394.84 KB