Views
No views yet
Dataset:velvet-pine-22/PULSE· Sample subset (≈285 MB):velvet-pine-22/PULSE-sample
PULSE-code/
├── experiments/
│ ├── data/ # PyTorch Dataset wrappers
│ │ ├── dataset.py # core multi-modal dataset (T1, T2)
│ │ ├── dataset_seqpred.py # T2 fine-grained action recognition
│ │ ├── dataset_grasp_state.py # T3 grasp onset anticipation
│ │ ├── dataset_forecast.py # auxiliary forecasting heads
│ │ └── dataset_signal_forecast.py # T5 tactile-driven motion forecast
│ │
│ ├── nets/ # Model architectures
│ │ ├── models.py # backbone networks (Transformer / LSTM / 1D-CNN)
│ │ ├── models_seqpred.py # DailyActFormer (DAF) — multi-modal Transformer
│ │ ├── models_forecast.py # forecasting heads
│ │ ├── models_forecast_priv.py # privileged-tactile variants for T5
│ │ ├── published_models.py # third-party model implementations
│ │ └── baselines_published/ # 7 published baselines (re-implementation)
│ │ ├── baselines.py # DeepConvLSTM / InceptionTime / MS-TCN / etc.
│ │ └── syncfuse.py # under-pressure-style multi-modal fusion
│ │
│ ├── tasks/ # Training + evaluation entry points
│ │ ├── train_exp1.py # T1 — scene recognition
│ │ ├── train_seqpred.py # T2 — action recognition (DAF + ablations)
│ │ ├── train_grasp_state.py # T3 — grasp onset anticipation
│ │ ├── train_pred_cls.py # T3 alt classification head
│ │ ├── train_exp_missing.py # T4 — missing-modality robustness
│ │ ├── train_signal_forecast.py # T5 — tactile-driven motion forecasting
│ │ ├── train_signal_forecast_priv.py # T5 privileged variants
│ │ ├── train_baselines_t1.py # baselines for T1
│ │ ├── train_exp{2,3,4}.py # ablation experiments
│ │ ├── train_exp_{anticipate,grip,pose,retrieval,zeroshot}.py # auxiliary
│ │ ├── train_pred.py / train_forecast.py
│ │ ├── eval_baselines.py / eval_combined.py
│ │ └── published_baselines.py # baseline registry
│ │
│ ├── analysis/ # Case study, figures, data prep utilities
│ │ ├── grasp_phase_analysis.py # case study (gaze→EMG→hand→contact cascade)
│ │ ├── modality_viz.py / analysis_figures.py / data_statistics_figure.py
│ │ ├── extract_video_features.py / extract_videomae_features.py
│ │ ├── build_taxonomy.py / generate_action_labels.py / generate_coarse_annotations.py
│ │ ├── reannotate_actions.py / gen_val_comparison.py
│ │ ├── exp_per_subject.py / check_seg_lengths.py
│ │ └── aggregate_*.py # collate run results
│ │
│ ├── slurm/ # 60+ SLURM launch scripts (one per main experiment)
│ │ └── run_*.sh
│ │
│ ├── taxonomy.py # shared 18-primitive taxonomy
│ ├── s9_primitives.json
│ └── taxonomy_v3.json
│
├── scripts/ # Top-level utilities (not task-specific)
│ ├── build_paper_tables.py # collates results JSONs into LaTeX tables
│ ├── eval_macrof1.py / eval_subset.py / eval_topk_v3.py
│ └── dispatch_eval.sh # batch dispatcher
│
├── LICENSE # MIT
├── requirements.txt # Python deps
└── README.md1# 1. Set up Python environment
2python -m venv .venv && source .venv/bin/activate
3pip install -r requirements.txt
4
5# 2. Point at the PULSE dataset (download from HuggingFace first)
6export PULSE_ROOT=/path/to/PULSE # the dataset root (not this code repo)
7
8# 3. Run a training entry point as a module (from the experiments/ directory)
9cd experiments
10python -m tasks.train_seqpred \
11 --root $PULSE_ROOT \
12 --modalities mocap emg eyetrack imu pressure \
13 --output_dir runs/t2_daf
14
15# 4. Reproduce paper tables (after training all benchmarks)
16cd ..
17python scripts/build_paper_tables.py \
18 --results_root experiments/runs/ \
19 --out tables/Whypython -m tasks.train_seqpredand notpython tasks/train_seqpred.py? The training scripts import sibling modules (from data.dataset import …,from nets.models import …). Running with-mfrom theexperiments/directory makes Python treatdata/,nets/,tasks/, andanalysis/as top-level packages so the imports resolve cleanly.
| Task | Entry point | Output |
|---|---|---|
| T1 — Scene recognition (8-way) | tasks.train_exp1 | scene-classification metrics |
| T2 — Fine-grained action recognition | tasks.train_seqpred | verb / noun / hand top-k accuracy |
| T3 — Grasp onset anticipation | tasks.train_grasp_state / tasks.train_pred_cls | anticipation F1 / time-to-contact |
| T4 — Missing-modality robustness | tasks.train_exp_missing + tasks.eval_combined | per-modality ablation table |
| T5 — Tactile-driven grasp-state recognition | tasks.train_signal_forecast (+ _priv variants) | sub-second grasp-state metrics |
| T6 — Cross-modal pressure prediction | tasks.train_forecast / tasks.train_signal_forecast | pressure reconstruction metrics |
experiments/slurm/run_*.sh, one
SLURM script per paper experiment. Output JSON files from these runs are
collated into LaTeX tables by scripts/build_paper_tables.py.LICENSE). The PULSE dataset itself is
released under CC BY-NC 4.0 (see the dataset repository).1@inproceedings{anonymous2026pulse,
2 title = {PULSE: A Synchronized Five-Modality Dataset for Multi-Modal Daily Activity Understanding},
3 author = {Anonymous Authors},
4 booktitle = {Submitted to NeurIPS 2026 Evaluations and Datasets Track},
5 year = {2026},
6 note = {Under double-blind review}
7}