Valentin Roussellet

Nadine Abu Rumman

Florian Canezin

Nicolas Mellado

Ladislav Kavan

Loïc Barthe

Dynamic implicit muscles for character skinning

Most current methods for character skinning can be categorized into 1) geometric techniques, which are fast and easy to use but often lack physical realism, 2) data-driven approaches, which require a large set of examples that are tedious to edit, and 3) physics-based methods, which are highly realistic but slow and difficult to use. Recently introduced geometric Implicit Skinning methods can solve contact interactions and skin elasticity with results comparable to physics-based simulation in real-time. In this paper we introduce an animation method that adds anatomical plausibility while benefiting from the advantages of Implicit Skinning. We propose an efficient way to model muscle primitives with implicit surfaces. Volumetric extrusions of individual muscles are attached to muscle center lines simulated with a fast, low-dimensional physics-based approach (Position Based Dynamics of one-dimensional line segments). This combination of physics-based simulation with implicit modeling allows us to elegantly resolve muscle-muscle and muscle-bone collisions and add dynamic effects such as flesh jiggling while guaranteeing volume preservation (which is a property of real biological muscles) and producing visually plausible skin-skin contact behavior. Our method runs at interactive frame-rates and features intuitive modeling parameters which allow animators to quickly explore a variety of designs and physics-based effects.

Introduction

Character animation is a central component of animated digital media such as films, computer games, and virtual reality. However, the production of compelling and appealing deformations of a virtual character to imbue it with life remains very challenging due to the complexity of the human (or humanoid) body, which is composed of bones, muscles and soft tissues. Specific challenges include run-time performance and parameter tuning. Ideally, the resulting deformation models should run interactively on commodity machines and rely only on intuitive parameters with predictable outcomes on the result. While providing basic skeletal articulation is mandatory to produce animated characters, taking into account the motion of the underlying anatomy significantly increases the realism of the final animation. Existing methods simulating the behavior of all anatomic tissues exist, but they require extensive computational resources, limiting their use in interactive applications.

In this paper, we explore the idea of adding muscle deformations to skeleton-based geometric skinning approaches. We focus specifically on modelling the muscle's shape deformation when they contract, expand and activate under effort. Unlike fat tissues, muscles tend to stay very tense and stiff. We model their elasticity with a dynamic simulation.

Three main families of techniques have been considered to follow this direction by extending Linear Blend Skinning (LBS) [START_REF] Magnenat-Thalmann | Joint-Dependent Local Deformations for Hand Animation and Object Grasping[END_REF] or Dual Quaternion Skinning (DQS) [START_REF] Kavan | Skinning with Dual Quaternions[END_REF]. The first are pose-based approaches, based on modeling and animation tools, allowing users to edit the character skin in user-specified key poses [START_REF] Lewis | Pose space deformation: A unified approach to shape interpolation and skeleton-driven deformation[END_REF]. Despite being very general and enabling users to model arbitrary skin deformations, manual sculpting is very time-consuming and tedious, especially if similar edits need to be repeated multiple times. A second family of methods uses muscle primitives which are positioned inside the character body and act as deformers generating additional skin deformations, usually designed to preserve volume. Geometric modeling of muscles provides interactive parameter tuning [START_REF] Wilhelms | Anatomically-based modeling[END_REF]. However, deformation parameters are often tedious to set and the resulting skinning solution is subject to the well-known Linear Blend Skinning (LBS) and Dual Quaternion Skinning (DQS) limitations, i.e., no skin-contact deformation and volume loss or gain near joints. The third family is represented by data-driven methods, which learn a set of mesh deformers from captured data [START_REF] Mohr | Building efficient, accurate character skins from examples[END_REF][START_REF] Wang | Real-time enveloping with rotational regression[END_REF]. However, the produced deformations are limited by the extent of the training set and the difficulty to artistically control the results.

Our contribution is an approach that combines the advantages of muscle primitive deformers with an interactive geometric skinning technique producing high-quality skin deformation including contact handling (Figure 1). We rely on Implicit Skinning [START_REF] Vaillant | Implicit Skinning: Real-time Skin Deformation with Contact Modeling[END_REF][START_REF] Vaillant | Robust Isosurface Tracking for Interactive Character Skinning[END_REF] to resolve self-intersections and represent skin elasticity. However, unlike Implicit Skinning, in this paper we also consider several important phenomena contributing to muscle and skin shape, such as muscle-muscle and muscle-bone collisions and dynamic effects induced by the skeletal motion.

Our technical contributions are two-fold: first, we introduce new muscle primitives mimicking the shape and deformation of real muscles (including bulging, deflation, and activation), ranging from relatively simple ones such as the biceps to more complicated pectoral muscles. During animation, our muscles maintain nearly constant volume. We define our muscles as curve-sweep surfaces, with the dynamics of the curves guided by Position Based Dynamics [START_REF] Müller | Position based dynamics[END_REF]. The use of 3D scalar fields for our muscle primitives enables the integration of these muscles in the Implicit Skinning framework, which provides fast skin-skin contact modeling. The implicit representation of muscles is also perfectly suited for collision response, allowing us to efficiently resolve muscle-bone and muscle-muscle collisions.

Secondly, we show how to adequately integrate our muscle primitives in the Implicit Skinning framework so that the final skinning solution naturally benefits from its skin contact resolution.

In our implementation, muscle shapes and dynamic behavior are controlled by a small set of intuitive parameters, avoiding the need for tedious sculpting of corrective shapes (as in posebased methods), as well as expensive computational cost and complicated parameter tuning of physical simulation techniques. During the rigging phase, setting the skinning parameters can be done interactively and the total computation time of our method, given a character including more than fifty animated muscles, is less than a second per frame on a standard CPU.

Related work

The production of plausible skin-muscle deformations from skeletal motion is a long standing problem in computer animation and several types of approaches emerged in previous work.

Capture-based methods. Data-driven methods [START_REF] Mukai | Example-Based Skinning Animation[END_REF] can be divided into 1) methods where artists directly craft the data such as target skin or muscle shapes and 2) methods based on capturing data of real subjects, e.g., using 3D scanning or motion capture. Seminal work in the latter category introduced statistical shape models explaining both body and pose-based variations [START_REF] Allen | Articulated body deformation from range scan data[END_REF][START_REF] Anguelov | Scape: Shape completion and animation of people[END_REF][START_REF] Allen | Learning a correlated model of identity and pose-dependent body shape variation for real-time synthesis[END_REF]. Subsequent work focused on capturing and modeling flesh and muscle motion using traditional motion capture systems [START_REF] Park | Capturing and animating skin deformation in human motion[END_REF][START_REF] Park | Data-driven modeling of skin and muscle deformation[END_REF] or multi-camera setups with dots painted on the skin [START_REF] Neumann | Capture and statistical modeling of arm-muscle deformations[END_REF]. Loper et al. [START_REF] Loper | Mosh: Motion and shape capture from sparse markers[END_REF] showed how realistic pose and body shapes can be extracted from standard motion capture markers by using a data-driven human body model, and Tsoli et al. [START_REF] Tsoli | Breathing life into shape: capturing, modeling and animating 3d human breathing[END_REF] focused on capture-based modeling of breathing. Fast models for real-time applications rely on combining linear blend shapes [START_REF] Loper | SMPL: A skinned multi-person linear model[END_REF], rotation regression [START_REF] Wang | Real-time enveloping with rotational regression[END_REF] or helper-bone rigs that have proven useful for delivering effects such as muscle bulging [START_REF] Mohr | Building efficient, accurate character skins from examples[END_REF][START_REF] Mukai | Efficient dynamic skinning with low-rank helper bone controllers[END_REF]. Another exciting strand of current research is learning dynamics from data, either using statistical methods [START_REF] Pons-Moll | Dyna: A model of dynamic human shape in motion[END_REF] or by combining statistical methods with physics-based simulation [START_REF] Kim | Data-driven physics for human soft tissue animation[END_REF].The most recent work [START_REF] Kim | Data-driven physics for human soft tissue animation[END_REF] is starting to show promise of being able to generalize to imaginary artist-designed characters. Nonetheless, capture-based methods are generally limited by the availability of real-world human subjects.

