Multi-data Scene Flow Challenge
One method, five LiDAR datasets: Argoverse 2, nuScenes, Waymo, TruckScenes and Aeva.
Start with OpenSceneFlow, KTH RPL's open-source codebase: data processing, training, evaluation and pre-trained models for all five datasets, and one command to write the submission zip.
Overview
Predict scene flow for every test scene with one method and one configuration: a single checkpoint for learned models, or the same hyper-parameters for optimization-based methods. Scene IDs are anonymized, so a method is never told which dataset a scene comes from.
- Ranges: 0–35 m for every entry; 35–70 m is optional (skip it if your model crops the point cloud, e.g. at 51.2 m).
- Tracks: Supervised, or Unsupervised: no human labels of real-world data (self-supervision, simulated labels and foundation models are fine).
- Training data: each entry is labelled single-dataset or multi-dataset.
1. Download the data
Download challenge_public from Hugging Face (about 150 GB):
huggingface-cli download kin-zhang/multidata-sf-challenge --repo-type dataset --local-dir ./challenge_data
index_eval.pkl: list of(scene_id, timestamp)tuples, one per frame to predict.{scene_id}.h5: one HDF5 file per scene with all timestamps (for multi-frame context).
| Field | Shape | Description |
|---|---|---|
lidar | (N, 4) | Point cloud: x, y, z, intensity. Use xyz for flow. |
ground_mask | (N,) | Boolean; ground points are excluded from evaluation. |
pose | (4, 4) | Ego-vehicle pose in the world frame (SE3). |
2. Generate predictions
With OpenSceneFlow, any supported model writes the submission directly:
python eval.py checkpoint=/path/to/model.ckpt data_mode=test \
dataset_path=/path/to/challenge_public leaderboard_version=3 save_res=True
With your own implementation, predict the per-point 3D flow for every (scene_id, timestamp) in
index_eval.pkl, in ego-motion-removed (relative) form:
# final_absolute_flow = pred_flow + pose_flow -> submit pred_flow, NOT the absolute flow
save_pred_flow = (final_flow - pose_flow).cpu().numpy() # shape (N, 3)
Save each frame as an Apache Feather file with columns flow_tx_m, flow_ty_m, flow_tz_m.
The file name is the exact integer timestamp from index_eval.pkl, and the number of rows equals the
number of points in lidar (ground points included; they are masked on the server).
import pandas as pd
from pathlib import Path
out_dir = Path("submission") / scene_id
out_dir.mkdir(parents=True, exist_ok=True)
pd.DataFrame({"flow_tx_m": flow[:, 0], "flow_ty_m": flow[:, 1], "flow_tz_m": flow[:, 2]}) \
.to_feather(out_dir / f"{timestamp}.feather")
Zip the contents of submission/ so the scene folders are at the top level of the zip:
submission.zip
└── {scene_id}/
├── {timestamp_0}.feather
└── ...
cd submission && zip -r -0 ../submission.zip .
3. Upload
Register your team, confirm your e-mail and wait for an organizer to approve the account. Then upload on the Submit page in your browser, or from a terminal with an API key from your profile. The terminal uploader needs only bash and curl and resumes interrupted uploads:
curl -O https://sceneflow.kth-rpl.se/download/sceneflow_submit.sh
export SCENEFLOW_API_KEY=YOUR_API_KEY
bash sceneflow_submit.sh submission.zip --method-name "MyMethod" --training-data multi \
--project-url "https://github.com/user/repo" --notes "training data, backbone, ..." --wait
# optional: --long-range (also evaluate 35-70 m), --unsupervised, --private; see --help
The uploader checks the zip layout locally before sending anything. After the upload the server validates the file names against the evaluation index and evaluates the submission; results usually appear within 10 minutes. Track the status under My submissions.
Evaluation
Submissions are scored with Dynamic Bucket-Normalized EPE (Khatri et al., ECCV 2024), the metric of the previous AV2 scene flow challenges. It is class-aware and speed-normalized, so slow pedestrians and fast vehicles count fairly. The classic three-way EPE (FD / FS / BS) is reported as well.
| Range | Description |
|---|---|
| 0–35 m | Near range, same as previous challenges; every entry is evaluated here |
| 35–70 m | Long range, following the range-wise evaluation of SSF; optional |
Distances are Chebyshev distances in XY (max(|x|, |y|)). For each range and dataset we report mean Static,
mean Dynamic, Threeway EPE and per-class EPE for BACKGROUND, CAR, OTHER_VEHICLES, PEDESTRIAN and WHEELED_VRU.
Ranking (lower is better): Overview 0–70 m (default; mean of both ranges), 0–35 m (every entry)
and 35–70 m, all by mean Dynamic averaged over the five datasets. Evaluating 35–70 m is your choice when you
submit (--long-range) and can be changed later; entries without it are listed below the Overview and 35–70 m rankings
instead of being compared, and their 35–70 m numbers stay private.
Ground-truth flow is derived from 3D box tracks with rigid-body assignment. Ground points are excluded, and only frames with at least 10,000 non-ground points and valid flow labels are evaluated. The mapping from anonymous scene IDs to datasets is kept private on the server.
Rules
- Use one configuration for all scenes of all datasets: a single checkpoint for learned models, or the same hyper-parameters for optimization-based methods. No per-dataset models or tuning.
- Do not train on any validation set of any dataset.
- Test-time (per-scene) optimization is allowed but must be declared in the submission notes.
- At most 10 submissions per team per 24 hours, one evaluated at a time. Use one account per team.
Citing
If you take part in the challenge or use its results, please cite the OpenSceneFlow works and the evaluation metric:
@inproceedings{zhang2024deflow,
author={Zhang, Qingwen and Yang, Yi and Fang, Heng and Geng, Ruoyu and Jensfelt, Patric},
booktitle={2024 IEEE International Conference on Robotics and Automation (ICRA)},
title={{DeFlow}: Decoder of Scene Flow Network in Autonomous Driving},
year={2024},
pages={2105-2111},
doi={10.1109/ICRA57147.2024.10610278}
}
@inproceedings{zhang2024seflow,
author={Zhang, Qingwen and Yang, Yi and Li, Peizheng and Andersson, Olov and Jensfelt, Patric},
title={{SeFlow}: A Self-Supervised Scene Flow Method in Autonomous Driving},
booktitle={European Conference on Computer Vision (ECCV)},
year={2024},
pages={353–369},
organization={Springer},
doi={10.1007/978-3-031-73232-4_20},
}
@inproceedings{zhang2025deltaflow,
title={{DeltaFlow}: An Efficient Multi-frame Scene Flow Estimation Method},
author={Zhang, Qingwen and Zhu, Xiaomeng and Zhang, Yushan and Cai, Yixi and Andersson, Olov and Jensfelt, Patric},
booktitle={The Thirty-ninth Annual Conference on Neural Information Processing Systems},
year={2025},
url={https://openreview.net/forum?id=T9qNDtvAJX}
}
@article{zhang2025himo,
title={{HiMo}: High-Speed Objects Motion Compensation in Point Cloud},
author={Zhang, Qingwen and Khoche, Ajinkya and Yang, Yi and Ling, Li and Mansouri, Sina Sharif and Andersson, Olov and Jensfelt, Patric},
journal={IEEE Transactions on Robotics},
year={2025},
volume={41},
pages={5896-5911},
doi={10.1109/TRO.2025.3619042}
}
@inproceedings{zhang2026teflow,
title = {{TeFlow}: Enabling Multi-frame Supervision for Self-Supervised Feed-forward Scene Flow Estimation},
author = {Zhang, Qingwen and Jiang, Chenhan and Zhu, Xiaomeng and Miao, Yunqi and Zhang, Yushan and Andersson, Olov and Jensfelt, Patric},
year = {2026},
booktitle = {Proceedings of the IEEE/CVF conference on computer vision and pattern recognition},
pages = {3667-3676},
}
@article{zhang2026synflow,
title={{SynFlow}: Scaling Up LiDAR Scene Flow Estimation with Synthetic Data},
author={Zhang, Qingwen and Zhu, Xiaomeng and Jiang, Chenhan and Jensfelt, Patric},
journal={arXiv preprint arXiv:2604.09411},
year={2026}
}
@inproceedings{khoche2025ssf,
title={{SSF}: Sparse Long-Range Scene Flow for Autonomous Driving},
author={Khoche, Ajinkya and Zhang, Qingwen and Sanchez, Laura Pereira and Asefaw, Aron and Mansouri, Sina Sharif and Jensfelt, Patric},
booktitle={2025 IEEE International Conference on Robotics and Automation (ICRA)},
year={2025},
pages={6394-6400},
doi={10.1109/ICRA55743.2025.11128770}
}
@inproceedings{khatri2024trackflow,
author = {Khatri, Ishan and Vedder, Kyle and Peri, Neehar and Ramanan, Deva and Hays, James},
title = {I Can't Believe It's Not Scene Flow!},
booktitle = {European Conference on Computer Vision (ECCV)},
year = {2024}
}
Other methods in OpenSceneFlow (collaborators)
@article{li2025uniflow,
title={{UniFlow}: Towards Zero-Shot LiDAR Scene Flow for Autonomous Vehicles via Cross-Domain Generalization},
author={Li, Siyi and Zhang, Qingwen and Khatri, Ishan and Vedder, Kyle and Ramanan, Deva and Peri, Neehar},
journal={arXiv preprint arXiv:2511.18254},
year={2025}
}
@article{khoche2026dogflow,
author={Khoche, Ajinkya and Zhang, Qingwen and Cai, Yixi and Mansouri, Sina Sharif and Jensfelt, Patric},
journal = {IEEE Robotics and Automation Letters},
title = {{DoGFlow}: Self-Supervised LiDAR Scene Flow via Cross-Modal Doppler Guidance},
year = {2026},
volume = {11},
number = {3},
pages = {3836-3843},
doi = {10.1109/LRA.2026.3662592},
}
@article{kim2025flow4d,
author={Kim, Jaeyeul and Woo, Jungwan and Shin, Ukcheol and Oh, Jean and Im, Sunghoon},
journal={IEEE Robotics and Automation Letters},
title={Flow4D: Leveraging 4D Voxel Network for LiDAR Scene Flow Estimation},
year={2025},
volume={10},
number={4},
pages={3462-3469},
doi={10.1109/LRA.2025.3542327}
}
@inproceedings{lin2025voteflow,
title={VoteFlow: Enforcing Local Rigidity in Self-Supervised Scene Flow},
author={Lin, Yancong and Wang, Shiming and Nan, Liangliang and Kooij, Julian and Caesar, Holger},
booktitle={CVPR},
year={2025},
}