All Projects → CalciferZh → Amcparser

CalciferZh / Amcparser

Licence: mit
Parse and visualize asf/amc files from CMU MoCap dataset.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Amcparser

Windless
Windless makes it easy to implement invisible layout loading view.
Stars: ✭ 919 (+1212.86%)
Mutual labels:  skeleton
Bcf Skeleton
BigClown Firmware Skeleton (Empty Application)
Stars: ✭ 14 (-80%)
Mutual labels:  skeleton
Skeleton Vue
A skeleton for building Spatie's Vue components
Stars: ✭ 55 (-21.43%)
Mutual labels:  skeleton
Modosc
A set of Max abstractions designed for computing motion descriptors from raw motion capture data in real time.
Stars: ✭ 24 (-65.71%)
Mutual labels:  motion
Mskeletonframework
iOS预览页面结构控件
Stars: ✭ 12 (-82.86%)
Mutual labels:  skeleton
Motion Animator Objc
A Motion Animator creates performant, interruptible iOS animations from motion specs.
Stars: ✭ 33 (-52.86%)
Mutual labels:  motion
Mdl Skeleton
Material Design skeleton with ssr-engine
Stars: ✭ 17 (-75.71%)
Mutual labels:  skeleton
Skeleton
🔨 Nepxion Skeleton is a generic codes and files generator based on freemaker for any text formats, and provides skeleton of Spring Cloud with docker deployment 基于Docker & Spring Cloud的代码和文件的脚手架生成平台
Stars: ✭ 61 (-12.86%)
Mutual labels:  skeleton
Caviar
The skeleton of frameworks for micro frontends
Stars: ✭ 14 (-80%)
Mutual labels:  skeleton
Creature unity
2D Skeletal Animation Unity Runtimes for Creature
Stars: ✭ 50 (-28.57%)
Mutual labels:  skeleton
Angular Skeleton App
Angular 7.x navigation skeleton project with styling which get you started faster.
Stars: ✭ 25 (-64.29%)
Mutual labels:  skeleton
Vue Skeleton Webpack Plugin
Lavas webpack plugin: skeleton solution for PWA webshell
Stars: ✭ 840 (+1100%)
Mutual labels:  skeleton
Docker Skeleton Php
A simple Docker PHP development environment
Stars: ✭ 40 (-42.86%)
Mutual labels:  skeleton
Moto.js
A light motion library with curvilinear support.
Stars: ✭ 24 (-65.71%)
Mutual labels:  motion
Antragsgruen
Managing motions and amendments for political conventions
Stars: ✭ 56 (-20%)
Mutual labels:  motion
Explicit Architecture Php Skeleton
A repository skeleton with the boilerplate for PHP projects, following Explicit Architecture.
Stars: ✭ 18 (-74.29%)
Mutual labels:  skeleton
Elm Kitchen
Easily bootstrap a new Elm SPA
Stars: ✭ 21 (-70%)
Mutual labels:  skeleton
Flui
A powerful UI framework for Google Flutter.
Stars: ✭ 1,153 (+1547.14%)
Mutual labels:  skeleton
Android Templates And Utilities
Collection of source codes, utilities, templates and snippets for Android development.
Stars: ✭ 1,099 (+1470%)
Mutual labels:  skeleton
Material Motion
Starmap and team docs
Stars: ✭ 44 (-37.14%)
Mutual labels:  motion

AMCParser

A lightweight library to parse and visualize asf/amc files from CMU MoCap dataset using Python 3.

The main purpose of this library is to help understanding how asf/amc file works, as well as how to use them. Therefore, simplicity and readability are stressed, while robustness is ignored.

Demo

Demo using PyGame and PyOpenGL:

3D Demo

Demo using Matplotlib:

Static Demo

Usage

There's a simple example in the source code as follows:

if __name__ == '__main__':
  asf_path = './data/01/01.asf'
  amc_path = './data/01/01_01.amc'
  joints = parse_asf(asf_path)
  motions = parse_amc(amc_path)
  frame_idx = 180
  joints['root'].set_motion(motions[frame_idx])
  joints['root'].draw()

And another example in 3Dviewer.py:

  asf_path = './data/01/01.asf'
  amc_path = './data/01/01_01.amc'
  joints = parse_asf(asf_path)
  motions = parse_amc(amc_path)
  v = Viwer(joints, motions)
  v.run()

The data can be found from CMU MoCap dataset.

Parser

The asf/amc parsers are straightforward and easy to understand. The parsers are fully tested on the CMU MoCap dataset, but I don't expect it can work on other datasets without any modification. However, it won't be hard to extend it for more complicating asf/amc files.

Visualization

Matplotlib is used to draw joints and bones in 3D statically; PyGame and PyOpenGL are used to draw motion sequence.

In 3DViewer, we support:

  • WASD to move around.
  • QE to zoom in/out.
  • ↑ ↓ ← → to rotate.
  • LEFT MOUSE BUTTON to drag.
  • RETURN to reset camera view.
  • SPACE to start/pause.
  • , and . to rewind and forward.

NOTE that my implementation of changing view is inefficient (but fluent enough) with some small bugs, but I don't have time to improve it. Pull request is welcomed.

Dependencies

  • numpy
  • transforms3d
  • matplotlib
  • pygame
  • pyopengl

All the dependencies are available via pip install.

One More Thing

If this repo is used in any publications or projects, please let me know. I would be happy and encouraged =)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].