Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions anim_utils.egg-info/PKG-INFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
Metadata-Version: 2.1
Name: anim-utils
Version: 0.1
Summary: Skeleton Animation Utilities.
Home-page: https://github.com/eherr/anim_utils
Author: DFKI GmbH
License: MIT
Keywords: skeleton animation data retargeting
Platform: UNKNOWN
Requires-Python: >=3.5, <4
Description-Content-Type: text/markdown
License-File: LICENSE

# Skeleton Animation Utilities

Utility functions and data structures for skeleton animations loaded from BVH and ASF/AMC files. The library provides functions for inverse kinematics and retargeting. The main dependency, in addition to NumPy, SciPy and Matplotlib, is the transformations library by Christoph Gohlke https://www.lfd.uci.edu/~gohlke/.

## Installation

Clone the repository and install the package with editable flag or use the follwing command:
```bat
pip install git+https://github.com/eherr/anim_utils
```
The optional FBX IO requires the [Python FBX SDK](https://www.autodesk.com/developer-network/platform-technologies/fbx-sdk-2020-3)

## Example

```python
from anim_utils.animation_data import BVHReader, MotionVector, SkeletonBuilder

bvh = BVHReader("example.bvh")
mv = MotionVector()
mv.from_bvh_reader(bvh)
skeleton = SkeletonBuilder().load_from_bvh(bvh)
point_clouds = []
for frame in mv.frames:
point_cloud = []
for j in skeleton.animated_joints:
p = skeleton.nodes[j].get_global_position(frame)
point_cloud.append(p)
point_clouds.append(point_cloud)

```

A retargeting script can be found in the example directory.

## Developers

Erik Herrmann<sup>1</sup>, Han Du<sup>1</sup>, Martin Manns<sup>2</sup>, Markus Mauer<sup>2</sup>

<sup>1</sup>DFKI GmbH
<sup>2</sup>Daimler AG


## License
Copyright (c) 2019 DFKI GmbH.
MIT License, see the LICENSE file.

Contributions by Daimler AG in the following files are also licensed under terms of the MIT license:
anim_utils/animation_data/bvh.py
anim_utils/animation_data/utils.py

Each file contains a copyright notice.


56 changes: 56 additions & 0 deletions anim_utils.egg-info/SOURCES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
LICENSE
README.md
setup.py
anim_utils/__init__.py
anim_utils.egg-info/PKG-INFO
anim_utils.egg-info/SOURCES.txt
anim_utils.egg-info/dependency_links.txt
anim_utils.egg-info/requires.txt
anim_utils.egg-info/top_level.txt
anim_utils/animation_data/__init__.py
anim_utils/animation_data/acclaim.py
anim_utils/animation_data/bvh.py
anim_utils/animation_data/constants.py
anim_utils/animation_data/joint_constraints.py
anim_utils/animation_data/motion_blending.py
anim_utils/animation_data/motion_concatenation.py
anim_utils/animation_data/motion_distance.py
anim_utils/animation_data/motion_state.py
anim_utils/animation_data/motion_vector.py
anim_utils/animation_data/quaternion_frame.py
anim_utils/animation_data/skeleton.py
anim_utils/animation_data/skeleton_builder.py
anim_utils/animation_data/skeleton_models.py
anim_utils/animation_data/skeleton_node.py
anim_utils/animation_data/utils.py
anim_utils/animation_data/fbx/__init__.py
anim_utils/animation_data/fbx/fbx_export.py
anim_utils/animation_data/fbx/fbx_import.py
anim_utils/motion_editing/__init__.py
anim_utils/motion_editing/analytical_inverse_kinematics.py
anim_utils/motion_editing/coordinate_cyclic_descent.py
anim_utils/motion_editing/cubic_motion_spline.py
anim_utils/motion_editing/fabrik_chain.py
anim_utils/motion_editing/fabrik_node.py
anim_utils/motion_editing/footplant_constraint_generator.py
anim_utils/motion_editing/hybrit_ik.py
anim_utils/motion_editing/ik_constraints.py
anim_utils/motion_editing/ik_constraints_builder.py
anim_utils/motion_editing/motion_editing.py
anim_utils/motion_editing/motion_filtering.py
anim_utils/motion_editing/motion_grounding.py
anim_utils/motion_editing/numerical_ik_exp.py
anim_utils/motion_editing/numerical_ik_quat.py
anim_utils/motion_editing/skeleton_pose_model.py
anim_utils/motion_editing/utils.py
anim_utils/retargeting/__init__.py
anim_utils/retargeting/analytical.py
anim_utils/retargeting/constants.py
anim_utils/retargeting/constrained_retargeting.py
anim_utils/retargeting/fast_point_cloud_retargeting.py
anim_utils/retargeting/point_cloud_retargeting.py
anim_utils/retargeting/utils.py
anim_utils/utilities/__init__.py
anim_utils/utilities/custom_math.py
anim_utils/utilities/io_helper_functions.py
anim_utils/utilities/log.py
1 change: 1 addition & 0 deletions anim_utils.egg-info/dependency_links.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

4 changes: 4 additions & 0 deletions anim_utils.egg-info/requires.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
matplotlib
numpy
scipy
transformations
1 change: 1 addition & 0 deletions anim_utils.egg-info/top_level.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
anim_utils
Empty file.
9 changes: 9 additions & 0 deletions build/lib/anim_utils/animation_data/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from .motion_vector import MotionVector
from .motion_concatenation import align_quaternion_frames, transform_euler_frames, transform_quaternion_frames
from .bvh import BVHReader, BVHWriter
from .acclaim import parse_asf_file, parse_amc_file
from .skeleton import Skeleton
from .skeleton_builder import SkeletonBuilder
from .skeleton_node import SKELETON_NODE_TYPE_ROOT, SKELETON_NODE_TYPE_JOINT, SKELETON_NODE_TYPE_END_SITE, SkeletonRootNode, SkeletonJointNode, SkeletonEndSiteNode
from .skeleton_models import SKELETON_MODELS
from .constants import *
Loading