W WiSenseHub
← Home

QUICKSTART TUTORIAL

Prepare a CSI-Bench sample—with an agent or by hand.

The WiSenseHub skill can handle the complete workflow and explain every step. The manual commands remain below for users who want full terminal control.

RECOMMENDED

Let the WiSenseHub skill do the work

You describe the result you want. The agent installs tools, downloads data, processes it, checks the output, and explains what happened.

1. Install from GitHub

Send this message to Codex:

Help me install this skill:
https://github.com/wisensehub/wisensehub.github.io/tree/main/skills/wisensehub

After installation, restart Codex so the new skill is loaded.

2. Call the skill

Select WiSenseHub from the Skills UI or type $wisensehub, then ask:

Download the CSI-Bench sample and prepare it for me.

The user does not need to run commands or choose technical flags.

What the agent explains

After setup, download, processing, and validation, it tells you what changed, why that step was needed, and where the files were saved. It asks only when a dataset login or an important processing choice is required.

More things you can ask
Prepare the breathing sample for vital-sign research.
Make 5-second activity clips at 50 Hz.
Show me what is inside one processed sample.
Prepare my complete dataset using its official split.
Explain why my conversions failed.
01

Install

Open the project and create a Python environment.

02

Download

Save and unzip the sample into the exact input folder.

03

Prepare

Convert the source files and make a random data split.

04

Find results

Open the generated NPZ, reports, and split file.

STEP 1

Open WiSenseHub and install it

Run these commands from a terminal. If you already cloned the project, start at cd WiSenseHub.

git clone https://github.com/wisensehub/wisensehub.github.io.git
cd WiSenseHub

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[data]"
Where am I?

All commands below must run inside the WiSenseHub project folder. Keep (.venv) visible at the start of your terminal prompt.

STEP 2

Download the small CSI-Bench sample

The ZIP may stay in data/csi-bench/. The extracted task folders must go inside data/csi-bench/original/.

mkdir -p data/csi-bench/original

curl -L https://wisensehub.github.io/samples/csi-bench-original-subset.zip \
  -o data/csi-bench/csi-bench-sample.zip

unzip -q data/csi-bench/csi-bench-sample.zip \
  -d data/csi-bench/original
data/csi-bench/
├── csi-bench-sample.zip       # downloaded ZIP; safe to keep
└── original/                  # WiSenseHub reads from here
    ├── BreathingDetection/
    ├── FallDetection/
    ├── Localization/
    ├── MotionSourceRecognition/
    └── Multitask/

Check that the files are in the right place:

find data/csi-bench/original -type f | head
Download selected files from Kaggle instead

This method needs a Kaggle account and Kaggle CLI login.

python scripts/download_csi_bench_subset.py \
  --output data/csi-bench/original

STEP 3

Prepare the sample

Use a random split for this small sample. The official ID split needs extra files that are only included in the complete dataset.

wisensehub prepare csi-bench \
  --data-root data \
  --setting random \
  --profile general-sensing

When the command finishes, WiSenseHub prints how many files were converted and the train, validation, and test counts.

STEP 4

Find and open the results

WiSenseHub keeps the downloaded source files. It writes all new files next to the original/ folder.

data/csi-bench/
├── original/                   # your downloaded source files
├── standardized/              # native NPZ + JSON
│   └── views/                 # fixed-shape model inputs
├── reports/                   # data quality checks
├── splits/random.json         # train/val/test file list
└── prepare-manifest.json      # full record of this run

Open the first generated model view:

python - <<'PY'
from pathlib import Path
import numpy as np

path = next(Path("data/csi-bench/standardized/views").glob("*.npz"))
sample = np.load(path)

print("File:", path)
print("Arrays:", sample.files)
print("Shape:", sample["amplitude"].shape)
PY
Next run

Do not download again. Keep data/csi-bench/original/ and rerun the wisensehub prepare command. Existing outputs are kept unless you add --force.

NOTEBOOK

When should we use Jupyter?

Use the notebook for an interactive demo or interview walkthrough; keep the web tutorial as stable public documentation.

GitHub Pages tutorial

Best for quick review, copy-paste commands, and explaining the hub structure to new users.

Embedded notebook

Best for showing code cells, expected outputs, and the NumPy tensor contract directly inside the website.

Open full notebook view

IN-PAGE NOTEBOOK

Notebook preview embedded in the Hub

This static viewer renders the checked-in Jupyter notebook on GitHub Pages. It is visualization-first; live execution can be added later with JupyterLite or Binder.