Physics-based methods. The advantages of biomechanical modeling of the human body have been recognized early on in computer graphics [START_REF] Schneider | In vitro biaxial stress-strain response of human skin[END_REF][START_REF] Girard | Computational modeling for the computer animation of legged figures[END_REF][START_REF] Chadwick | Layered construction for deformable animated characters[END_REF][START_REF] Zajac | Muscle and tendon: properties, models, scaling, and application to biomechanics and motor control[END_REF][START_REF] Chen | Pump it up: Computer animation of a biomechanically based model of muscle using the finite element method[END_REF]. More recently, realistic Finite Element-based simulation of flesh has been explored [START_REF] Teran | Finite volume methods for the simulation of skeletal muscle[END_REF][START_REF] Teran | Creating and simulating skeletal muscle from the visible human data set[END_REF] and extended into a comprehensive biomechanical upper-body model [START_REF] Lee | Comprehensive biomechanical modeling and simulation of the upper body[END_REF]. Biomechanical models are usually more focused on accurate computation of the force exerted by muscles and less on their mass or shape [START_REF] Pai | Fast physically based musculoskeletal simulation[END_REF][START_REF] Pai | Muscle mass in musculoskeletal models[END_REF]. These models have been used to represent the underlying tendons and muscles of an anatomy-based model to create realistic skin deformation of the hand [START_REF] Sueda | Musculotendon simulation for hand animation[END_REF][START_REF] Sueda | Large-scale dynamic simulation of highly constrained strands[END_REF]. Advanced numerical simulation methods have been developed for production environments [START_REF] Mcadams | Efficient elasticity for character skinning with contact and collisions[END_REF][START_REF] Patterson | Simulation of complex nonlinear elastic bodies using lattice deformers[END_REF]. Fan et al. [START_REF] Fan | Active volumetric musculoskeletal systems[END_REF] explored an Eulerian-on-Lagrangian approach to simulate musculoskeletal systems, extended to tendons by Sachdeva et al. [START_REF] Sachdeva | Biomechanical simulation and control of hands and tendinous systems[END_REF].

An important advantage of physics-based simulation is the automatic handling of skin contact, e.g., when bending the elbow, which is tedious to model accurately with data-driven methods. The main concern of physics-based methods is speed, which motivated the development of fast physics-based methods capable of handling collisions [START_REF] Gao | Steklov-poincaré skinning[END_REF]. More recent works explore the use of physics-based simulation in modeling [START_REF] Saito | Computational bodybuilding: Anatomically-based modeling of human bodies[END_REF] and the combination of physics-based and data-driven methods [START_REF] Kadleček | Reconstructing personalized anatomical models for physics-based body animation[END_REF][START_REF] Kim | Data-driven physics for human soft tissue animation[END_REF].

Geometric methods. The need for producing animations of both realistic and stylized characters led to the development of various skinning methods providing interactive and intuitive user control. These methods usually start with geometric techniques to produce pose-based articulation [START_REF] Magnenat-Thalmann | Joint-Dependent Local Deformations for Hand Animation and Object Grasping[END_REF][START_REF] Mohr | Direct manipulation of interactive character skins[END_REF][START_REF] Merry | Animation space: A truly linear framework for character animation[END_REF][START_REF] Forstmann | Deformation styles for spline-based skeletal animation[END_REF][START_REF] Kavan | Geometric skinning with approximate dual quaternion blending[END_REF][START_REF] Jacobson | Bounded biharmonic weights for real-time deformation[END_REF][START_REF] Jacobson | Stretchable and twistable bones for skeletal shape deformation[END_REF][START_REF] Kavan | Elasticity-inspired deformers for character articulation[END_REF][START_REF] Le | Real-time skeletal skinning with optimized centers of rotation[END_REF], which can be subsequently enriched with artist-provided "correctives" in a set of poses to produce flesh-like effects such as muscle bulging [START_REF] Lewis | Pose space deformation: A unified approach to shape interpolation and skeleton-driven deformation[END_REF][START_REF] Sloan | Shape by example[END_REF][START_REF] Kry | Eigenskin: Real time large deformation character skinning in hardware[END_REF]. Finite Element Methods with model reduction in the rig-space [START_REF] Hahn | Rig-space physics[END_REF] or in the pose-space domain [START_REF] Xu | Pose-space subspace dynamics[END_REF] may be used to help the artist. However, creating corrective shapes to achieve the desired anatomical effects remains very tedious [START_REF] Lee | Practical experiences with pose space deformation[END_REF]. Although these methods are included in several commercial simulation packages such as Maya Muscle [START_REF] Palamar | Mastering Autodesk Maya[END_REF] and Weta's Tissue System [START_REF] Digital | FEM horse simulation[END_REF], setting up musculoskeletal models with adequate physical properties is time-consuming even for experienced artists.

To avoid the manual modeling of muscle deformations in key poses, muscles may be represented by geometric primitives using parametric ellipses or more elaborated sweeping objects [START_REF] Wilhelms | Anatomically-based modeling[END_REF][START_REF] Scheepers | Anatomy-based modeling of the human musculature[END_REF]. Muscles are deformed at constant volume [START_REF] Ramos | A muscle model for enhanced character skinning[END_REF] and muscle dynamics can be added by representing the muscle sweeping axis with a mass-spring system [START_REF] Lee | Simplified muscle dynamics for appealing real-time skin deformation[END_REF]. Muscle transformations are then weighted over the mesh representing the skin. In a similar spirit, Hyun et al. [START_REF] Hyun | Sweep-based human deformation[END_REF] represented the character body with radial sections that are deformed by the muscle primitives. A contact plane is also introduced to resolve self-collisions at simple joints, i.e., elbows and knees. Finally, Leclercq et al. [START_REF] Leclercq | Mixing triangle meshes and implicit surfaces in character animation[END_REF] proposed to represent the muscles as elliptic scalar fields. Even though fast to compute, these approaches do not resolve muscle-bone collisions that are required for realistic muscle deformation at complicated joints (e.g. the shoulder). In general, they also do not handle skin self-collisions and skin elasticity.

