Paper | Project Page | Leaderboard | Model Weights
"Not only do we measure the movement by the time, but also the time by the movement, because they define each other." — Aristotle, Physics
Visual Chronometer predicts the Physical Frames Per Second (PhyFPS) of a video — the true temporal scale implied by its visual motion, independent of container metadata. We reveal that state-of-the-art video generators suffer from severe chronometric hallucination: their outputs exhibit ambiguous, unstable, and uncontrollable physical motion speeds.
🚀 Now Live — PoM Leaderboard
March 26, 2026 Join us and test whether your generated videos align with the pulse of motion.
Left: Original generated video at container FPS. Right: Corrected to PhyFPS using Visual Chronometer. User studies confirm corrected videos are perceived as more natural.
git clone https://github.com/taco-group/Visual_Chronometer.git
cd Visual_Chronometer/inference
pip install -r requirements.txtThe released checkpoint is provided for demo and leaderboard reproduction purposes only.
Please note that this checkpoint is not identical to our strongest internal model, which is not fully released at this time.
The checkpoint is automatically downloaded from Hugging Face when you first run inference, so no manual download is required.
Alternatively, you can download it manually:
| Model | Range | Download |
|---|---|---|
| VC-Common | 10–60 FPS | vc_common_10_60fps.ckpt |
Place the file in inference/ckpts/.
If you are interested in accessing the best-performing model, please contact [email protected] and briefly explain your intended use in the email.
cd inference
python predict.py --video_path demo_videos/gymnast_50fps.mp4Expected output:
============================================================
Video: gymnast_50fps.mp4
Average PhyFPS: 50.5
============================================================
Segment Frames Mid Frame PhyFPS
-------- ------------ ---------- --------
0 0-29 15 54.9
1 4-33 19 52.2
2 8-37 23 50.8
...
AVG 50.5
cd inference
python predict.py --video_dir path/to/videos/ --output_csv results.csvThree demo videos with known ground-truth FPS are included in inference/demo_videos/:
| Video | Ground Truth | Predicted PhyFPS | Error |
|---|---|---|---|
gymnast_24fps.mp4 |
24 FPS | 24.2 FPS | 0.8% |
gymnast_30fps.mp4 |
30 FPS | 30.3 FPS | 1.0% |
gymnast_50fps.mp4 |
50 FPS | 50.5 FPS | 1.0% |
A benchmark of 100 prompts for auditing the temporal consistency of video generators. See PhyFPS-Bench-Gen/README.md for usage.
Quick evaluation:
# 1. Generate videos with your model
your_model --prompts PhyFPS-Bench-Gen/prompts.txt --output generated/
# 2. Predict PhyFPS
cd inference
python predict.py --video_dir ../generated/ --stride 4 --output_csv results.csv@article{gao2026pulse,
title={The Pulse of Motion: Measuring Physical Frame Rate from Visual Dynamics},
author={Gao, Xiangbo and Wu, Mingyang and Yang, Siyuan and Yu, Jiongze and Taghavi, Pardis and Lin, Fangzhou and Tu, Zhengzhong},
journal={arXiv preprint arXiv:2603.14375},
year={2026}
}

