1
X3D Graphics for Advanced Modeling
Humanoid Animation (H-Anim)
“Our bodies are our gardens,
to the which our wills are gardeners.
William Shakespeare,
Othello
, Act I, Scene 3
2
Contents
Chapter Overview and Concepts
X3D Nodes and Examples
Additional Resources
Chapter Summary and Suggested Exercises
References
3
Chapter Overview
Overview
H-Anim Humanoid Animation is an ISO Standard
co-evolving with (and supported by) X3D.
H-Anim is designed to be implementable by a
variety of different 3D graphics technologies.
H-Anim models have regular patterns of Joints
and Segments to create a movable skeleton.
Sites and Displacers support feature animation.
Current work includes improved support for skin,
face/hands/feet, motion capture (mocap)
conversions for full-fidelity animation, including
usability for medically accurate records.
5
Concepts
back to Table of Contents
6
Motivation
The H-Anim International Standard is an
abstract representation for modeling the
skeleton and skin of 3D human figures.
H-Anim describes a standard representation
of humanoids that allows creation of human
figures that can be interoperably animated,
using behavior scripts or motion capture
data created by a variety of modeling tools.
Current work includes mocap plus hand, feet
and face models for full human anatomy.
7
Relevant Specifications
Humanoid animation (H-Anim) specification
ISO/IEC 19774:2006 version 2.0 describes
full semantics of H-Anim models
Usable in multiple languages: X3D, VRML97, etc.
X3D Abstract Specification bindings are in
Humanoid animation (H-Anim) component
VRML97 support is provided by Prototype
declarations which give full functionality
X3D Graphics Standards:
Specification Relationships
9
Original design objectives
ISO/IEC 19774:2005, H-Anim version 1.0
Compatibility
The features of an H-Anim human figure shall be
implementable in any compliant browser.
Flexibility
No assumptions shall be made about the types of
applications that will use an H-Anim human figure.
Simplicity
When in doubt, leave it out. The human figure
specification can always be extended later.
10
H-Anim Specification versions
ISO approval of the current H-Anim
International Standard is dated 2006-02-16
ISO/IEC 19774:2006
Section 6.2 Humanoid states version='2.0'
Partial work completed in 2009: PDAM
Proposed Draft Amendment 1 to H-Anim,
ISO/IEC 19774:2006/PDAM1:200x.
Also states version 2.0 but some version 2.1 models
produced... Consistent correctness is important...
Future Hanim 2015 likely version='2.2'
stable
experimental
11
H-Anim v2.2 design objectives
Skeleton
New Level of Articulation (LOA) for hands and feet
Skin
More examples to confirm skin functionality works
Add facial animation model
Motion Capture (mocap)
Dynamically interoperable mocap data conversion
Anatomical correctness
Enable modeling of human body with full fidelity for
medical records and simulation applications
12
Anatomically correct humans
H-Anim specification design put high premium
on generality for any animated figure
However most cartoon/game character physical
models vary widely and are completely ad hoc
Offered a capability but apparently didn't fill a need
Strong interest in enabling anatomically valid,
medically correct humans in full detail
Perhaps lead to standards for 3D medical records
Shared challenge with X3D Medical Working Group
Alternate humanoid characters also allowed
13
Current limitations in H-Anim
Few skin examples have been produced,
further verification of correctness needed
It is difficult to compose and sequence
multiple animation behaviors at run time
Need library of reusable skeleton/skin bodies
and composable motion-capture animations
Future work: mocap streaming mechanisms
need to operate compatibly with forthcoming
continuous level of detail (CLOD) design for
streamable X3D compression
14
H-Anim Working Group
H-Anim Humanoid Animation Working Group
The H-Anim Working group develops and
demonstrates the ISO Humanoid Animation
(H-Anim) standard.
H-Anim supports a wide variety of articulated
figures, including anatomically correct
human models, incorporating haptic and
kinematic interfaces in order to enable
sharable skeletons, bodies and animations.
http://www.web3d.org/working-groups/humanoid-animation-h-anim
15
Levels of Articulation (LOAs)
back to Table of Contents
16
Levels of Articulation (LOAs) 1
Level of articulation (LOA), refers to the
number of articulations (or joints) that are
defined for a humanoid figure.
A humanoid figure with fourteen joints is said to
have a “low level of articulation”, whereas a
humanoid figure with 72 joints might be said to
have a “high level of articulation”.
A skeletal hierarchy containing only a
HumanoidRoot Joint object is the lowest level of
articulation that is allowed for an H-Anim figure.
LOAs are composable, not strictly progressive
17
Levels of Articulation (LOAs) 2
Each LOA provides increased skeletal fidelity
LOA Plain Text Data Tables Specification Descriptions
0 HAnimHierarchyWeb3d-19774-V1.0.txt Text-based node hierarchy from approved ISO standard:
H-Anim Specification, 4.9.5 Hierarchy.
1 HAnimHierarchyWithSites.txt Hierarchy of joints, segments with corresponding surface-
feature sites (based on skeletal proximity)
2 HAnimJointNames19774V1.0.txt
List of approved HAnimJoint names.
Table 4.2 - Body Joint object names
Table 4.3 - Hand Joint object names
Table 4.4 - Face Joint object names
3
HAnimSegmentNames19774V1.0.txt
Approved HAnimSegment names, excerpted from
H-Anim Specification, 4.9.5 Hierarchy.
4
TODO, work in progress
18
19
LOA 0
Single joint: HumanoidRoot
Very important: positions, orients virtual body
anywhere in the virtual (or augmented) world
Example: receives translation/rotation values from
PositionInterpolator/OrientationInterpolator streams
TODO confirm: an LOA-0 scene can Inline
additional parts of a body, without needing
fully contiguous skeleton joints
LOA 1
LOA 2
LOA 3
H-Anim LOA-3 Examples
HanimSpecificationLOA3Invisible.x3d
HanimSpecificationLOA3Illustrated.x3d
HAnimSpecificationLOA3Motion.x3d
24
H-Anim LOA-3 screenshots
Hanim
Specification
LOA3
Illustrated
.x3d
25
HAnimSpecificationLOA3Motion.x3d
26
H-Anim support by X3DOM
27
H-Anim skeleton available
http://www.web3d.org/x3d-resources/content/examples/Basic/Medical
28
LOA 4 (proposed)
Hands
Finer detail of interior bones
Directed Acyclic Graph (DAG) for complex joints
More formal names for joints and segments
Feet
Finer detail of interior bones
Directed Acyclic Graph (DAG), avoid complex group
Face
Control points for expressive skin animation
29
Hands
TODO Hand model example work in progress
30
Feet
TODO Foot model example work in progress
31
Face
TODO initial face exemplar produced, further
work in progress to create X3D examplars
32
Higher LOAs? Different bodies?
Current + planned LOAs are thorough
LOAs 0..4 can represent all externally visible human
motion across fidelity range from simple animation
to high-precision accuracy, compatibly increasing
Also matches current capabilities for motion capture
Future H-Anim work might examine
Non-visible or “floating” bones in human anatomy
Conventions for other animals
Conventions for cartoon characters
33
BVH mocap data format
History: popular mocap data format
Biovision Hierarchy
company now defunct, so little fear of lawsuits
Widely used and supported
by many mocap tools and animation libraries
Informally defined
Many ad hoc references, none appear authoritative
Add the full BVH mocap format description to
H-Anim specification as informative annex?
Precision important for what H-Anim does
34
BVH to X3D MOCAP conversion
Lengthy 2014 work, H-Anim Working Group
Algorithm documented on H-Anim wiki
http://www.web3d.org/wiki/index.php/Techniques
Paper by Myeong Won Lee et al.
Currently implemented in Suwon University C++
H-Anim Model and Mocap Editor
TODO add matching Java source to X3D-Edit
NIST: BVH to H-ANIM motion capture process
http://ovrt.nist.gov/projects/wear/mocap
35
X3D v3.4 proposed changes
H-Anim 2.x Specification functional changes
Few (if any) major changes, better guidance
H-Anim component level 2 adds hands, feet, face?
Change, formalize name enumerations for hands
Motion capture (mocap): possible new nodes?
Specification and validation
X3D v3.4 DOCTYPE, Schema, Schematron available
Continue to improve authoring tool support
Hanim component level 2 needed in X3D spec?
36
X3D v4.0 potential changes
Integration with HTML5, X3DOM
Already implemented in X3DOM
Are any other specification changes expected?
37
X3D v4.1 potential changes
Integration with Mixed and Augmented Reality
(MAR) Reference Model extensions for X3D
Multiple aspects of MAR relate to H-Anim, including
Part 3, Live Actor and Entity Representation in MAR
Are any other specification changes for H-Anim in
X3D expected?
38
Application Support
Players
X3DOM, BSContact, Instant Reality, H3DViewer,
OctagaVS, view3dscene, Xj3D
Authoring Tools
Suwon University H-Anim Mocap Editor
X3D-Edit
BS Content Studio
Validation, Stylesheets
X3D DTD, Schema, Schematron, X3D Validator
X3D Tidy, X3dToXhtml.xslt
39
H-Anim implementations progress
Reference examples found in
X3D Basic archives for HumanoidAnimation
Detailed X3D Quality Assurance (QA) tests
using X3D Schematron, multiple other tests
for in-depth validation of joints/segments
X3dToXhtml.xslt stylesheet can provide
automatic definition of visualization lines and
shapes for illustrating H-Anim skeletons,
available in X3D-Edit
X3D Tidy conversions, visualization, cleanup
40
Validating H-Anim scenes
H-Anim scenes can be quite length, complex
Visual inspection can be insufficient – too hard!
Use the X3D Validator to find, fix problems
Clear all warnings to gain high confidence in results
X3D-Edit can test correctness in all players
41
Quality Assurance (QA) Tests
X3D Header checks
Confirm correct X3D DTD and Schema incantations
X3D DTD: element and attribute structure
Requires approved names for joints, segments, sites
X3D Schema: strong typing value checks
Requires approved names for joints, segments, sites
X3D Schematron
Must have name field, DEFs meet name conventions
Uniqueness, cross-referencing
Matching hierarchies: Joints Segments Sites
42
X3dToXhtml.xslt
Pretty-print stylesheets for converting .x3d
model source to .xhtml documentation
AnyScene.x3d to AnyScene.xhtml
Includes feature for H-Anim that shows how to
add geometry to visualize a skeleton
Visualization report for HAnimHumanoid model
HanimSpecificationLOA3Invisible.html was
augmented and converted to become
HAnimSpecificationLOA3Illustrated.x3d
43
HanimSpecificationLOA3Invisible.x3d annotations
using X3dToXhtml.xslt pretty-print stylesheet
44
X3D-Tidy 1
X3D Tidy is an XSLT stylesheet that checks for
simple errors in X3D scenes and fixes them
http://www.web3d.org/x3d/stylesheets/X3dTidy.html
Usage
Selection parameters control filtering, additions
Embedded in X3D-Edit
H-Anim functionality:
Illustrating or cleaning HAnimHumanoid skeletons
of HAnimJoint/HAnimSegement/HAnimSite nodes
X3D-Tidy 2
Authors can use X3D Tidy to fix minor errors and
apply best practices for X3D scene authoring.
X3D Tidy provides an additional degree of Quality
Assurance (QA) that helps achieve intended results
in X3D scenes and metadata.
X3D Tidy takes an .x3d scene (written using the
X3D XML encoding) as input, and returns a
modified .x3d scene as output. Any corrections are
applied in place without changing the overall
formatting or layout of the original X3D scene.
X3D Tidy does not attempt to make scene
corrections which might change intended scene
content or require an authoring decision.
46
X3D Tidy for H-Anim
Special features for H-Anim
Can automatically remove Shape geometry while
leaving HAnimHumanoid joint/segment/site/viewpoint
nodes (i.e. the skeleton) intact
Can add visualization geometry to HAnim skeleton
Thus automates pretty-print stylesheet capability
TODO option to insert bone geometry for segments
in HAnim skeleton
47
X3D Tidy launch panel in X3D-Edit
48
X3D Nodes and Examples
back to Table of Contents
49
Naming rules
Hanim nodes contain both
name
, DEF fields
Match by adding humanoid's name as prefix to DEF
Thus allows including multiple HanimHumanoids in
a single scene without ambiguity
Parent/child node relationships are strict for paired
HanimJoint, corresponding HanimSegment nodes
(preventing foot segment in mouth joint, etc.)
X3D Schematron warns if names mismatch, helpful
for validating full complexity of human models
Can ignore name validation if non-human humanoid
50
HAnimHumanoid node 1
The HAnimHumanoid node is used to
store references to the joints, segments, sites, skin
and viewpoints,
serve as a container for the entire humanoid,
provide convenient way of moving the entire
humanoid through its environment, and
store human-readable data such as author and
copyright information.
HAnimHumanoid top-level children can contain:
HAnimJoint, HAnimSegment, HanimSite, Viewpoint,
Coordinate/CoordinateDouble, Normal nodes
51
HAnimHumanoid node 2
First child is HanimHumanoidRoot
Viewpoint nodes DEFined outside of skeleton can
follow body without relative motion
USE nodes follow skeleton
Provide easy references for H-Anim tool support
Provide hooks for Inverse Kinematics (IK) engines
HAnimHumanoid panel X3D-Edit
HAnimHumanoid attributes
name
is required, must be unique so that
HAnimHumanoid can be identified at runtime
for animation purposes
version
is required
version
='2.0' for approved H-Anim ISO 19774,
version
='2.2' for current experimentation
translation, rotation, scale, scaleOrientation
bboxCenter, bboxSize:
same as Transform
center
is translation offset from origin of the
local coordinate system
containerField
='children' as regular child node
HAnimHumanoid
info
attribute
info
contains array of metadata settings
expressed as MFString key=value pairs
approved keyword terms: humanoidVersion
authorName authorEmail copyright
creationDate usageRestrictions age gender
height and weight
Example:
info
=' "authorName=Chul Hee
Jung and Myeong Won Lee"
"authorEmail=my[email protected]"
"creationDate=31 March 2011"
"humanoidVersion=2.0" "gender=female"
"height=1.5" '
55
HAnimHumanoid tooltips
HAnimJoint node, attributes
Contained by HAnimHumanoid, HAnimJoint
Contains HAnimSegment or HanimJoint with
corresponding name from skeletal hierarchy
name
is required, must be unique so that
HAnimJoint can be identified at runtime for
animation and parent/child checks
translation, rotation, scale, scaleOrientation
bboxCenter, bboxSize:
same as Transform
center
is translation offset from origin of the
local coordinate system
containerField
='children' as regular child node
HAnimJoint attributes 2
ulimit, llimit:
upper, lower limits for maximum
joint rotation in radians. Always contains 3
values, one for each local axis.
limitOrientation:
orientation of upper/lower
rotation limits, relative to HAnimJoint center.
skinCoordIndex:
coordinate index values
referencing vertices influenced by the joint.
skinCoordWeight:
weight deformation values
for corresponding
skinCoordIndex
values.
stiffness:
axial willingness of joint to move,
larger values means greater resistance
58
HAnimJoint panel X3D-Edit
HAnimJoint tooltips 1
HAnimJoint tooltips 2
HAnimSegment node, attributes
Body segments are stored by HAnimSegment
Contained by HAnimJoint with corresponding
name from skeletal hierarchy
Contains Coordinate/CoordinateDouble,
HAnimDisplacer, children (other geometry)
name
is required, must be unique so that
HAnimSegment can be identified at runtime
for animation and parent/child checks
mass:
total mass of segment, 0 if unavailable.
centerOfMass:
relative location within segment
momentsOfInertia:
3x3 inertia matrix
62
HanimSegment panel X3D-Edit
HAnimSegment tooltips
64
HAnimSite node
Contained by HanimSegment
Can contain Shape or Viewpoint
HAnimSite node serves three purposes:
define an "end effector" location which can be used
by an inverse kinematics system,
define an attachment point for accessories such as
jewelry and clothing, and
define a location for a virtual camera in the
reference frame of an HAnimSegment (such as a
view "through the eyes" of the humanoid)
HAnimSite attributes
name
is required, must be unique so that
HAnimSite can be identified at runtime for
animation and parent/child checks
List of names provided by H-Anim specification
Authors may define other sites as well
translation, rotation, scale, scaleOrientation
bboxCenter, bboxSize:
same as Transform
center
is translation offset from origin of the
local coordinate system
containerField
='children' as regular child
node
66
Landmarks
67
HanimSite panel X3D-Edit
68
HAnimSite tooltips
69
HAnimDisplacer node
HAnimDisplacer nodes are used to alter the
shape of individual segments. Three uses:
Identify vertices corresponding to a particular
feature on the HAnimSegment,
Represent a particular muscular action displacing
vertices in various directions (linearly or radially),
Represent a complete configuration of the vertices
in an HAnimSegment. For example, there might be
an HAnimDisplacer for each facial expression.
Multiple HAnimDisplacer nodes must appear
consecutively inside parent HAnimSegment
HAnimDisplacer attributes
name
is required, must be unique so that
HAnimDisplacer can be identified at runtime
for animation and parent/child checks
name
suffixes include _feature, _action and _config
name
matches Surface feature points
Provided in text table of values
Provided in Annex B of H-Anim Specification
displacements:
array of 3D values added to
neutral or resting position of HAnimSegment
vertex sets referenced by coordIndex field
coordIndex:
defines how coordinate array of
HAnimSegment vertices is affected
71
HanimDisplacer panel X3D-Edit
HAnimDisplacer tooltips
73
Support
back to Table of Contents
H-Anim Tables of Names and Features`
Plain Text Data Tables Specification Descriptions
1 HAnimHierarchyWeb3d-19774-V1.0.txt Text-based node hierarchy from approved ISO standard: H-
Anim Specification, 4.9.5 Hierarchy.
3 HAnimHierarchyWithSites.txt Hierarchy of joints, segments with corresponding surface-
feature sites (based on skeletal proximity)
4 HAnimJointNames19774V1.0.txt
List of approved HAnimJoint names.
Table 4.2 - Body Joint object names
Table 4.3 - Hand Joint object names
Table 4.4 - Face Joint object names
5
HAnimSegmentNames19774V1.0.tx
t
Approved HAnimSegment names, excerpted from
H-Anim Specification, 4.9.5 Hierarchy.
6..9
HAnimJointLoa0Names19774V1.0.txt
HAnimSiteLoa0Names19774V1.0.txt
List of approved HAnimSite names, LOA 0 to 3.
10 HAnimSurfaceFeaturePoints19774V1.
0.txt
Surface feature points, used by HAnimDisplacer
nodes.
11 SiteNameComparisonsByLOA.xlsx
Site names comparison by LOA, constructed from
preceding text tables.
The following tables of information are related to the H-Anim specification and
corresponding X3D H-Anim component. They are provided for developer use.
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/tables/tables.html
75
Examples
back to Table of Contents
Diamond Man
DiamondManLOA-0.x3d
DiamondManLOA-1.x3d
DiamondManLOA-2.x3d
(includes visual key)
Diamond Man LOA 2
79
Interchangable Actors Via
Dynamic Routing Prototypes
80
Korean Characters
12 characters at LOA 1 and 2
Authored in 3DS Max and Maya
Testing MOCAP conversions
Confirming best practices and tool support
Work continues, reported on h-anim mail list
81
82
83
LOA-4 Models Hands and Feet
Four initial models to test improvements
HanimModelHandLeft.x3d HanimModelHandRight.x3d
HanimModelFootLeft.x3d HanimModelFootRight.x3d
Checked into Basic HumanoidAnimation Examples
under SourceForge version control
Next steps, work in progress:
Incremental improvements, checked in
X3D v3.4 DOCTYPE and XML Schema validation
X3D Schematron rules validation
MOCAP animation and model integration
84
Integrating Hanim Models, Animation
HAnimHumanoid can only have single root Joint
Typically “Root
How to best add portions of models? Should work
since various LOAs are designed for composition.
Root
HandsLeft
HandsRight
Animation
Body interpolator
Left hand mocap interpolators
Right hand mocap interpolators
85
Additional Resources
back to Table of Contents
86
Additional Resources
Numerous...
X3D Resources
H-Anim working group page
H-Anim working group wiki
87
Chapter Summary
back to Table of Contents
Chapter Summary
H-Anim Humanoid Animation is an ISO Standard
co-evolving with (and supported by) X3D.
H-Anim is designed to be implementable by a
variety of different 3D graphics technologies.
H-Anim models have regular patterns of Joints
and Segments to create a movable skeleton.
Sites and Displacers support feature animation.
Current work includes improved support for skin,
face/hands/feet, motion capture (mocap)
conversions for full-fidelity animation, including
usability for medically accurate records.
89
Suggested exercises
Explore the examples both basic bodies and
also behavior switching
Animate a humanoid around a scene
Add visualization geometry to an empty
skeleton, examine the changes that occur
List possible use cases that might take
advantage of body/behavior libraries
Investigate current technology developments
in motion capture (mocap) and direct
scanning of human bodies
90
References
back to Table of Contents
91
References 1
X3D: Extensible 3D Graphics for Web Authors
by Don Brutzman and Leonard Daly, Morgan
Kaufmann Publishers, April 2007, 468 pages.
Chapter 3, Grouping Nodes
http://x3dGraphics.com
http://x3dgraphics.com/examples/X3dForWebAuthors
X3D Resources
http://www.web3d.org/x3d/content/examples/X3dResources.html
92
References 2
X3D-Edit Authoring Tool
https://savage.nps.edu/X3D-Edit
X3D Scene Authoring Hints
http://x3dgraphics.com/examples/X3dSceneAuthoringHints.html
X3D Graphics Specification
http://www.web3d.org/x3d/specifications
Also available as help pages within X3D-Edit
93
References 3
Basic Examples Archive, HumanoidAnimation
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation
94
Don Brutzman
brutzman@nps.edu
http://faculty.nps.edu/brutzman
Code USW/Br, Naval Postgraduate School
Monterey California 93943-5000 USA
1.831.656.2149 voice
Contact
CGEMS, SIGGRAPH, Eurographics
The Computer Graphics Educational Materials
Source(CGEMS) site is designed for educators
to provide a source of refereed high-quality content
as a service to the Computer Graphics community
freely available, directly prepared for classroom use
http://cgems.inesc.pt
X3D for Web Authors
recognized by CGEMS!
Book materials: X3D-Edit tool, examples, slidesets
Received jury award for Best Submission 2008
CGEMS supported by SIGGRAPH, Eurographics
96
Creative Commons open-source license
http://creativecommons.org/licenses/by-nc-sa/3.0
Open-source license
for X3D-Edit software and X3D example scenes
http://www.web3d.org/x3d/content/examples/license.html
Copyright (c) 1995-2013 held by the author(s). All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the names of the Naval Postgraduate School (NPS) Modeling Virtual Environments and Simulation
(MOVES) Institute nor the names of its contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
98
___ tooltips
FooterChapterTitle 1
1
X3D Graphics for Advanced Modeling
Humanoid Animation (H-Anim)
“Our bodies are our gardens,
to the which our wills are gardeners.
William Shakespeare,
Othello
, Act I, Scene 3
FooterChapterTitle 2
2
Contents
Chapter Overview and Concepts
X3D Nodes and Examples
Additional Resources
Chapter Summary and Suggested Exercises
References
FooterChapterTitle 3
3
Chapter Overview
FooterChapterTitle 4
Overview
H-Anim Humanoid Animation is an ISO Standard
co-evolving with (and supported by) X3D.
H-Anim is designed to be implementable by a
variety of different 3D graphics technologies.
H-Anim models have regular patterns of Joints
and Segments to create a movable skeleton.
Sites and Displacers support feature animation.
Current work includes improved support for skin,
face/hands/feet, motion capture (mocap)
conversions for full-fidelity animation, including
usability for medically accurate records.
Skin, sites and displacers are also modeled.
FooterChapterTitle 5
5
Concepts
back to Table of Contents
FooterChapterTitle 6
6
Motivation
The H-Anim International Standard is an
abstract representation for modeling the
skeleton and skin of 3D human figures.
H-Anim describes a standard representation
of humanoids that allows creation of human
figures that can be interoperably animated,
using behavior scripts or motion capture
data created by a variety of modeling tools.
Current work includes mocap plus hand, feet
and face models for full human anatomy.
FooterChapterTitle 7
7
Relevant Specifications
Humanoid animation (H-Anim) specification
ISO/IEC 19774:2006 version 2.0 describes
full semantics of H-Anim models
Usable in multiple languages: X3D, VRML97, etc.
X3D Abstract Specification bindings are in
Humanoid animation (H-Anim) component
VRML97 support is provided by Prototype
declarations which give full functionality
Web3D Recommended Standards
http://www.web3d.org/standards
ISO/IEC 19774 Humanoid animation (H-Anim) specification
http://www.web3d.org/documents/specifications/19774/V1.0/HAnim/HAnim.html
X3D Humanoid Animation (H-Anim) component
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/hanim.html
H-Anim Prototypes
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/HAnimPrototypes.x3d
FooterChapterTitle 8
X3D Graphics Standards:
Specification Relationships
X3D Graphics Standards: Specification Relationships
http://www.web3d.org/specifications/X3dSpecificationRelationships.png
http://www.web3d.org/specifications/X3dSpecificationRelationships.pdf
http://www.web3d.org/specifications/X3dSpecificationRelationships.vsd
FooterChapterTitle 9
9
Original design objectives
ISO/IEC 19774:2005, H-Anim version 1.0
Compatibility
The features of an H-Anim human figure shall be
implementable in any compliant browser.
Flexibility
No assumptions shall be made about the types of
applications that will use an H-Anim human figure.
Simplicity
When in doubt, leave it out. The human figure
specification can always be extended later.
FooterChapterTitle 10
10
H-Anim Specification versions
ISO approval of the current H-Anim
International Standard is dated 2006-02-16
ISO/IEC 19774:2006
Section 6.2 Humanoid states version='2.0'
Partial work completed in 2009: PDAM
Proposed Draft Amendment 1 to H-Anim,
ISO/IEC 19774:2006/PDAM1:200x.
Also states version 2.0 but some version 2.1 models
produced... Consistent correctness is important...
Future Hanim 2015 likely version='2.2'
stable
experimental
http://web3d.org/mailman/private/h-anim_web3d.org/2015-January/000641.html
The current ISO approved HAnim standard says
- ISO approval of the current H-Anim International Standard was 2006-02-16
http://www.web3d.org/standards/all
- Document label on the cover page is "This document is ISO/IEC 19774:2005, Humanoid animation
(H-Anim)."
http://www.web3d.org/documents/specifications/19774/V1.0/HAnim/HAnim.html
(Dick, wondering, isn't this an editorial erratum we should fix so that the document is internally
consistent?)
- The frame header says "ISO/IEC 19774:2006"
http://www.web3d.org/documents/specifications/19774/V1.0/index.html
- Humanoid "version 2.0" in section 6.2 Humanoid
http://www.web3d.org/documents/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Humanoid
FooterChapterTitle 11
11
H-Anim v2.2 design objectives
Skeleton
New Level of Articulation (LOA) for hands and feet
Skin
More examples to confirm skin functionality works
Add facial animation model
Motion Capture (mocap)
Dynamically interoperable mocap data conversion
Anatomical correctness
Enable modeling of human body with full fidelity for
medical records and simulation applications
X3D Graphics and Distributed Interactive Simulation (DIS) Protocol 12
12
Anatomically correct humans
H-Anim specification design put high premium
on generality for any animated figure
However most cartoon/game character physical
models vary widely and are completely ad hoc
Offered a capability but apparently didn't fill a need
Strong interest in enabling anatomically valid,
medically correct humans in full detail
Perhaps lead to standards for 3D medical records
Shared challenge with X3D Medical Working Group
Alternate humanoid characters also allowed
FooterChapterTitle 13
13
Current limitations in H-Anim
Few skin examples have been produced,
further verification of correctness needed
It is difficult to compose and sequence
multiple animation behaviors at run time
Need library of reusable skeleton/skin bodies
and composable motion-capture animations
Future work: mocap streaming mechanisms
need to operate compatibly with forthcoming
continuous level of detail (CLOD) design for
streamable X3D compression
FooterChapterTitle 14
14
H-Anim Working Group
H-Anim Humanoid Animation Working Group
The H-Anim Working group develops and
demonstrates the ISO Humanoid Animation
(H-Anim) standard.
H-Anim supports a wide variety of articulated
figures, including anatomically correct
human models, incorporating haptic and
kinematic interfaces in order to enable
sharable skeletons, bodies and animations.
http://www.web3d.org/working-groups/humanoid-animation-h-anim
Web3D Working Groups
http://www.web3d.org/working-groups
H-Anim Working Group
http://www.web3d.org/working-groups/humanoid-animation-h-anim
FooterChapterTitle 15
15
Levels of Articulation (LOAs)
back to Table of Contents
FooterChapterTitle 16
16
Levels of Articulation (LOAs) 1
Level of articulation (LOA), refers to the
number of articulations (or joints) that are
defined for a humanoid figure.
A humanoid figure with fourteen joints is said to
have a “low level of articulation”, whereas a
humanoid figure with 72 joints might be said to
have a “high level of articulation”.
A skeletal hierarchy containing only a
HumanoidRoot Joint object is the lowest level of
articulation that is allowed for an H-Anim figure.
LOAs are composable, not strictly progressive
FooterChapterTitle 17
17
Levels of Articulation (LOAs) 2
Each LOA provides increased skeletal fidelity
LOA Plain Text Data Tables Specification Descriptions
0 HAnimHierarchyWeb3d-19774-V1.0.txt Text-based node hierarchy from approved ISO standard:
H-Anim Specification, 4.9.5 Hierarchy.
1 HAnimHierarchyWithSites.txt Hierarchy of joints, segments with corresponding surface-
feature sites (based on skeletal proximity)
2 HAnimJointNames19774V1.0.txt
List of approved HAnimJoint names.
Table 4.2 - Body Joint object names
Table 4.3 - Hand Joint object names
Table 4.4 - Face Joint object names
3
HAnimSegmentNames19774V1.0.txt
Approved HAnimSegment names, excerpted from
H-Anim Specification, 4.9.5 Hierarchy.
4
TODO, work in progress
FooterChapterTitle 18
18
FooterChapterTitle 19
19
LOA 0
Single joint: HumanoidRoot
Very important: positions, orients virtual body
anywhere in the virtual (or augmented) world
Example: receives translation/rotation values from
PositionInterpolator/OrientationInterpolator streams
TODO confirm: an LOA-0 scene can Inline
additional parts of a body, without needing
fully contiguous skeleton joints
FooterChapterTitle 20
LOA 1
LOA Joint Diagrams created by Dr. Myeong Won LEE and students, Suwon University
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/images/BonesAllSkeletonFrontViewLOA1.png
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/images/BonesAllSkeletonFrontViewLOA2.png
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/images/BonesAllSkeletonFrontViewLOA3.png
Original model and skeleton snapshots
http://www.web3d.org/x3d/content/examples/Basic/Medical/BonesAllSkeleton.x3d
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonFrontView.png
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonLeftSideView.png
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonRearView.png
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonRightSideView.png
FooterChapterTitle 21
LOA 2
LOA Joint Diagrams created by Dr. Myeong Won LEE and students, Suwon University
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/images/BonesAllSkeletonFrontViewLOA1.png
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/images/BonesAllSkeletonFrontViewLOA2.png
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/images/BonesAllSkeletonFrontViewLOA3.png
Original model and skeleton snapshots
http://www.web3d.org/x3d/content/examples/Basic/Medical/BonesAllSkeleton.x3d
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonFrontView.png
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonLeftSideView.png
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonRearView.png
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonRightSideView.png
FooterChapterTitle 22
LOA 3
LOA Joint Diagrams created by Dr. Myeong Won LEE and students, Suwon University
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/images/BonesAllSkeletonFrontViewLOA1.png
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/images/BonesAllSkeletonFrontViewLOA2.png
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/images/BonesAllSkeletonFrontViewLOA3.png
Original model and skeleton snapshots
http://www.web3d.org/x3d/content/examples/Basic/Medical/BonesAllSkeleton.x3d
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonFrontView.png
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonLeftSideView.png
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonRearView.png
http://www.web3d.org/x3d/content/examples/Basic/Medical/images/BonesAllSkeletonRightSideView.png
X3D Graphics and Distributed Interactive Simulation (DIS) Protocol 23
H-Anim LOA-3 Examples
HanimSpecificationLOA3Invisible.x3d
HanimSpecificationLOA3Illustrated.x3d
HAnimSpecificationLOA3Motion.x3d
X3D Graphics and Distributed Interactive Simulation (DIS) Protocol 24
24
H-Anim LOA-3 screenshots
Hanim
Specification
LOA3
Illustrated
.x3d
X3D Graphics and Distributed Interactive Simulation (DIS) Protocol 25
25
HAnimSpecificationLOA3Motion.x3d
X3D Graphics and Distributed Interactive Simulation (DIS) Protocol 26
26
H-Anim support by X3DOM
X3D Graphics and Distributed Interactive Simulation (DIS) Protocol 27
27
H-Anim skeleton available
http://www.web3d.org/x3d-resources/content/examples/Basic/Medical
The X3D skeleton on the right was changed to a white background, then used to
create the image on the left that was then annotated to show joints.
TODO: provide capability to add bones to an Hanim Joint/Segment skeleton as
individual Inline X3D bone models.
FooterChapterTitle 28
28
LOA 4 (proposed)
Hands
Finer detail of interior bones
Directed Acyclic Graph (DAG) for complex joints
More formal names for joints and segments
Feet
Finer detail of interior bones
Directed Acyclic Graph (DAG), avoid complex group
Face
Control points for expressive skin animation
FooterChapterTitle 29
29
Hands
TODO Hand model example work in progress
Hands examples by Dr. Kwan Hee YOO, Chungbuk University
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/HAnimModelHandLeft.x3d
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/HAnimModelHandRight.x3d
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/HAnimModelsHandsFeet.x3d
FooterChapterTitle 30
30
Feet
TODO Foot model example work in progress
Feet examples by Dr. Kwan Hee YOO, Chungbuk University
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/HAnimModelFootLeft.x3d
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/HAnimModelFootRight.x3d
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/HAnimModelsHandsFeet.x3d
FooterChapterTitle 31
31
Face
TODO initial face exemplar produced, further
work in progress to create X3D examplars
Progress report: Jung-Ju Choi, Ajou University H-Anim meetings of the Web3D Korea Chapter in
Seoul 25 January 2015. 12MB, includes video.
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/presentations/H-AnimFacialAnimation2015January25.pdf
FooterChapterTitle 32
32
Higher LOAs? Different bodies?
Current + planned LOAs are thorough
LOAs 0..4 can represent all externally visible human
motion across fidelity range from simple animation
to high-precision accuracy, compatibly increasing
Also matches current capabilities for motion capture
Future H-Anim work might examine
Non-visible or “floating” bones in human anatomy
Conventions for other animals
Conventions for cartoon characters
FooterChapterTitle 33
33
BVH mocap data format
History: popular mocap data format
Biovision Hierarchy
company now defunct, so little fear of lawsuits
Widely used and supported
by many mocap tools and animation libraries
Informally defined
Many ad hoc references, none appear authoritative
Add the full BVH mocap format description to
H-Anim specification as informative annex?
Precision important for what H-Anim does
Biovision Hierarchy file format
https://en.wikipedia.org/wiki/Biovision_Hierarchy
FooterChapterTitle 34
34
BVH to X3D MOCAP conversion
Lengthy 2014 work, H-Anim Working Group
Algorithm documented on H-Anim wiki
http://www.web3d.org/wiki/index.php/Techniques
Paper by Myeong Won Lee et al.
Currently implemented in Suwon University C++
H-Anim Model and Mocap Editor
TODO add matching Java source to X3D-Edit
NIST: BVH to H-ANIM motion capture process
http://ovrt.nist.gov/projects/wear/mocap
FooterChapterTitle 35
35
X3D v3.4 proposed changes
H-Anim 2.x Specification functional changes
Few (if any) major changes, better guidance
H-Anim component level 2 adds hands, feet, face?
Change, formalize name enumerations for hands
Motion capture (mocap): possible new nodes?
Specification and validation
X3D v3.4 DOCTYPE, Schema, Schematron available
Continue to improve authoring tool support
Hanim component level 2 needed in X3D spec?
TODO determine if X3D v3.4 DOCTYPE, Schema can load previous version or else
are standalone. Probably standalone.
FooterChapterTitle 36
36
X3D v4.0 potential changes
Integration with HTML5, X3DOM
Already implemented in X3DOM
Are any other specification changes expected?
FooterChapterTitle 37
37
X3D v4.1 potential changes
Integration with Mixed and Augmented Reality
(MAR) Reference Model extensions for X3D
Multiple aspects of MAR relate to H-Anim, including
Part 3, Live Actor and Entity Representation in MAR
Are any other specification changes for H-Anim in
X3D expected?
FooterChapterTitle 38
38
Application Support
Players
X3DOM, BSContact, Instant Reality, H3DViewer,
OctagaVS, view3dscene, Xj3D
Authoring Tools
Suwon University H-Anim Mocap Editor
X3D-Edit
BS Content Studio
Validation, Stylesheets
X3D DTD, Schema, Schematron, X3D Validator
X3D Tidy, X3dToXhtml.xslt
Web3D Recommended Standards
http://www.web3d.org/standards
ISO/IEC 19774
http://www.web3d.org/documents/specifications/19774/V1.0/HAnim/HAnim.html
X3D Graphics and Distributed Interactive Simulation (DIS) Protocol 39
39
H-Anim implementations progress
Reference examples found in
X3D Basic archives for HumanoidAnimation
Detailed X3D Quality Assurance (QA) tests
using X3D Schematron, multiple other tests
for in-depth validation of joints/segments
X3dToXhtml.xslt stylesheet can provide
automatic definition of visualization lines and
shapes for illustrating H-Anim skeletons,
available in X3D-Edit
X3D Tidy conversions, visualization, cleanup
FooterChapterTitle 40
40
Validating H-Anim scenes
H-Anim scenes can be quite length, complex
Visual inspection can be insufficient – too hard!
Use the X3D Validator to find, fix problems
Clear all warnings to gain high confidence in results
X3D-Edit can test correctness in all players
TODO fix snapshot once BS Contact is fixed
FooterChapterTitle 41
41
Quality Assurance (QA) Tests
X3D Header checks
Confirm correct X3D DTD and Schema incantations
X3D DTD: element and attribute structure
Requires approved names for joints, segments, sites
X3D Schema: strong typing value checks
Requires approved names for joints, segments, sites
X3D Schematron
Must have name field, DEFs meet name conventions
Uniqueness, cross-referencing
Matching hierarchies: Joints Segments Sites
X3D Quality Assurance (QA)
http://www.web3d.org/x3d/content/examples/X3dResources.html#QualityAssurance
X3D Specifications: XML Schema and DOCTYPE Validation
http://www.web3d.org/specifications
X3D Schematron
http://www.web3d.org/x3d/tools/schematron/X3dSchematron.html
X3D Validator
https://savage.nps.edu/X3dValidator
X3D Tidy
http://www.web3d.org/x3d/stylesheets/X3dTidy.html
X3D Graphics and Distributed Interactive Simulation (DIS) Protocol 42
42
X3dToXhtml.xslt
Pretty-print stylesheets for converting .x3d
model source to .xhtml documentation
AnyScene.x3d to AnyScene.xhtml
Includes feature for H-Anim that shows how to
add geometry to visualize a skeleton
Visualization report for HAnimHumanoid model
HanimSpecificationLOA3Invisible.html was
augmented and converted to become
HAnimSpecificationLOA3Illustrated.x3d
X3D Graphics and Distributed Interactive Simulation (DIS) Protocol 43
43
HanimSpecificationLOA3Invisible.x3d annotations
using X3dToXhtml.xslt pretty-print stylesheet
X3D Graphics and Distributed Interactive Simulation (DIS) Protocol 44
44
X3D-Tidy 1
X3D Tidy is an XSLT stylesheet that checks for
simple errors in X3D scenes and fixes them
http://www.web3d.org/x3d/stylesheets/X3dTidy.html
Usage
Selection parameters control filtering, additions
Embedded in X3D-Edit
H-Anim functionality:
Illustrating or cleaning HAnimHumanoid skeletons
of HAnimJoint/HAnimSegement/HAnimSite nodes
Cleaning or illustrating Humanoid Animation (H-Anim) skeletons, showing default values:
<!-- Default parameter values can be overridden when invoking this stylesheet -->
<xsl:param name="HAnimSkeletonIllustrate" ><xsl:text>false</xsl:text></xsl:param>
<xsl:param name="HAnimSiteIllustrate" ><xsl:text>false</xsl:text></xsl:param>
<xsl:param name="HAnimViewpointIllustrate" ><xsl:text>false</xsl:text></xsl:param>
TODO:
<xsl:param name="HAnimGeometryRemove" ><xsl:text>false</xsl:text></xsl:param>
<xsl:param name="HAnimAddBoneSegments" ><xsl:text>false</xsl:text></xsl:param>
<xsl:param name="jointColor" ><xsl:text>1 0.5 0</xsl:text></xsl:param>
<xsl:param name="segmentColor" ><xsl:text>1 1 0</xsl:text></xsl:param>
<xsl:param name="segmentColorRGBA" ><xsl:text>1 1 0 1, 1 1 0 0.1</xsl:text></xsl:param>
<xsl:param name="siteColor" ><xsl:text>1 0 0</xsl:text></xsl:param>
<xsl:param name="siteColorRGBA" ><xsl:text>1 0 0 1, 1 0 0 0.1</xsl:text></xsl:param>
<xsl:param name="siteViewpointColor" ><xsl:text>0 0 1</xsl:text></xsl:param>
<xsl:param name="siteViewpointColorRGBA" ><xsl:text>0 0 1 1, 0 0 1 0.1</xsl:text></xsl:param>
X3D Graphics and Distributed Interactive Simulation (DIS) Protocol 45
X3D-Tidy 2
Authors can use X3D Tidy to fix minor errors and
apply best practices for X3D scene authoring.
X3D Tidy provides an additional degree of Quality
Assurance (QA) that helps achieve intended results
in X3D scenes and metadata.
X3D Tidy takes an .x3d scene (written using the
X3D XML encoding) as input, and returns a
modified .x3d scene as output. Any corrections are
applied in place without changing the overall
formatting or layout of the original X3D scene.
X3D Tidy does not attempt to make scene
corrections which might change intended scene
content or require an authoring decision.
FooterChapterTitle 46
46
X3D Tidy for H-Anim
Special features for H-Anim
Can automatically remove Shape geometry while
leaving HAnimHumanoid joint/segment/site/viewpoint
nodes (i.e. the skeleton) intact
Can add visualization geometry to HAnim skeleton
Thus automates pretty-print stylesheet capability
TODO option to insert bone geometry for segments
in HAnim skeleton
X3D Tidy
http://www.web3d.org/x3d/stylesheets/X3dTidy.html
FooterChapterTitle 47
47
X3D Tidy launch panel in X3D-Edit
FooterChapterTitle 48
48
X3D Nodes and Examples
back to Table of Contents
FooterChapterTitle 49
49
Naming rules
Hanim nodes contain both
name
, DEF fields
Match by adding humanoid's name as prefix to DEF
Thus allows including multiple HanimHumanoids in
a single scene without ambiguity
Parent/child node relationships are strict for paired
HanimJoint, corresponding HanimSegment nodes
(preventing foot segment in mouth joint, etc.)
X3D Schematron warns if names mismatch, helpful
for validating full complexity of human models
Can ignore name validation if non-human humanoid
FooterChapterTitle 50
50
HAnimHumanoid node 1
The HAnimHumanoid node is used to
store references to the joints, segments, sites, skin
and viewpoints,
serve as a container for the entire humanoid,
provide convenient way of moving the entire
humanoid through its environment, and
store human-readable data such as author and
copyright information.
HAnimHumanoid top-level children can contain:
HAnimJoint, HAnimSegment, HanimSite, Viewpoint,
Coordinate/CoordinateDouble, Normal nodes
X3D Tooltips:
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid
HAnim specification:
http://www.web3d.org/files/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Humanoid
X3D specification:
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/versionContent.html#HAnimHumanoid
FooterChapterTitle 51
51
HAnimHumanoid node 2
First child is HanimHumanoidRoot
Viewpoint nodes DEFined outside of skeleton can
follow body without relative motion
USE nodes follow skeleton
Provide easy references for H-Anim tool support
Provide hooks for Inverse Kinematics (IK) engines
FooterChapterTitle 52
HAnimHumanoid panel X3D-Edit
Example scene:
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/KoreanCharacter01Jin.x3d
FooterChapterTitle 53
HAnimHumanoid attributes
name
is required, must be unique so that
HAnimHumanoid can be identified at runtime
for animation purposes
version
is required
version
='2.0' for approved H-Anim ISO 19774,
version
='2.2' for current experimentation
translation, rotation, scale, scaleOrientation
bboxCenter, bboxSize:
same as Transform
center
is translation offset from origin of the
local coordinate system
containerField
='children' as regular child node
X3D Tooltips:
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid
HAnim specification:
http://www.web3d.org/files/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Humanoid
X3D specification:
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/versionContent.html#HAnimHumanoid
FooterChapterTitle 54
HAnimHumanoid
info
attribute
info
contains array of metadata settings
expressed as MFString key=value pairs
approved keyword terms: humanoidVersion
authorName authorEmail copyright
creationDate usageRestrictions age gender
height and weight
Example:
info
=' "authorName=Chul Hee
Jung and Myeong Won Lee"
"authorEmail=mye[email protected]"
"creationDate=31 March 2011"
"humanoidVersion=2.0" "gender=female"
"height=1.5" '
Example shown:
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/KoreanCharacter02Chul.x3d
Note MFString syntax for array of quoted SFString values. Preferred form is shown where the
overall info attribute value is surrounded by single quotes (apostrophes) while the individual
key=value pairs are each surrounded by double quotes (quotation marks).
Another example:
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/NancyNativeTags.x3d
info=' "humanoidVersion=Nancy V1.2b" "au[email protected]" "authorName=Cindy
Ballreich" "copyright=1997 3Name3D / Yglesias Wallock Divekar Inc. all rights reserved."
"creationDate=Tue Dec 30 08:30:08 PST 1997" "gender=female"
"usageRestrictions=Noncommercial usage is ok if 3Name3D name and logo
http://www.ballreich.net/vrml/h-anim/small_logo.gif is present and proper credit is given." '
TODO proposed change for .x3d XML encoding: alternate form that uses regular attribute
notation for key=value pairs.
FooterChapterTitle 55
55
HAnimHumanoid tooltips
X3D Tooltips
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimHumanoid
HAnim specification:
http://www.web3d.org/files/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Humanoid
X3D specification:
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/versionContent.html#HAnimHumanoid
FooterChapterTitle 56
HAnimJoint node, attributes
Contained by HAnimHumanoid, HAnimJoint
Contains HAnimSegment or HanimJoint with
corresponding name from skeletal hierarchy
name
is required, must be unique so that
HAnimJoint can be identified at runtime for
animation and parent/child checks
translation, rotation, scale, scaleOrientation
bboxCenter, bboxSize:
same as Transform
center
is translation offset from origin of the
local coordinate system
containerField
='children' as regular child node
FooterChapterTitle 57
HAnimJoint attributes 2
ulimit, llimit:
upper, lower limits for maximum
joint rotation in radians. Always contains 3
values, one for each local axis.
limitOrientation:
orientation of upper/lower
rotation limits, relative to HAnimJoint center.
skinCoordIndex:
coordinate index values
referencing vertices influenced by the joint.
skinCoordWeight:
weight deformation values
for corresponding
skinCoordIndex
values.
stiffness:
axial willingness of joint to move,
larger values means greater resistance
X3D Tooltips:
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimJoint
HAnim specification:
http://www.web3d.org/files/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Joint
X3D specification:
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/versionContent.html#HAnimJoint
TODO: ulimit, llimit, stiffness each need to have type SFVec3f instead of MFVec3f
FooterChapterTitle 58
58
HAnimJoint panel X3D-Edit
FooterChapterTitle 59
HAnimJoint tooltips 1
X3D Tooltips:
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimJoint
HAnim specification:
http://www.web3d.org/files/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Joint
X3D specification:
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/versionContent.html#HAnimJoint
FooterChapterTitle 60
HAnimJoint tooltips 2
X3D Tooltips
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimJoint
FooterChapterTitle 61
HAnimSegment node, attributes
Body segments are stored by HAnimSegment
Contained by HAnimJoint with corresponding
name from skeletal hierarchy
Contains Coordinate/CoordinateDouble,
HAnimDisplacer, children (other geometry)
name
is required, must be unique so that
HAnimSegment can be identified at runtime
for animation and parent/child checks
mass:
total mass of segment, 0 if unavailable.
centerOfMass:
relative location within segment
momentsOfInertia:
3x3 inertia matrix
X3D Tooltips:
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimSegment
HAnim specification:
http://www.web3d.org/files/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Segment
X3D specification:
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/versionContent.html#HAnimSegment
FooterChapterTitle 62
62
HanimSegment panel X3D-Edit
FooterChapterTitle 63
HAnimSegment tooltips
X3D Tooltips:
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimSegment
HAnim specification:
http://www.web3d.org/files/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Segment
X3D specification:
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/versionContent.html#HAnimSegment
FooterChapterTitle 64
64
HAnimSite node
Contained by HanimSegment
Can contain Shape or Viewpoint
HAnimSite node serves three purposes:
define an "end effector" location which can be used
by an inverse kinematics system,
define an attachment point for accessories such as
jewelry and clothing, and
define a location for a virtual camera in the
reference frame of an HAnimSegment (such as a
view "through the eyes" of the humanoid)
X3D Tooltips:
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimSite
HAnim specification:
http://www.web3d.org/files/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Site
X3D specification:
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/versionContent.html#HAnimSite
FooterChapterTitle 65
HAnimSite attributes
name
is required, must be unique so that
HAnimSite can be identified at runtime for
animation and parent/child checks
List of names provided by H-Anim specification
Authors may define other sites as well
translation, rotation, scale, scaleOrientation
bboxCenter, bboxSize:
same as Transform
center
is translation offset from origin of the
local coordinate system
containerField
='children' as regular child
node
FooterChapterTitle 66
66
Landmarks
FooterChapterTitle 67
67
HanimSite panel X3D-Edit
Example:
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/BoxMan.x3d
FooterChapterTitle 68
68
HAnimSite tooltips
X3D Tooltips:
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimSite
HAnim specification:
http://www.web3d.org/files/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Site
X3D specification:
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/versionContent.html#HAnimSite
FooterChapterTitle 69
69
HAnimDisplacer node
HAnimDisplacer nodes are used to alter the
shape of individual segments. Three uses:
Identify vertices corresponding to a particular
feature on the HAnimSegment,
Represent a particular muscular action displacing
vertices in various directions (linearly or radially),
Represent a complete configuration of the vertices
in an HAnimSegment. For example, there might be
an HAnimDisplacer for each facial expression.
Multiple HAnimDisplacer nodes must appear
consecutively inside parent HAnimSegment
FooterChapterTitle 70
HAnimDisplacer attributes
name
is required, must be unique so that
HAnimDisplacer can be identified at runtime
for animation and parent/child checks
name
suffixes include _feature, _action and _config
name
matches Surface feature points
Provided in text table of values
Provided in Annex B of H-Anim Specification
displacements:
array of 3D values added to
neutral or resting position of HAnimSegment
vertex sets referenced by coordIndex field
coordIndex:
defines how coordinate array of
HAnimSegment vertices is affected
X3D Tooltips:
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimDisplacer
HAnim specification:
http://www.web3d.org/files/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Displacer
X3D specification:
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/versionContent.html#HAnimDisplacer
Feature point table
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/tables/HAnimSurfaceFeaturePoints19774V1.0.txt
H-Anim Specification Annex B, Feature points for the human body
http://www.web3d.org/documents/specifications/19774/V1.0/HAnim/FeaturePoints.html
FooterChapterTitle 71
71
HanimDisplacer panel X3D-Edit
TODO: need example scene
FooterChapterTitle 72
HAnimDisplacer tooltips
X3D Tooltips:
http://www.web3d.org/x3d/tooltips/X3dTooltips.html#HAnimDisplacer
HAnim specification:
http://www.web3d.org/files/specifications/19774/V1.0/HAnim/ObjectInterfaces.html#Displacer
X3D specification:
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/versionContent.html#HAnimDisplacer
FooterChapterTitle 73
73
Support
back to Table of Contents
FooterChapterTitle 74
H-Anim Tables of Names and Features`
Plain Text Data Tables Specification Descriptions
1 HAnimHierarchyWeb3d-19774-V1.0.txt Text-based node hierarchy from approved ISO standard: H-
Anim Specification, 4.9.5 Hierarchy.
3 HAnimHierarchyWithSites.txt Hierarchy of joints, segments with corresponding surface-
feature sites (based on skeletal proximity)
4 HAnimJointNames19774V1.0.txt
List of approved HAnimJoint names.
Table 4.2 - Body Joint object names
Table 4.3 - Hand Joint object names
Table 4.4 - Face Joint object names
5
HAnimSegmentNames19774V1.0.tx
t
Approved HAnimSegment names, excerpted from
H-Anim Specification, 4.9.5 Hierarchy.
6..9
HAnimJointLoa0Names19774V1.0.txt
HAnimSiteLoa0Names19774V1.0.txt
List of approved HAnimSite names, LOA 0 to 3.
10 HAnimSurfaceFeaturePoints19774V1.
0.txt
Surface feature points, used by HAnimDisplacer
nodes.
11 SiteNameComparisonsByLOA.xlsx
Site names comparison by LOA, constructed from
preceding text tables.
The following tables of information are related to the H-Anim specification and
corresponding X3D H-Anim component. They are provided for developer use.
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/tables/tables.html
Table of H-Anim Tables of Names and Features
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/tables/tables.html
SiteNameComparisonsByLOA.xlsx
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/tables/SiteNameComparisonsByLOA.xlsx
These various text tables are used to populate correct lists of relevant attribute values in
validation checkers, authoring-tool menus, etc.
FooterChapterTitle 75
75
Examples
back to Table of Contents
FooterChapterTitle 76
FooterChapterTitle 77
Diamond Man
DiamondManLOA-0.x3d
DiamondManLOA-1.x3d
DiamondManLOA-2.x3d
(includes visual key)
DiamondMan models
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/DiamondManLOA-0.x3d
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/DiamondManLOA-1.x3d
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/DiamondManLOA-2.x3d
FooterChapterTitle 78
Diamond Man LOA 2
DiamondManLOA-3.x3d
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/DiamondManLOA-3.x3d
FooterChapterTitle 79
79
Interchangable Actors Via
Dynamic Routing Prototypes
FooterChapterTitle 80
80
Korean Characters
12 characters at LOA 1 and 2
Authored in 3DS Max and Maya
Testing MOCAP conversions
Confirming best practices and tool support
Work continues, reported on h-anim mail list
FooterChapterTitle 81
81
FooterChapterTitle 82
82
FooterChapterTitle 83
83
LOA-4 Models Hands and Feet
Four initial models to test improvements
HanimModelHandLeft.x3d HanimModelHandRight.x3d
HanimModelFootLeft.x3d HanimModelFootRight.x3d
Checked into Basic HumanoidAnimation Examples
under SourceForge version control
Next steps, work in progress:
Incremental improvements, checked in
X3D v3.4 DOCTYPE and XML Schema validation
X3D Schematron rules validation
MOCAP animation and model integration
Basic HumanoidAnimation Examples
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation
SourceForge version control
http://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation
Additional links for X3D Examples
http://www.web3d.org/x3d/content/examples/X3dResources.html#Basic
FooterChapterTitle 84
84
Integrating Hanim Models, Animation
HAnimHumanoid can only have single root Joint
Typically “Root”
How to best add portions of models? Should work
since various LOAs are designed for composition.
Root
HandsLeft
HandsRight
Animation
Body interpolator
Left hand mocap interpolators
Right hand mocap interpolators
Basic HumanoidAnimation Examples
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation
SourceForge version control
http://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation
Additional links for X3D Examples
http://www.web3d.org/x3d/content/examples/X3dResources.html#Basic
FooterChapterTitle 85
85
Additional Resources
back to Table of Contents
FooterChapterTitle 86
86
Additional Resources
Numerous...
X3D Resources
H-Anim working group page
H-Anim working group wiki
FooterChapterTitle 87
87
Chapter Summary
back to Table of Contents
FooterChapterTitle 88
Chapter Summary
H-Anim Humanoid Animation is an ISO Standard
co-evolving with (and supported by) X3D.
H-Anim is designed to be implementable by a
variety of different 3D graphics technologies.
H-Anim models have regular patterns of Joints
and Segments to create a movable skeleton.
Sites and Displacers support feature animation.
Current work includes improved support for skin,
face/hands/feet, motion capture (mocap)
conversions for full-fidelity animation, including
usability for medically accurate records.
FooterChapterTitle 89
89
Suggested exercises
Explore the examples both basic bodies and
also behavior switching
Animate a humanoid around a scene
Add visualization geometry to an empty
skeleton, examine the changes that occur
List possible use cases that might take
advantage of body/behavior libraries
Investigate current technology developments
in motion capture (mocap) and direct
scanning of human bodies
FooterChapterTitle 90
90
References
back to Table of Contents
Chapter00-GettingStarted 91
91
References 1
X3D: Extensible 3D Graphics for Web Authors
by Don Brutzman and Leonard Daly, Morgan
Kaufmann Publishers, April 2007, 468 pages.
Chapter 3, Grouping Nodes
http://x3dGraphics.com
http://x3dgraphics.com/examples/X3dForWebAuthors
X3D Resources
http://www.web3d.org/x3d/content/examples/X3dResources.html
Chapter00-GettingStarted 92
92
References 2
X3D-Edit Authoring Tool
https://savage.nps.edu/X3D-Edit
X3D Scene Authoring Hints
http://x3dgraphics.com/examples/X3dSceneAuthoringHints.html
X3D Graphics Specification
http://www.web3d.org/x3d/specifications
Also available as help pages within X3D-Edit
Chapter06-GeometryPointsLinesPolygons 93
93
References 3
Basic Examples Archive, HumanoidAnimation
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation
Basic Examples Archive, HumanoidAnimation
http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/
Chapter 12 - Environment Sensors and Sound 94
94
Don Brutzman
http://faculty.nps.edu/brutzman
Code USW/Br, Naval Postgraduate School
Monterey California 93943-5000 USA
1.831.656.2149 voice
Contact
Chapter05-AppearanceMaterialTextures 95
CGEMS, SIGGRAPH, Eurographics
The Computer Graphics Educational Materials
Source(CGEMS) site is designed for educators
to provide a source of refereed high-quality content
as a service to the Computer Graphics community
freely available, directly prepared for classroom use
http://cgems.inesc.pt
X3D for Web Authors
recognized by CGEMS!
Book materials: X3D-Edit tool, examples, slidesets
Received jury award for Best Submission 2008
CGEMS supported by SIGGRAPH, Eurographics
From the CGEMS home page:
http://cgems.inesc.pt
Welcome to CGEMS - Computer Graphics Educational Materials Source. The
CGEMS site is designed for educators to provide a source of refereed high-
quality content as a service to the Computer Graphics community as a whole.
Materials herein are freely available and directly prepared for your classroom.
List of all published modules:
http://cgems.inesc.pt/authors/ListModules.aspx
CGEMS Editorial Policy:
http://cgems.inesc.pt/EditorialPolicy.htm
Chapter 9 - Event Utilities Scripting 96
96
Creative Commons open-source license
http://creativecommons.org/licenses/by-nc-sa/3.0
Attribution-Noncommercial-Share Alike 3.0 Unported
You are free:
* to Share — to copy, distribute and transmit the work
* to Remix — to adapt the work
Under the following conditions:
* Attribution. You must attribute the work in the manner specified by the author or
licensor (but not in any way that suggests that they endorse you or your use of the
work).
Attribute this work: What does "Attribute this work" mean?
The page you came from contained embedded licensing metadata, including how
the creator wishes to be attributed for re-use. You can use the HTML here to cite the
work. Doing so will also include metadata on your page so that others can find the
original work as well.
* Noncommercial. You may not use this work for commercial purposes.
* Share Alike. If you alter, transform, or build upon this work, you may distribute the
resulting work only under the same or similar license to this one.
* For any reuse or distribution, you must make clear to others the license terms of
this work. The best way to do this is with a link to this web page.
* Any of the above conditions can be waived if you get permission from the
copyright holder.
* Nothing in this license impairs or restricts the author's moral rights.
Chapter 9 - Event Utilities Scripting 97
Open-source license
for X3D-Edit software and X3D example scenes
http://www.web3d.org/x3d/content/examples/license.html
Copyright (c) 1995-2013 held by the author(s). All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the names of the Naval Postgraduate School (NPS) Modeling Virtual Environments and Simulation
(MOVES) Institute nor the names of its contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License available at
http://www.web3d.org/x3d/content/examples/license.txt
http://www.web3d.org/x3d/content/examples/license.html
Good references on open source:
Andrew M. St. Laurent, Understanding Open Source and Free
Software Licensing, O'Reilly Publishing, Sebastopol California,
August 2004. http://oreilly.com/catalog/9780596005818/index.html
Herz, J. C., Mark Lucas, John Scott, Open Technology
Development: Roadmap Plan, Deputy Under Secretary of Defense
for Advanced Systems and Concepts, Washington DC, April 2006.
http://handle.dtic.mil/100.2/ADA450769
FooterChapterTitle 98
98
___ tooltips