Technical background

Let us briefly summarize the basic concepts of Implicit Skinning [START_REF] Vaillant | Robust Isosurface Tracking for Interactive Character Skinning[END_REF] and introduce the corresponding notation. The input is an animated skeleton with the mesh representing the animated character equipped with skinning weights and segmented according to skeletal bones. This segmentation associates a part defined by a set of mesh vertices to each bone, each of them representing an articulated body part( finger phalanx, upper and lower arm, thigh, leg, torso, etc.). In Implicit Skinning, each part is approximated with an isosurface in a 3D scalar field with compact support f j : R 3 → R. Vaillant et al. [START_REF] Vaillant | Implicit Skinning: Real-time Skin Deformation with Contact Modeling[END_REF] use Hermite-Radial-Basis-Functions (HRBF) [START_REF] Macêdo | Hermite radial basis functions implicits[END_REF] to define these scalar fields f j for their natural ability to approximate positions and normals with smooth scalar fields. Following the standard convention used in compact support implicit surface modeling [START_REF] Barthe | Controllable binary CSG operator for "soft objects[END_REF], the approximating isosurface of f j is the 0.5-isosurface.

By composing this set of by-part scalar fields f j , a single scalar field f representing the entire character skin is then defined [START_REF] Gourmel | A Gradient-based Implicit Blend[END_REF][START_REF] Angles | Sketchbased implicit blending[END_REF]. Specific compositions achieve desirable deformations of the 0.5-isosurface of f at joints, and include a contact surface where the skin self-collides during its animation. At this step, each mesh vertex stores its initial field value in f . At run-time, the mesh is incrementally animated (i.e., each animation frame provides the initial pose for the computation of the following one) via geometric skinning and, simultaneously, the field function f by applying rigid transformations to the underlying field functions f j . The mesh vertices then march following the gradient of f with interleaved tangential relaxations minimizing a modified As-Rigid-As-Possible (ARAP) energy [START_REF] Sorkine | As-rigid-as-possible surface modeling[END_REF] until they reach their initial field value.

Overview

In this paper, we present a new type of muscle primitives and a way to embed them into the Implicit Skinning framework [START_REF] Vaillant | Robust Isosurface Tracking for Interactive Character Skinning[END_REF].

The key idea of Implicit Skinning is to produce the skin deformation on the 0.5-isosurface of f (representing the character) and let the mesh track these deformations while maintaining its elasticity. In order to insert muscle dynamics into this framework, we propose to modify the definition of the scalar fields f j attached to the bones in order to include muscle deformations. Doing so, the field f (and thus the mesh after tracking) a) b) c) also includes these deformations and self-contact surfaces by composition of scalar fields f j . We thus define muscle shapes and dynamics using new field functions f M (Sections 5 and 6), and insert them as additional primitives in the definition of fields f j (Section 7). Muscle primitives are parameterized as follows (see Figure 3):

• two extremity points: the origin m 0 and the insertion m 1 , attached relatively to the bones of the animation skeleton and moving kinematically (Section 5.1),

• a set of user parameters to control the muscle geometry, e.g. longitudinal/radial profiles and volume (Section 5.2),

• a rest shape, an activated shape, and a shape interpolation scheme at constant volume to smooth the transition between these two muscle states (Figure 2 and Section 5.2),

• a set of particles to simulate elastic deformation of the muscle, resolve muscle-muscle and muscle-bone collisions and add dynamics effects using Position Based Dynamics (Section 6).

p i m 0 m 1 q C n m 0 n m 1 f M = 0 θ(q) q cross-sectional view: n i C (s(q)) R(q) Figure 3
. Schematic view of our muscle primitive with notations.

Muscle Primitive

The range of shapes that our muscle model produces relies on its adequation to the muscle shapes provided in an anatomic human model [START_REF]Anatomical digital model[END_REF], the set of muscle shapes and deformations currently used in the computer graphics literature [START_REF] Lee | Modeling and simulation of skeletal muscle for computer graphics: A survey[END_REF][START_REF] Fan | Active volumetric musculoskeletal systems[END_REF], and the capacity of the representation to satisfy our technical (collisions, insertion in the Implicit Skinning) and performance requirements.

We propose a formulation producing fusiform muscles defined by swept primitives with a minimal number of user parameters: two parameters for the longitudinal and one for the radial profile, with a scaling parameter. Our model is able to change from rest to activation shape at constant volume. More complex muscles are represented by combining multiple primitives, as explained in Section 5.3. We present the details of our muscle model in this section and discuss the user parameters in Sections 8.3 and 8.4.

Model

We initially define a muscle M as a scalar field f M : R 3 → R constructed by sweeping a profile function R along a central polyline C (see Figure 3 for notations). We design f M as a smooth distance field with 0-isovalues describing the muscle boundaries.

The evaluation of f M at a point q consists of three steps detailed below: construction of the central polyline C , projection of q on C to compute the distance d(q, C ), and evaluation of the sweeping profile function R(q). The value of the scalar field at any point q is then given by

f M (q) = d(q, C ) -R(q). (1)
Central polyline construction.. The two endpoints m 0 and m 1 of the muscle primitive are each attached to an animation bone, so they move kinematically during the animation. The line segment [m 0 , m 1 ] is divided into N parts with intermediate control points p i . The resulting polyline C is parameterized by s ∈ [0, 1], and we denote as s(q) the curvilinear parameter of the projection of q on C . In order to model muscles with elliptic profiles, the polyline is oriented at each endpoint by given normal vectors n m 0 and n m 1 . We associate to each control point of the polyline p i a normal vector n i , defined as follows:

1. we compute an interpolated normal vector by spherical linear interpolation of the normal vectors of the two endpoints, 2. we project this interpolated vector on the plane spanning p i-1 , p i and p i+1 to account for the local twist of the polyline. If these three points are aligned, we interpolate the normals of the two closest polyline control points for which they are defined.

The polyline normal at s(q) is then computed by spherical linear interpolation of the control point normals n i , n i+1 of the polyline segment it belongs to.

Projection operator and distance to polyline.. The projection of a query point q on C is a critical step of our approach, as it shapes the properties (e.g. continuity) of the distance function Note the discontinuities appearing when using standard orthogonal projection.

Orthogonal projection Our projection operator

d, and thus the primitive scalar field (see Eq. 1). The distance function d is defined as follows:

d(q, C ) = q -proj(q, C ) 2 .
As shown in Figure 4 (left), projecting the query point on the closest segment yields discontinuities in the interior regions of the dihedral angles formed by the segments of the polyline. Similar problems arise also with interpolation on triangle meshes [START_REF] Kobbelt | Multiresolution hierarchies on unstructured triangle meshes[END_REF][START_REF] Panozzo | Weighted averages on surfaces[END_REF].

