By: Benjamin Arai & Conley Read CS231 Project, Spring 2005 University of California, Riverside Professor: Victor Zordan Modeling the Human Spine
Abstract Related works to spine modeling Anatomical Spine Initial Pose User Interface User input to spine position Animation of human spine
Motivation Efficiency vs. Accuracy Proper modeling of the human body Towards single person animation modeling Current approaches and lack of expression
Anatomical Spine Spine –Cervical region (C1 - C7) Created from load from the weight of the head (20 -40) degrees –Thoracic region (T1 – T12) Kyphosis Curve (< 40 – 50) degrees –Lumbar region (L1 – L5) Weight Bearing –Spine makes an “S”-like curve
Anatomical Spine Vertebra –Born with 33 vertebra –9 fused during childhood to create the sacrum and coccygeal bones Intervertebral Discs –Round in shape –Elastic type structure
Implementation Modeling the spine in 3D Initial Spine pose Efficiency User Interface Translation from input to positions Computing (x, y, z) components Computing flexion Final pose Animation
Model taken from the University of Princeton’s 3D Model Search Engine Mesh components imported to OpenGL Modeling portion used only vertebra and not intervertebral discs Modeling the Human Spine in 3D
Initial Spine Pose Per Vertebra Mapping –Individual vertebra require user parameters defined –Benefits include the ability to define expressive poses –Method is time consuming Abstract Spine Mapping –Simple control structure –May not be able to express certain poses given limited control structure Unification of Direct & Abstract Mapping –Simplifies control structure –Maps inputs to larger quantized regions for one-to- many mapping –Mimics human interaction with spine
Mapping User Input to the Spine,, Each region of the spine contains a certain coefficient (C, T, L) Coefficients are applied to each of the vertebra Individual vertebra contain a combination of each curve coefficient
Individual participation values are summed to created a weighted sum Each vertebra contains a unique summed weight according to its location Vertebra Weighting,,
Distribution of Weights Left: Weights computed from the spine regions for each of the vertebra Right: Participation rates computed for each of the vertebra and there respective regions
User Interface The interface is based on a small number of input parameters: –Input Boxes: Coefficients: C, T, L –Slider: Controls the rotation: theta –Slider: Directional weights for each of the regions x and z Cervical x and z Thoracic x and z Lumbar
Example of User Interface All sliders default to zero for movement in both the negative and positive directions Default coefficient (C, T, L) values represent representative constraints for a average human spine
X-Y Component –y = cos ( -angle_x ) * intervertebral_distance –x = sin ( -angle_x ) * intervertebral_distance Z-Y Component –y = cos ( -angle_z ) * intervertebral_distance –z = sin ( -angle_z ) * intervertebral_distance We calculate each vertebra location in its own coordinate space Computing (x,y,z) Components
Computing the Flexion Pitch angle_x = W x * w i * π Roll angle_z = W z * w i * π Yaw angle_y = w i * Θ
Animation
Application Demo
Conley Read is a graduate student at the University of California, Riverside. His current interests are in data mining, software verification and user interfaces. Read received his BS in Computer Science from the University of California, Riverside in Fall Benjamin Arai is a graduate student at the University of California, Riverside. His current research is in distributed and peer- to-peer systems. Arai received his BS in Computer Science from the University of California, Riverside in Spring Questions