top of page



Feb 25, 2019



Cloth (Contd.)

Feb 20, 2019

Robust Treatment of Collisions Contact and Friction for Cloth Animation implements a spring-mass cloth simulation really well. It applies impulses to cloth particles to handle collisions and for strain limiting. It avoids collisions at all costs by applying repulsive impulse when a particle is too close to the surface and by post-processing - updating impulses to guarantee no collision.

Noted that changing the texture in cloth simulation can make a huge difference in the perception of its success. 

Stable Penalty-based Model of Frictional Contacts between complex objects implements Coulomb friction. It has good collision response.

Data-Driven Elastic Models for Cloth: Modeling and Measurement looks convincing in creating wrinkles.

Controlling Physics-based Characters using Soft Contacts takes deformable bodies into account, which many other algorithms don't seem to do.

Perceptual Control Space for Garment Simulation took into account people's perceptions, which seems like an obvious thing to do.

Sensitive Couture for Interactive garment Modeling and Editing creates good-looking simulation. Artists can interactively edit 2D designs and see how they look.

Adaptive Anisotropic Remeshing for Cloth Simulation uses isotropic remeshing; creates nice wrinking effects. It emphasizes accuracy over speed.

Data-driven cloth simulation Near-Exhaustive Precomputation of Secondary Cloth Effects takes on the challenge of "you can't precompute everything". It took them multiple iterations to get they got. The results are subjective.

The yarn level calculation looks as satisfying as it is computationally expensive. Probably.


Simulation and Cloth

Feb 18, 2019

Euler's explicit integration method has computational costs, but is easy to implement, so can be a good starting point in this area. Large Steps in Cloth Simulation, as the name suggests, uses large time-steps. It results in faster performance compared to the explicit Euler or Runge-Kutta methods. All forces are treated as part of the implicit formulation regardless of size. It works in a stable solution even for extremely stiff systems. 

Nucleus: Towards a Unified Dynamics Solver for Computer Graphics presents a unified solver for cloth, rigidbodies, and fluids. It accounts for two-way interaction between object types. Internal deformations are handled through constraints instead of springs. It uses simplicial complex as its shape model. It has been used in Maya, so is tried and tested. The number of iterations results in more physically plausible solutions. Conflicting constraints are evaluated in different orders by interleaving them.

Physics-based Dynamics Solvers. Instead of specifying exact poses through key frames an animator specifies material properties of the object’s and external forces. Given this information the dynamics solver then computes snapshots of the states of all the objects over fixed time-steps.

Advanced Character Physics has been used in Hitman to create "lifelike death animations". It uses Verlet integration and does not require advanced math understanding. It is pretty much the same as implicit Euler, just that it doesn't store velocity information; only the current and previous positions stored at the end of each time-step. 

Implicit Multibody Penalty-based Distributed Contact is apopula approah in resolving contact in graphics. It has stability issues.

Sticky Finger Cloth Manipulation (project by Ken Toh) looked very satisfying. It used the Jakobsen approach.

Unified Particle Physics for Real-Time Applications is a parallel constraint-based solver built on Nucleus. Works with gases, liquids and deformable solids.


Mini Project 1 Presentations

Feb 13, 2019

 Traditional animation and Jacobian implementations seemed a popular choice. Here are my implementations.


Paper Presentations

Feb 11, 2019

ToonSynth: Example-Based Synthesis of Hand-Colored Cartoon Animations aims to reduce the labor of traditional animators. It separates traditional 2D drawings into bones,a signs animations to each bone, and deforms the skeleton and textures. It reminds me of The Puppet Tool in Adobe After Effects. Does not handle occlusion and foreshadowing so well. 


An Empirical Rig for Jaw Animation allows 6 degrees of freedom for greater accuracy. Motion capture data can be retargetted to subjects. The skulls shown in their demo video lacked flesh Wonder ho it would look with a real face model.

Language-driven synthesis of 3D scenes from scene databases. I have always wondered how 'AAA' games populate their massive environments. This might be how. This method builds data sets, giving attributes to objects and defining their relationships with their surroundings. The objects are spatially distributed in environments with respect to anchor objects. Wonder to what extent the tool can be used without manual intervention and how repitition may occur in randomly generated scenes.



Rigging and Skinning

Feb 6, 2019