p i p i+1 p i+2 h i h i+1 λ i+1 λ i q
We fix this problem by reparameterizing the projection on the areas where a point q projects on the interior of two consecutive segments using the cotangent of the angles λ i and λ i+1 formed between the point and the two segments, as illustrated in the right inset. The projection algorithm is detailed in algorithm 1. As shown in Figure 4 (right), our operator does not exhibit discontinuities and allows projection onto the polyline vertices even in the interior regions of the dihedral angles formed by the segments of the polyline.

Algorithm 1 Reparameterization of the polyline projection

for all segments [p i , p i+1 ] of C do compute h i , the nearest point from q to the segment and s i its parameter end for Let h be the nearest point from q among all h i , and s h its parameter.

if ∃i such as ((h = h i or h = h i+1 ) and (none of h i , h i+1 belongs to {p 0 ..p N } )) then s(q) = s i cot λ i +s i+1 cot λ i+1 cot λ i +cot λ i+1 else s(q) = s h end if return C (s(q))
Sweep surface. The sweep surface is defined by "sweeping" a profile function R(q) along C . In order to describe the overall shape of fusiform muscles, we parametrize R(q) w.r.t.

• s(q), the curvilinear parameter,

• θ(q), the angle between the polyline normal at s(q) and the vector qproj(q, C ) (Figure 3).

We specify R to be separable to enable easy evaluation of the muscle's volume, i.e.,

R(q) = w Φ (s (q)) r (θ (q)) , (2)
where Φ(s) represents the distribution of mass along the axis, r represents the polar profile of the muscle and w is a width scale factor. A sufficient condition for the muscle volume to remain constant is ensuring that 1 0 (Φ(s)) 2 ds and 2π 0 (r(θ)) 2 dθ are constants, as will be shown in the next section. We define our functions Φ and r so that these integrals both equal 1.

High level shape parameters

The shape of our muscle primitive is defined by the muscle central polyline C , the scale factor w, and the two sweeping functions r and Φ. In this section we discuss how these parameters offer control over 1) the muscle volume, 2) the longitudinal and radial shape profiles, 3) rest/activation muscle shapes. Parameters controlling the muscle shape are detailed in Section 8.4.

Volume. When C is a straight line we can evaluate the volume of the muscle in cylindrical coordinates as

V = 1 s=0 2π θ=0 wΦ(s)r(θ) ρ=0 ρdρ dθ lds = πw 2 l, (3)
where l is the length of the polyline C (see the derivation details in Appendix A). When the muscle length l changes during the animation, we simply recompute the scale w = √ V/πl in Equation 2. This makes the muscle inflate when it contracts and shrink when it is stretched, with constant volume (see Figure 2, top row). Our volume computation is global and performed on a straight polyline C , it thus becomes approximate when C is curved. In practice the volume loss due to the polyline curvature is indiscernible (around 1-3% in our experiments, see Section 8.2). Note that local computations could be considered for a more accurate volume conservation, but this would involve significant computations for a very subtle effect on our muscle parameters adjustment. Shape longitudinal profile. We define Φ, the distribution of mass along the muscle axis, as

Φ(s) = ϕ(α, β; s),
where α, β are scalar parameters controlling the shape of the profile. Our definition of ϕ is inspired by the Euler beta function, as it provides geometric profiles similar to muscle shapes. According to Equation 3, volume conservation is guaranteed when the integral of the square of our base function is constant, regardless of α and β. We thus define

ϕ(α, β; s) = ϕ 0 (α, β; s) ϕ 0 (α, β; s) 2
where ϕ 0 is defined for s ∈ [0, 1] as

ϕ 0 (α, β; s) = s α-1 (1 -s) β-1 .
e = 0 e = 0.5 e = 0.7 e = 0.9 As such, ϕ(α, β; s) can be explicitly written as

ϕ(α, β; s) = s α-1 (1 -s) β-1 1 0 y 2(α-1) (1 -y) 2(β-1) dy . (4)
In principle, α and β can be any positive numbers. For muscle profiles we consider only integer values for efficiency of evaluation. We additionally impose α > 1 and β > 1 to yield a function where ϕ(0) = ϕ(1) = 0, and α ≤ 9 and β ≤ 9, larger values leading to very sharp profiles that do not correspond to realistic muscle shapes. Note that the denominator of Equation 4is independent of s and can be pre-computed for all allowed values of α and β using the Euler beta function.

The ratio α/β controls the asymmetry of the shape (with the distribution being symmetric for α = β) while the individual values of α and β control the sharpness of the function's rise on each side, as illustrated by Figure A.16 in the Appendix.

Shape radial profile. In our muscle representation, the radial profile is elliptic and controllable by a single parameter, the ellipse eccentricity e as illustrated in Figure 5. Formally, we set r to be an ellipse of semi-axis lengths u and v:

r(θ) = uv u 2 cos 2 θ + v 2 sin 2 θ . ( 5
)
The ellipse parameters u and v are directly computed from the eccentricity e so that the product uv = 1 (i.e., the area of the ellipse is always equal to that of a circle of radius 1):

u = 4 (1 -e 2 ) v = 1/u.
Rest and activation shapes. When modeling a muscle, there are two shapes to control the muscle state during the animation: the rest shape corresponding to a relaxed state of the muscle fibers and the activation shape corresponding to an increase of tension in the muscle fibers. As illustrated in Figures 2(a) and 2(b) changing of state does not require a change in muscle length, it is an abrupt modification of muscle shape (i.e longitudinal and radial profiles) that can be smoothed over a small sequence of frames by an interpolation at constant volume.

We propose to model this change of muscle state by interpolating between the two sets of shape parameters (α 0 , β 0 , e 0 ) and (α 1 , β 1 , e 1 ). We use a ∈ [0, 1] to denote the interpolation parameter. By convention, the rest shape of the muscle corresponds to a = 0, and full activation to a = 1. While parameters e 0 and e 1 are linearly interpolated, we need to re-normalize the interpolation of the pairs α 0 , β 0 and α 1 , β 1 to preserve volume. This is done as follows: where

Φ(s) = (1 -a)ϕ(α 0 , β 0 , s) + aϕ(α 1 , β 1 , s) √ F(a) ,
F(a) = 1 0 ((1 -a)ϕ(α 0 , β 0 ; s) + aϕ(α 1 , β 1 ; s)) 2 ds.
While the value of F might appear to be expensive to compute for each a, it can be formulated as

F(a) = (1 -a) 2 + a 2 + 2a(1 -a) K(α 0 , α 1 , β 0 , β 1 ),
where K is a constant term which can be expressed in terms of the Euler beta function B

K(α 0 , α 1 , β 0 , β 1 ) = B(α 0 + α 1 -1, β 0 + β 1 -1) B(2α 0 -1, 2β 0 -1)B(2α 1 -1, 2β 1 -1)
(see derivation in Appendix B). In practice, K can be precomputed and tabulated in preprocessing, resulting in fast runtime evaluations. Figure 6 shows an example family of functions Φ at various levels of interpolation a .

Extension to non-fusiform muscles

