Skip to content

Enekoassets/ReActIdle

Repository files navigation

License: MIT

ReActIdle dataset

Front page figure

🧭 About

Data: This repository contains the dataset from the paper Evaluating Idle Animation Believability: a User Perspective, published in the Computer Animation and Virtual Worlds journal.

Code: It also contains scripts to reproduce the results and graphs from the paper. The provided scripts perform the analysis of the speeds, accelerations and jerks, with direct comparisons and by using PCA, t-SNE and UMAP representations.

Project page: The project page can be found here

πŸ“– Citing

If you use this dataset in your research, please cite it as follows:

@article{https://doi.org/10.1002/cav.70116,
author = {Landa, Eneko Atxa and Lazkano, Elena and Rodriguez, Igor and Rodriguez-Moreno, Itsaso and Irigoien, Itziar},
title = {Evaluating Idle Animation Believability: A User Perspective},
journal = {Computer Animation and Virtual Worlds},
volume = {37},
number = {3},
pages = {e70116},
keywords = {animation, idle motion, motion capture, motion perception},
doi = {https://doi.org/10.1002/cav.70116},
url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/cav.70116},
eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1002/cav.70116},
year = {2026}
}

πŸ§β€β™‚οΈ Data

The repository contains 16 clips of acted idle animations and 10 clips of genuine idle animations. The number of the clip matches the ID of the person performing the animation, so clip 000_genuine.bvh and 000_acted.bvh are made by the same person.

The dataset contains 55.039 frames of acted idle motion and 27.273 frames of genuine idle motion.

You can directly clone this repository and use the BVH files provided in the acted and genuine folders.

πŸ“‹ Reproducing the results

To reproduce the results from the paper, follow these instructions.

⛹️‍♂️ Angular speeds

Execute the plotAngularSpeeds.py script. You will need to have numpy, scipy and matplotlib. The script will first show the average angular speeds graph from the paper, but it will also show average angular accelerations and jerks.

Angular speeds plot

πŸƒβ€β™€οΈ Speeds

First, generate the position csv files by running createCsvFiles.py. You will need to have bvhTools installed. You can easily install it with:

pip install bvhTools

This will generate two new folders inside the acted and genuine bvh folders, containing the csv files with the joint positions in every frame.

Then, execute the plotSpeeds.py script. You will need to have numpy, pandas, scipy and matplotlib. The script will first show the average speeds graph from the paper, but it will also show average accelerations and jerks.

Speeds plot

Note: The graphs involving Mixamo animations can not be directly reproduced, as they need the animations from Mixamo, which cannot be redistributed without permission. You can download those animations from Mixamo and edit the scripts to do so. First search the keyword "idle" in Mixamo, and then extract the following animation clips to BVH.

  • Catwalk idle
  • Catwalk idle 01
  • Catwalk idle 02
  • Standing idle
  • Idle (the first 5 animations that appear in Mixamo)
  • Standard idle
  • Unarmed idle 01 (2 animations)
  • Warrior idle
  • Neutral idle
  • Wheelbarrow idle has been discarded because it has a different structure

After putting these 14 animations into a folder named mixamo, you can run createCsvFiles.py again, but just with the last uncommented part, so you calculate forward kinematics on mixamo animations.

Then, run normalizeMixamoCsv.py to normalize all the animations. (You will need the bvh python package: you can install it with pip install bvh)

After this preprocessing, you will be able to run mixamoPlotAngularSpeeds.py and mixamoPlotSpeeds.py, to reproduce the following two graphs from the paper.

Mixamo angular speeds plot

Mixamo speeds plot

πŸ“ PCA, t-SNE and UMAP plots

These plots need functionalities from sklearn and UMAP to work properly. Install them with pip install scikit-learn, pip install umap-learn. clustering.py also needs the bvhTools package: pip install bvhTools.

Real vs Acted plots

The PCA, t-SNE and UMAP plots depicting the lower dimension representation of real and acted instances can be reproduced running the clustering.py script. By changing the mode variable in the top of the script, the user can choose between linear and angular time derivatives. Also, by changing the derivative variable, the user can choose between using speeds, accelerations or jerks.

The following plots are example PCA, t-SNE and UMAP representations using angular speeds.

PCA

pca

t-SNE

tsne

UMAP

umap

Real, Acted and Mixamo plots

The PCA, t-SNE and UMAP plots depicting the lower dimension representation of real, acted and Mixamo instances can be reproduced running the clustering_mixamo.py script. Again, the Mixamo animations have to be downloaded from the mixamo repository, as explained here.

Finally, by changing the derivative variable, the user can choose between using angular speeds, angular accelerations and angular jerks.

The following plots are example PCA, t-SNE and UMAP representations using angular speeds.

PCA

pca

t-SNE

tsne

UMAP

umap

πŸ“‹ License

The dataset provided in this repository is released under the MIT License.
You are free to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the dataset, under the conditions outlined in the MIT License.

See LICENSE.txt for full license text.

πŸ§ͺ Examples

The following videos contain some extracts of the dataset. Would you be able to determine whether each video corresponds to a real or and acted sample?

00.mp4
04.mp4
01.mp4
05.mp4
02.mp4
06.mp4
03.mp4

The first one is an acted sample, the second one a real one, and so on. Aren't they indistinguishable?

About

ReActIdle: a dataset of real and acted idle animations

Resources

License

Stars

Watchers

Forks

Contributors

Languages