Precision: Precomputing environment semantics for contact-rich character animation deals with the automation of character movement in dynamic environments. One use may be in games of the Rogue-like genre, where each level is procedurally generated. It can be a way for testing incremental changes in game environment without having to resort to playtesting each time.

Skinning can be a painful, time-consuming process. Linear Blend Skinning involves linearly blending vertices near a joint. Each vertex in the mesh is assigned more than one bone. Weights are assigned to joints. weighted average of the world space positions obtained from each bone. The big problem with this method is the candy-wrapper effect.

Dual Quaternion Blending deals with this problem. It interpolates using dual qauternions.

Maya has auto-rigging support for bipeds. Automatic Rigging and Animation of 3D Characters/Pinocchio Tool. works for non-bipeds to some extent. It has no support for material differentiation, and doesn't handle asymmetry in characters too well. 

Differential Blending breaks large rotations into smaller ones. It interpolates differential transformations between animation keyframes. It avoids the artifacts of blending disparate transformations. Differential Blending for Expressive Sketch-Based Posing also extends the idea of line-of-action concept based posing. Cages are an alternative to LBS and Dual  Quarternion Skinning. The short film, Hunger shown in class had a unique surreal vibe. Robust Iso-surface Tracking for Interactive Character Skinning can deal with extreme elastic character movements . It deals with contact parts between different surfaces. Maya makes use of Poe Space Deformations which uses a pose interpolation algorithm to drive corrective blend shapes.

Fast and Deep Deformation Approximations learns deformations from an existing rig by splitting the mesh into linear and non-linear portions to create efficient real-time rigs.


IK (Contd)/Motion Editing

Feb 4, 2019

"Natural motion animation through constraining and deconstraining at will" presents a useful technique with a pin-and-drag interface allowing animators to create whole body motions, and also for re-targetting animation.

"Parallel Inverse Kinematics for Multithreaded Architectures"  makes use of multiple cores to create scalable animation for large joint chains like that of an octopus arm/non-rigged chains is of particular interest to me.

"FABRIK: Fast, iterative solver" provides an alternative approach to computing joint angles. Instead, it applies novel heuristics. It converges in a few iterations; can be used for longer chains; constraints can be incorporated.

The Line of Action Tool allows artists to pose characters by drawing lines in 3D space. This seems powerful as a concept art tool and is analogous to how 2D artists start off defining the emotion of their characters with a line of action. Same goes for Gesture3D, that allows posing characters by drawing silhouettes. It takes care of poses with occlusion and foreshadowing too!


Inverse Kinematics

Jan 28, 2019

I have some experience with IK handles in Maya. It was good to have a peak into the math involved in getting those accurate leg and arm movements. I struggled with some derivations, but things became clearer after going back and looking at reference slides and links. It would be cool to have a dynamic solver that I could use in a game engine and incorporate into my games for real-time foot motion.


Motion Capture Demo

Jan 23, 2019

Motion Capture can sometimes feel like cheating. It bypasses the artistic process. Having said that, movies like Avatar and all Andy Serkis movies are a testament to its power in creating fully realized performances for fantastical characters.

The demo cleared some of my doubts about the motion capture pipeline from how the actual capturing is done with markers, some of the challenges involved in cleaning up data, filling in missing marker data, how facial data is recorded, and difficulties of capturing things like a bouncing ball, and how the data can be manipulated to fit different characters.


Introduction to Animation

Jan 16, 2019

I have had a little experience with 3D animation at the ETC, mostly keyframe based. I am looking to explore procedural based animation to achieve more dynamic results in real-time game scenarios. 

I was intrigued by questions like "how to get players to look like they have intent?" and "how to vary the style of a performance?" with respect to animation.


Course Overview

Jan 14, 2019

I signed up for this class as someone looking to take on the role of a Technical Artist/Technical Director in the gaming/film industry. I am particularly interested in character motion. The meaning and specifications of that role vary vastly in the industry, however. The introductory class provided an exciting overview of the breadth of things  possible in the filed. The course structure is appealing as it would give me hands-on experience with the tenets of animation and simulation, and the freedom to choose from a range of projects. Moreover the paper presentations would familiarize me with cutting-edge research in the field. 

It has been a while since I completed my undergrad in Computer Science Engineering, so a little rusty on some of the math.

bottom of page