This model produces fusiform muscles such as biceps brachii of the upper limb or quadriceps from the lower limb. To model more complex muscles such as the pectoralis major, we follow a method similar to the one proposed by Scheepers et al. [START_REF] Scheepers | Anatomy-based modeling of the human musculature[END_REF] and Murai et al. [START_REF] Murai | Dynamic Skin Deformation Simulation Using Musculoskeletal Model and Soft Tissue Dynamics[END_REF]. We represent these muscles by instancing several fusiform shapes, each integrating a set of muscle fibers. Figure 7 shows an example of pectoral and shoulder muscles. Depending on the desired deformation effects, muscle collisions can be ignored (Figure 7 between green muscles) or enabled as explained in Section 6.3 (Figure 7 between blue muscles).

Figure 7. Pectoral (green) and shoulder (blue) muscles represented by sets of fusiform fibers. In this case, shoulder muscles collide against each other, while the pectorals are allowed to overlap to better approximate the desired shape.

Dynamic Muscle Deformations

In Section 5 we have introduced a purely kinematic model for muscles, which deforms at constant volume and whose shape is controlled by high level user parameters. In this section, we show how we extend this model (Section 6.1) to deform the muscles according to their reaction to the animation motion, e.g. muscle jiggling (Section 6.2), and their surroundings: other muscles, bones, or skin (Section 6.3).

Deformation modeling

To imbue muscles with dynamic behavior, we deform their shape by letting the control points p i of the central polyline C be driven by physics-based simulation. While the two extremities m 0 and m 1 of C still follow the kinematics of their skeleton, each internal point p i is represented by a particle animated by Position Based Dynamics (PBD) [START_REF] Müller | Position based dynamics[END_REF]. Thus the muscle elasticity and collisions are expressed as constraints solved with the standard PBD Gauss-Seidel solver. This solver iterates on each constraint sequentially yielding a correction applied to the particle's position (see Figure 8). A strong benefit of our approach is that muscles are defined by 3D scalar fields, which yields very efficient distance queries and allows to interactively resolve collisions (Section 6.3), even for a large number of constraints and particles.

Muscle elasticity and animation-induced motion

The mass of the whole muscle is set by computing its initial volume multiplied by the average density of muscle tissues ρ M = 1.06 g.cm -3 [START_REF] Urbanchek | Specific force deficit in skeletal muscles of old rats is partially explained by the existence of denervated muscle fibers[END_REF]. Each moving particle of the muscle's axis is assigned a fraction of this mass proportionally to the width of the muscle at their initial position on the axis.

The axis particles are tied together by elastic distance constraints which act as springs in the PBD framework. Each of these constraints is parameterized by its rest length l 0 and stiffness k. The rest length is set as l 0 =2% of the initial distance between the central particles, to provide tension to the muscle axis. A rest length of l 0 =100% is assigned to the first 10 % of the length of the muscle at each extremity to represent the more rigid tendons linking the muscle to the bones. The stiffness values k controls the strength of the muscle tone. As discussed in Section 8, in our setup a value of k ≈ 0.1 generates a muscle following the motion of its attachment bones with lots of inertial effects, while a value of k ≈ 0.7 produces a very tense muscle (almost no inertial effects).

Collision resolution

In our body, the shape of muscles is constrained by the presence of rigid bones, other muscles, soft tissues, and skin. To generate more plausible muscle deformations and to better capture the effect of volume preservation, it helps to resolve collisions among the individual organs. The use of scalar fields in conjunction with PBD provides an efficient framework for collision resolution.

Muscle elasticity Muscle-Bone Muscle-Muscle

Muscle-Skin Muscle-bone collision. We resolve muscle-bone collisions by constraining the particles to stay above a certain radius from the bones. To do so, each particle behaves as a sphere which collides against the bone surface. The collision radius of the particles p i is set as wΦ(p i ), that approximates the average radius of the muscle's surface. Since the muscle's shape evolves during the animation, this radius has to be updated every frame before the PBD solver is executed. The distance between particles and bones is computed efficiently using precomputed distance fields associated with bone shapes (as illustrated in Figure 2) or analytically computing the distance to cylindrical bone proxies (Figure 1).

Muscle-muscle collision. We optionally model collision between muscles in a similar fashion, by constraining the particles of one muscle against the distance field f M of another muscle. This feature is useful for modeling complex muscles consisting of multiple parts that would otherwise overlap.

Muscle-skin interaction. To represent the effect of the skin enclosing the muscles, we add a third field-based constraint to keep the particles themselves inside the 0.5-isosurface of the nearest HRBF field (see Section 7 for the integration of our muscle primitives with the initial HRBF f j in the Implicit Skinning framework). This is especially useful for muscles whose shape runs astride a complex joint such as the pectoral across the shoulder, since the tendency of the axis is to form a straight line outside the body. It also prevents inertial effects from dragging the particles outside of the skin in fast motions such as jumping or running.

Regularization. Additionally, to model the visco-elastic properties of biological soft tissues, we introduce a global damping coefficient µ of 0.9 on the velocities at each integration step of the PBD solver. This damping models resistance due to interactions of the muscles with other soft tissues (e.g. fat) and prevents long-term muscle vibrations by dissipating their velocity. Also, similarly to rigid-body PBD [START_REF] Deul | Position-based rigid body dynamics[END_REF], we add a tangential friction term for each particle which collides against a bone or a muscle. This friction force is opposed to the current velocity of the particle, simulating the loss of energy when the two anatomical objects interact.

Integration with Implicit Skinning

Composition operators

As explained in Section 4, the dynamic deformations of our muscles have to be included in the scalar fields f j (defined by HRBF) before they are composed to produce the final field f whose 0.5-isosurface represents the skin.

The field representation f M introduced in Section 5 is a distance field with a global support. Implicit Skinning relies on compactly supported field functions and an homogeneous formulation is required to adequately integrate our functions [START_REF] Barthe | Controllable binary CSG operator for "soft objects[END_REF]. We thus convert our muscles to compact support by composing f M with a fall-off transfer function as done for the HRBF fields described by Vaillant et al. [START_REF] Vaillant | Implicit Skinning: Real-time Skin Deformation with Contact Modeling[END_REF]. We then assemble together all muscular fields associated with a given animation bone with a union operator before blending them with the HRBF to produce the new fields f j .

The mesh tracking step of Implicit Skinning (Section 3) relies on a gradient descent in the field f . Gradient directions should thus be smooth and singular points (where ∇ f = 0) in tracking areas must be avoided. The standard max union operator on field functions [START_REF] Sabin | The use of potential surfaces for numerical geometry[END_REF][START_REF] Ricci | A constructive geometry for computer graphics[END_REF] is known to produce gradient discontinuities and we rather compose muscles with clean union operators [START_REF] Pasko | Function representation in geometric modeling: concepts, implementation and applications[END_REF][START_REF] Bernhardt | Implicit blending revisited[END_REF] that generate a smoothed gradient. The blending of the assembled muscles with the HRBF introduces singular points along the muscle axis in the fields f j . It also produces gradient directions pointing to the bone rather than the skin in the bonefacing part of muscles as illustrated in Figure 9-center. This problem in implicit modeling has been raised by Canezin et al. [START_REF] Canezin | Adequate inner bound for geometric modeling with compact field functions[END_REF] when small details are added to a large object with a blending operator. The solution is to use the detail blending operator of Canezin et al. [START_REF] Canezin | Adequate inner bound for geometric modeling with compact field functions[END_REF] that blends only the outside part of the muscle without including the central singular points and the bone-facing parts in the resulting field, as illustrated in Figure 9-right.

During the animation, we want the skin to capture the underlying muscle's shape when it bulges out but also when it contracts. In our approach, muscles are added to the initial HRBF skin approximation using a blending operator (union with a smoothed transition between the combined objects). This means that if the muscle deforms completely inside the HRBF, it will not modify its shape, leaving the skin represented by f j unchanged. In order to deform the skin shape f j with all visible muscle deformations, we reduce the HRBF surface along muscles so that it represents a muscular rest surface. The blending of the muscle primitives then locally adds the muscle shapes in the limb representation, and the skin shape in this area follows the deformations of the muscles.

Integration in the Implicit Skinning pipeline

Figure 10 illustrates the framework to follow for the production of an animation frame. At each new frame, the animation skeleton is transformed to its new position. Data which is kinematically bound to the animation bones, such as the individual HRBF fields, the muscles endpoints and the scalar fields representing the rigid bones are updated. Keyframed per-muscle shape parameters (eccentricity, activation and width exaggeration) are also updated during this stage. setup with union operator with detail operator Next, the PBD solver computes the new position of the particles. The PBD timestep can be set to a fraction of the animation framerate, which yields an overall stiffer behavior of the physics engine. After the new particle positions are computed, each muscle updates its sampled normals n i as described in Section 5.1 and scales its width according to the new length of its axis, as explained in Section 5.2. All underlying field functions are now set and the final skin field f is ready to be evaluated by the Implicit Skinning tracking to skin the character mesh vertices.

Results and discussions

We set up a variety of scenes ranging from simple motions, such as an arm shake or a biceps curl (involving only a few muscles) to challenging motions, such as jumping and running with a fully rigged model. Please see Table 1 for details.

Results were generated on a 3.6 GHz Intel Xeon E5-1650 CPU with 64 GB of memory. Our method does not add signifi- cant memory overhead to Implicit Skinning due to the compact representation of muscles in memory. The blending operator of Canezin et al. [START_REF] Canezin | Adequate inner bound for geometric modeling with compact field functions[END_REF] and the optional cached distance fields for anatomic bones are the only memory overhead required for adding our muscle deformations. This represents less than 200 KB for the operator and 8 MB per optional anatomic bone. The default shape setting for our muscles is α 0 = β 0 = 3 and α 1 = 4, β 1 = 7, yielding a smooth symmetric shape in its inactivated state and a significant bulge in its fully activated state, as depicted in Figure 11, left. Other shapes are also used in large flat muscles such as dorsals (α 0 = 1, β 0 = 3) (Figure 11, right) or pectorals (α 0 = 3, β 0 = 9) (Figure 7).

The stiffness of the distance constraints between the particles affects mostly the inertial motion of the muscle: stiff muscles (k = 0.6) tend to closely follow the skeleton's motion while softer muscles (k = 0.1) tend to drag and jiggle much more.

Timings

Table 2 shows the average time per frame for each of our scenes. For reference, we included the time per frame of standard Implicit Skinning without muscles. While Implicit Skinning runs at real-time frame rates even in more demanding scenes, adding more muscles or increasing the number of particles per muscle increases both the physics solver time and the run-time of the Implicit Skinning algorithm itself. The former happens because more constraints have to be solved, while the latter occurs because the Implicit Skinning algorithm has to evaluate the muscle fields several times for the neighboring vertices. Nevertheless, even with our most complex scene with 50 muscles each including 30 particles, we maintain a total frame time below one second.

When editing the muscle parameters it is possible to disable Implicit Skinning to have interactive response times (up to 5-6 fps for the jumping model with the physics of all muscles activated). The parameters of each individual muscle can be tuned in real time, taking advantage of the fact that only one muscle is edited. Also, muscles subject to small deformations can be represented by fewer particles, which reduces the number of constraints and increases the simulation speed while decreasing the evaluation cost of the muscle scalar fields (see Figure 12). Note that even though subtle in Figure 12-left, the muscle scalar field computation time increases with the number of particles. This increase is due to the larger number of segments to consider for the evaluation point projection on the muscle polyline (see Section 5.1).

Volume conservation

We measured experimentally the volume variation of our muscle models due to the bending of the central axis (see Section 5). Figure 13 shows the variation of a numerical approximation of the volume of different muscles during the biceps and the jump animations (using the volume of the representative mesh as a proxy). The highest variation is approximately 3%.

Our model also allows a user to transgress this volume constraint to amplify the muscle growth for expressive effect by tuning the scale factor w of the muscles as shown in Figure 14.

User parameters

Our model exposes two sets of muscle parameters, i.e. the geometric parameters and the dynamic parameters, and a muscle state, i.e relaxed and activated.

Geometric parameters

Geometric parameters are introduced in Section 5.2 with our volume equations. They are α and β for the muscle longitudinal shape, the eccentricity e for its radial cross-section, and the scale factor w.

As shown in Figure A.16, the value of α and β, from 2 to 9, control the position of the bulge along the axis and the sharpness of its rise on each end of the axis. The shape is symmetrical when α = β, with higher values corresponding to a narrower bulge. The more the values differ, the further the maximum point is from the axis center.

The eccentricity parameter produces circular radial shapes when e = 0 and smoothly interpolates towards more elongated elliptic cross-sections when it approaches 1, as illustrated in Figure 5. Note that this parameter has a non linear impact on the ellipse dimensions. This can easily be compensated by adjusting the input value provided by the user, for instance when using a slider moving from circular to flat.

The last geometric parameter, w controls the uniform scale over the muscle width to adjust its global size.

Muscle activation

Two different shapes of a muscle can be defined using the geometric parameters α, β, e and optionally w: the muscle rest shape, and the activated state. A muscle activation is in general almost instantaneous and the muscle may change its shape from rest to activation in a few frames. Our model can vary continuously from one shape to the other using the muscle shape interpolation at constant volume introduced in Section 5.2. Once these two shapes are set, the muscle state and its corresponding shape are defined by the interpolation parameter a with a = 0 for the rest state and a = 1 for the fully activated shape.

Dynamic parameters

To be deformed in response to the skeleton motion as explained in Section 6, each muscle is parametrized by its mass, its rest length and its stiffness k. The PBD solver is also controlled by global parameters: the timestep δt and the damping coefficient µ. The mass, rest length and damping parameters are preset as explained in Sections 6.2 and 6.3. Changing the global engine parameters is a possibility to access a wider variety of motions, but this requires adjusting the stiffness of every muscle in the scene to keep the muscles' behavior consistent. This is a limitation of the PBD approach that is discussed further in Section 8.6 and we thus suggest to avoid the modification of these paramters.

In our experiments, we thus only provide a single dynamic user parameter, the stiffness k, to adjust per-muscle to obtain a stiffer or looser behavior of a given muscle. Keyframing is a standard approach for controlling parameters over an animation. All the geometric parameters and the stiffness can be keyframed in order to allow the user to have a maximal control of the deformations. We linearly interpolate the eccentricity e, interpolation a, scaling w and the stiffness k while α and β are interpolated with our interpolation at constant volume (see Section 5.2). If required, any higher degree interpolation may be used for e, w and k.

User parameter setting

The parameters can be set in an interactive muscle modelling session, using standard UI controllers such as sliders for the continuously varying values e, w and k, and a set of icons for automatically selecting the values of α and β. Common muscles of a body may also be preset, together with their activated shape and directly proposed to the user that just have to adjust the endpoint positions and the scaling w, optionally tweaking the other parameters.

Once both rest and activation shapes are set, the interpolation parameter a can be keyframed by the user or automatically set if forces information is provided by the animation system.

In our experiments, the manual edition of a muscle geometric parameters including rest and activation shapes in a prototype script interface takes around 10 minutes and the keyframing of the muscle state interpolation a and its stiffness k takes a few minutes for about a minute of animation. The use of a dedicated UI as the one provided in a professional software would greatly lower these timings by enabling the setting of individual muscles in an interactive visual session.

Automatic parameter setting

One may consider automatic adjustment methods to set the muscle parameters, for example by adapting existing anatomical models with Anatomy Transfer [START_REF] Ali-Hamadi | Anatomy transfer[END_REF]. Another direction of investigation is to use a data-based approach to set the muscle shape parameters from sparse motion capture marker inputs, by optimizing the muscle activation parameters as proposed by Sifakis et al. [START_REF] Sifakis | Automatic determination of facial muscle activations from sparse motion capture marker data[END_REF]. Similarly, muscular activity models such as the locomotion model of Lee et al. [START_REF] Lee | Locomotion control for manymuscle humanoids[END_REF] can control the evolution of muscle activation parameters. 3, the addition of collision constraints in the PBD solver doubles its convergence time on a full model. However, the use of collisions is mandatory as without them, two main phenomena occur. The first is that a significant part of the muscle grows inside the bone and neighbor muscles when it inflates. This cancels most of the inflation effect naturally produced on the skin by the muscle volume preservation and thus significantly reduces the deformation plausibility, as illustrated in Figure 15 and in the accompanying video. The second is the unnatural behavior of muscles that are allowed to move through where the bones should be, instead of moving around them (for instance on a shoulder).

Muscle dynamics

Even though PBD is appreciated for its robustness, fast execution, and ease of implementation, there are also certain trade-offs. One issue is the dependence between the time integration step and the stiffness of the constraints: larger time steps yield softer constraints, thus a more rubbery material. This issue could possibly be avoided using the method proposed by Macklin et al. [START_REF] Macklin | XPBD: Position-based simulation of compliant constrained dynamics[END_REF], as it could improve predictability of the results with different time steps.

Projective Dynamics [START_REF] Bouaziz | Projective dynamics: Fusing constraint projections for fast simulation[END_REF] have been considered in place of PBD. It averages all constraint projections in one global step which limits oscillations. However, the pre-factorization of the global step matrix in Projective Dynamics complicates collision resolution, especially in close proximity scenarios such as muscle-bone or muscle-muscle scenarios. Therefore, we have for now decided not to pursue this approach.

Unless muscles are set with a too low stiffness, which is unrealistic as muscles are stiff organs compared to soft tissues, especially when activated, the muscle dynamic is stable or most muscles (as pectorals, biceps, triceps muscles) even with muscle/bones and muscle/muscle collisions enabled. Some difficulties may arise when muscles undergo large deformations due to collisions. In this case collisions are strongly contradicting the muscle elasticity and undesired oscillations may arise. In such situations, our solution is to pinch the muscle between two other muscles (as a small decomposition in fibers) and increase the stiffness. This is a limitation of our model under its current form that would be interesting to solve in further research.

Another limitation when using PBD is that the jiggling of muscles may be hard to generate. While simple oscillations are easy to obtain (such as the one shown in the video on the biceps when shaking the arm), it is far more challenging to generate plausible longitudinal jiggling as those expected on muscle legs during a run, even acting on all PBD parameters. This is partially due to the use of a dynamic system based on constraints rather than forces.

Integration in other skinning frameworks

On the one hand, while our muscle primitives have been specifically designed to enrich the Implicit Skinning approach [START_REF] Vaillant | Robust Isosurface Tracking for Interactive Character Skinning[END_REF], they may benefit weight-based geometric skinning techniques [START_REF] Ramos | A muscle model for enhanced character skinning[END_REF][START_REF] Lee | Simplified muscle dynamics for appealing real-time skin deformation[END_REF][START_REF] Leclercq | Mixing triangle meshes and implicit surfaces in character animation[END_REF]. In these systems, a set of weights is defined over the mesh for each muscle. Mesh vertices with nonzero weights store the initial field value of the corresponding muscle primitives in rest pose. During the animation, muscle deformation and skinning are performed. Then, for each vertex with non-zero weight, a displacement corresponding to its projection on its initial field value in the deformed muscle field is computed (using for instance a gradient descent). Vertex positions are then updated by applying the weighted displacements.

On the other hand, real-time physically or dynamic based skinning methods, such as position-based skinning [START_REF] Rumman | Position-based skinning for soft articulated characters[END_REF], usually rely on a volumetrical mesh deformed by minimizing a function defined by constraints. In that case, the definition and insertion of constraints transferring the muscle field function deformations on the volumetrical mesh remains an open challenge. In addition, the interaction of these new constraints with the others will also have to be specifically studied, especially because some of them may violate each other. A way to avoid these issues is to apply the muscle deformations as a post-process, but all physical properties and eventual collision-handling would be lost.

Limitations

As can be seen in Figure 12, computations required by Implicit Skinning are the main bottleneck for a full model. This is due to the very large number of field functions that are structured in a composition tree [START_REF] Wyvill | Extending the CSG tree: Warping, blending and boolean operations in an implicit surface modeling system[END_REF] and evaluated several times per mesh vertex for the isosurface tracking. This phenomenon is accentuated by the increased number of deformed vertices due to the muscle dynamics. Even though we use a bounding box hierarchy to avoid unnecessary field evaluations, there is room for specifically improving the field function filtering and composition tree evaluations. We currently rely on a CPU implementation which is multi-threaded, but not heavily optimized. Both Implicit Skinning and PBD may be efficiently implemented on a GPU, and it would be interesting to study a dedicated GPU implementation including our muscle primitives.

The variety of muscle shapes produced with our model is well-suited for the production of plausible body dynamics of a human character. The main limitation is the application to non-fusiform muscles as the pectoral, for which we allow the introduction of visible deformations, but we provide a coarse approximation of the muscle shape and the deformations could be enhanced with a more accurate model. Different types of muscle primitives may be studied to adapt to a larger variety of virtual characters, including animals and imaginary creatures.

Conclusion

In this paper, we have presented a method to animate a character's muscular system which achieves expressive, artistically controllable results while maintaining interactive frame-rates.

To achieve this goal, we designed a family of shapes defined as isosurfaces of a scalar field. These shapes mimic the appearance of human muscles and are able to reproduce the contraction, extension, volume preservation and activation of the real muscles. Furthermore, we let the central axis of our muscles be driven by physics-based simulation, thus enabling highly dynamic effects such as jiggling. Using 3D scalar field representation allows us to resolve collisions efficiently between muscles, bones and skin. Another advantage of this implicit representation is the ability to use the muscles as skin deformers while reaping the benefits of Implicit Skinning.

As future work, a sketching approach may be investigated, enabling users to sketch the muscle deformation in different poses. We also believe that combining physical simulation with implicit modeling for animation is a promising line of research. Indeed, using a similar representation for other anatomic elements with highly dynamic behaviour and effect on the skin such as fat tissues or cartilages (nose, ears) could improve the ability of animators to efficiently produce realistic visual effects.

Acknowledgements

This research has been partially supported by the FOLD-Dyn project (ANR-16-CE33-0015-01) and the CIMI Labex (ANR-11-LABX-0040). This material is also based upon work supported by the National Science Foundation under Grant Numbers IIS-1617172, IIS-1622360 and IIS-1764071. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. We also gratefully acknowledge the support of Activision, Adobe, and hardware donation from NVIDIA Corporation. The authors would like to thank the anonymous reviewers for their helpful comments and suggestions. Finally, we wish to thank the Anatoscope company and more specifically Pr Franc ¸ois Faure for the gracious provision of their anatomical model.

Figure 1 .

 1 Figure 1. On the left, the muscular and bone structure of the character are shown in the bottom inset. These muscles are represented by new implicit primitives deforming at constant volume with elasticity and collisions computed with Position Based Dynamics. On the right, the different poses of the character jumping illustrate the change in muscle shape due to activation/relaxation, stretch/elongation and the result of the muscle-bone collision resolution. Our muscles adequately seamlessly fit into the Implicit Skinning framework, allowing us to produce character animation with skin contact and elasticity.

Figure 2 .

 2 Figure 2. Influence of our muscle deformations on Implicit Skinning. Starting from an input pose (a), the muscle is activated (b) and the arm flexed (c). All along, the primitives preserve their volumes and are deformed to avoid collisions. The shape of the muscle central line (in green) is deformed using Position Based Dynamics (PBD) [9].

Figure 4 .

 4 Figure 4. Comparison between standard point-to-segment orthogonal projection, and ours. Colors are computed w.r.t. the curvilinear axis s(proj(q)).Note the discontinuities appearing when using standard orthogonal projection.

Figure 5 .

 5 Figure 5. Elliptic profiles at constant area for different values of the ellipse eccentricity e.

Figure 6 .

 6 Figure 6. Profiles of the Φ function for α 0 = β 0 = 3 and (α 1 , β 1 ) = (4, 7).

Figure 8 .

 8 Figure 8. Constraints used to model muscle properties and interactions with surrounding elements.

Figure 9 .Figure 10 .

 910 Figure 9. Left: a typical skinning setup with muscles and bone primitives blended with the HRBF field. Center: using a union operator yields singular points (red dotted line) and wrong gradient directions (red arrows) near the 0.5-isosurface. Right : the use of Canezin et al. [74] detail blending operator (right) avoids these problems, eliminating the singular points and yielding a smooth gradient.

Figure 11 .

 11 Figure 11. Calf muscles in their least activated state (left; α 0 = β 0 = 3, a = 0) and their most activated state (right; α 1 = 4, β 1 = 8, a = 1). Dorsal muscles are shown in their rest state (α 0 = 2, β 0 = 3).

Figure 12 .Figure 13 .

 1213 Figure 12. Average times in seconds for the computation of an animation frame, for different numbers of particles per muscle. The brown represents the computation of Implicit Skinning excluding the PBD simulation, and the pink represents the PBD simulation.

Figure 14 .

 14 Figure 14. Left, normal biceps curl. Right, muscle width increased by 30%.

Figure 15 .

 15 Figure 15. The arm bent from left to right with Implicit Skinning only, with our muscle but without resolving muscle/bones collisions and with our muscles and muscle/bones collisions resolved. Without collision, the muscle deformation in the middle is very similar to the solution without muscle shown on the left. On the right, the collision makes the muscle deformation clearly visible.

Table 1 .

 1 Summary of the scenes used for our results. The number of PBD constraints is given for 30 particles per muscle.

	Scene	# vertices # bones # muscles # constraints
	Arm shake	2172	3	4	456
	Biceps curl	2172	3	4	456
	Jump	19296	12	50	4250
	Run	19296	12	50	4250

Table 2 .

 2 Average times in seconds per frame for our different scenes and 30 particles per muscle. Times are given for Implicit Skinning without muscles (IS only), for Implicit Skinning with muscles but without the PBD simulation (IS), and for the PBD simulation (PBD).

	Scene	Standard IS	IS + Muscles
			Tracking	PBD Total
	Arm shake	0.008	0.013 0.055 0.068
	Biceps curl	0.005	0.015 0.042 0.057
	Jump	0.050	0.462 0.096 0.558
	Run	0.051	0.473 0.096 0.569

Table 3 .

 3 Average times in seconds per frame for minimizing PBD constraints, without and with collision constraints (muscle/bones, muscle/muscle, interactions with skin), in our different scenes.

	Scene	PBD -only elasticity PBD -with collision
	Arm shake	0.003	0.055
	Biceps curl	0.003	0.042
	Jump	0.050	0.096
	Run	0.048	0.096
	8.5. Effects of collisions
	As shown by Table

Appendix A. Muscle volume derivation

The volume enclosed by the muscle's surface is given by Equation 3V = πw Integrating in ρ yields:

The integral in θ is the area of an ellipse of semi-axis length u and v (see Equation 5)

Since we enforce uv = 1, it yields

We also constrain Φ 2 = 1, thus we have

Appendix B. Derivation of function K

The Euler beta function B is defined as

Let us define

which appears in the denominator of Equation 4. We define the linear interpolation Φ(s) between ϕ(α 0 , β 0 ; s) and ϕ(α 1 , β 1 ; s), governed by the activation parameter a, such that 1 0 (Φ(s)) 2 ds = 1, ∀a ∈ [0, 1] as:

where √ F(a) is the L 2 -norm of the numerator, i,e

We show that F(a) can be expressed as a second-order polynomial in a whose coefficients depend only on the chosen values for α 1 , α 2 , β 1 and β 2 .

Proof.

where K(α 0 , α 1 , β 0 , β 1 ) is the constant term equal to: 1 0 s α 0 +α 1 -2 (1s) β 0 +β 1 -1 ds 1 0 y 2(α 0 -1) (1y) 2(β 0 -1) dy 1 0 y 2(α 1 -1) (1y) 2(β 1 -1) dy , which can be expressed in terms of the beta function B as:

B(2α 0 -1, 2β 0 -1)B(2α 1 -1, 2β 1 -1)

.