text:
\section{Introduction}

Trained animators bring 2D characters to life
through the inspired
application of a few well-known principles, such as \emph{squash, stretch} and \emph{follow through}~\cite{illusionOfLife,Lasseter,AnimatorHandbook}. The latter are used to enhance the physicality of motion and make cartoon figures more expressive, with emotion and appeal. Unfortunately, the application of these rules
to 3D~animation is quite challenging.
Indeed, the stylization and subtlety of the desired motion is at odds with the assumptions of existing pipelines~\cite{ves_handbook}, such as linear blend or dual quaternion skinning techniques (LBS and DQS, respectively), where skin deformation is directly derived from the current skeletal pose.
Further, the rules themselves
require interpretation to be extended to 3D, which makes them difficult to formalize into generic algorithms~\cite{Yong_TVCG_2012, Robert_ICIVC_2013, Dvoroznak_SIGGRAPH_2017} (among others, see Section~\ref{sec:related-works}).

We introduce a novel method to enhance 3D character animation pipelines with secondary motion control. Our method is easy to customize, handles the main animation principles, and supports fine-grain animator control.

While LBS and DQS derive skin deformation from the current, static configuration of skeletal joints, we claim that considering the additional influences of translational and rotational velocities along the skeletal structure is essential to bring more diverse and lively skin responses.
{\em Velocity skinning} consists in adding this set of additional influences to a standard skinning method (LBS, in our implementation). This insight enables us to synthesize dynamic-looking, controllable skin deformations directly from the current state of skeletal motion. In particular, it enables us to achieve \emph{squash \& stretch} and \emph{drag}-like exaggeration for \emph{follow through}, among others (note that for sake of simplicity, we reuse these well-known terms from animation principles~\cite{illusionOfLife}, to denote the similar effects generated by our system).

Figure~\ref{fig:teaser} illustrates this framework with a single animated bone, showing that it can bring various dynamic effects, such as the floppy ears and squashy face of the cow. While skilled animators could use key-frames to manually add such secondary motion, velocity skinning directly encodes them within the skinning pipeline. Thanks to GPU implementation, computed as a single-pass vertex shader, velocity skinning can be applied in real-time to any skeleton-based animated character, independently from its animation and in a reusable manner.

Our method uses, as input, a standard skinned mesh with a skeleton animation. It generates a deformation of the mesh, expressed as per-vertex displacements, that emphasizes (and stylizes) motion induced by the movement of the skeleton. We take advantage of the hierarchical nature of the skeleton to approximate dynamic deformations that otherwise, would not be accessible without either some manual input from a skilled animator or an expensive, physically-based simulation.
The key idea is that the skeleton hierarchy embedded in the skinning computation provides enough information to decompose the motion of the mesh into meaningful, easily directable sub-motions that can be automatically associated with deformations.
We contrast this approach to existing modeling tools, such as the deformers in a standard animation software package, which require manual setup and keyframing by a skilled artist for every animation, which is both time consuming and cumbersome.

Although the general velocity skinning framework supports a wide set of deformations, in this paper we showcase the utility of two specific characteristic deformations that we term ``squashiness'' and ``floppiness''. The magnitude of these two deformations effects can be finely tuned with scalar weighting parameters to reflect the different properties of the physical materials
, and can be defined as per-vertex attributes ``painted'' on the mesh by an artist. Along with a small toolkit of interface handles, this allows simple control over an intuitive space of possible deformation behaviors, for example, to produce effects that appear
to be made from heterogeneous materials.

The key contributions of this work are the following: we add a new term to the standard skinning formulation that creates customizeable spatial deformations based on velocity; we present a weighting scheme that derives consistent skeletal weights for the proposed framework from traditional (LBS) skinning weights; we split the translational and rotational velocity influences and show how they can be combined to create different effects, e.g. \emph{squash \& stretch} and (floppy) \emph{follow through / drag}; and finally, we develop a set of deformation handles in support of making the effects controllable, based both on the desired output and the distinct characteristics of a given rigged skeleton.

We tested velocity skinning on both CPU and GPU implementations, to show its scalability to large meshes. A reference real-time web application is openly available at \textbf{ \href{https://velocityskinning.com}{https://velocityskinning.com}}, and remains anonymous for reviewing purpose.
The supplementary material associated with this submission contains the source code of the web application as well as the entire C++ and GPU interactive interface.

\section{Related Work} \label{sec:related-works}

Skin deformation of animated characters can be seen as
mostly rigid, being driven by bones.
Linear blend skinning (LBS) offers a simple solution for capturing this behaviour while enabling to smoothly blend deformations
near joints~\cite{magnenat1988joint}.
Being fast and highly customizable, LBS is routinely used in the animation pipeline. Dual quaternion skinning~\cite{kavan2008geometric} is another popular choice, which solves some of the artifacts arising from
LBS in case of high rotation angles, thanks to a non-linear blending mechanism that can be
computed efficiently on the GPU.
Encoding
surface details with respect to a simpler deformed surface
was also exploited to ease rig generation while improving visual results in general. For instance Delta Mush~\cite{mancewicz_2014_digipro_delta_mush} uses Laplacian smoothing to generate such simple surface and encodes the details in a local reference frame to compute visually pleasing skinning very efficiently~\cite{huy_2019_siggraph_ddm}.
In contrast, implicit skinning ~\cite{vaillant_2013_siggraph_implicit_skinning} approximates skin as the iso-surface of an implicit field (the blend of fields associated with different bones) in which the mesh is embedded, each vertex storing its own iso-value to preserve details. The use of advanced blending operators enables not only to preserve volume at joints, but also to avoid inter-penetrations and achieve bulging skin in contact regions. This framework was extended to account for skin sliding effects~\cite{vaillant:Siggraph-Asia-2014}. \final{Energy-based formulations associated with a set of positional, and possibly rotational constraints, were used to infer~\cite{jacobson2012} and increase the range of possible deformations~\cite{wang2015}.}
All these approaches
do improve skin deformation in their own ways, but are not able to imitate dynamic behaviour, as our new method does. They could be combined with our work by serving as better input for the velocity-based deformer.
In this paper, we rather derive velocity-based deformations
from the standard LBS formulation, in order to remain fully compatible with standard production pipelines.

Skinning has also been subject to other improvements, related to an increase of the number of degrees of freedom, in order to fulfill specific criteria~\cite{jacobson_star_2014}. To mention only a few, this family of methods includes the interpolation in pose space~\cite{Lewis_siggraph_2000}, the automatic insertion of extra bones~\cite{mohr2003}, the addition of extra skinning weights~\cite{wang2002multi,merry2006animation}, the integration of limbs scaling~\cite{jacobson2011stretchable}, or local swing and twist deformers extracted from the blended bone transformations~\cite{kavan_siggrapha_2012}.
Allowing to deform the rest poses can also improve skinning. Such deformation can be automatically computed from a principal component analysis applied to a target model, such as a detailed finite element simulation for instance~\cite{Kry_SCA_2002}.
Curved skeletons~\cite{yang2006curve} were used to provide smoother skinning results and solve artifacts,
and has been combined with extra deformers~\cite{forstmann2007sca}. \\
These method however depart from the standard production pipeline.
The latter~\cite{ves_handbook} is subject to strict constraints including computational efficiency as well as not easily accommodating changes affecting weights or the skeletal structure. Skeletons for which complex rigs may be scripted~\cite{nieto_siggraph_talk_2016}, and possibly shared through multiple characters, should typically not be modified, as they are the core of animation assets. In addition, constant scalar skinning weights painted by skilled artists are the de-facto standard of production-compatible skinning methods. Unfortunately, this pipeline maintains the animated skin as a purely passive geometry element, merely following the skeleton with no dynamic deformation effects.

In contrast, the principles of animation~\cite{illusionOfLife}, based on exaggeration and stylization of physical phenomena, have helped artists bring their characters to life for many decades. Since such ``cartoon physics'' is not supported by standard motion pipelines, professional animators often rely on additional deformers~\cite{maya_deformer} -- for "squash", "jiggle", "bend", and so on. These act as extra, customized layers, designed to produce a wide variety of effects, but need to be tuned by adjusting their influence over mesh vertices from manual setting or procedural functions to be defined, as well as setting and attaching their possibly varying magnitude over the keyframes along the animation. Our method can be seen as an automatic parameterization of such deformers for cartoon like effects. It is readily available on rigged-animated model as it seamlessly makes use of existing skinning weights to set a model-aware influence along the mesh geometry, and rely on skeleton velocity to automatically adapt the magnitude of the deformation over time or keyframes.
In addition, our approach still remain compatible with fine-grain artistic control from a per-bone control to magnitude weights painted at the per-vertex level if needed.

Computer graphic researchers have offered a variety of approaches related to ``cartoon physics''. Largely, the approaches allow the cartoon-like effects to be applied to the shape using additional inputs, for example, natural extensions of 2D effects can be achieved through the use of sketch-based interfaces guiding computer-generated deformation such as exaggeration~\cite{Li_SCA_2003}, geometric constraints~\cite{nealen_siggraph_2005,rohmer_sca_2009}, up to guiding an entire suggestive animation~\cite{Kazi_UIST_2014,Kazi_CHI_2016}. Example-based techniques have also been explored to model arbitrary predefined deformations~\cite{Robert_ICIVC_2013,Dvoroznak_SIGGRAPH_2017,Ruhland_CS_2017} or rendering styles~\cite{Benard_SIGGRAPH_2013} that can be triggered during animation and transferred to a target shape~\cite{Bregler_2002, Young_GM_2012}. These approaches provide a fine level of control and artistic expressiveness on the visual result, but they must be set up manually for each specific shape and animation.
Regression based approaches were also used to generate secondary effects from simulations examples~\cite{aguiar2010}, or captured humans motions~\cite{pons-moll2015}, but were not used for exaggerated deformation.

Physically-based deformations, on the other hand, naturally handle automatic
dynamic behaviours. Time integration as well as elastic energy formulation is widely used to improve skin deformation~\cite{deul_vriphys_2013} as well as for avoiding self collision~\cite{capell_sca_2005, mcadams_siggraph_2011}, and can be triggered by skeletal animation~\cite{capell_siggraph_2002}.
Efficient computation can be obtained from the use of subspaces modeling adapted deformation modes~\cite{james_tog_2002} and computed for instance in the rig space~\cite{hahn_sca_2013,RedMax2019}, using helper bone controller~\cite{mukai2016}, or directly in pose space~\cite{xu_siggraph_2016}. Position and projective based dynamics~\cite{muller2005, bouaziz2014, macklin2016} are also popular physically-inspired methods, allowing real time deformation for moderately detailed shapes while being able to handle arbitrary non-linear constraints. They can successfully be used to animate dynamic characters~\cite{Rumman_PPD_skinning_2014, komaritzan_i3d_2018} and even incorporate efficient voxels-based layers of bones, muscle and soft tissues~\cite{iwamoto2015}.
Interestingly, custom physically-based models were also developed to exaggerate specific cartoon-like effects~\cite{Garcia_VRIPHYS_2007, Coros_SIGGRAPH_2012, Bai_SIGGRAPH_2016} on arbitrarily animated models.
\final{Zhang~et al.~\cite{zhang2020} propose to enrich skinning animation with dynamic secondary effects. Their technique generates oscillation, follow through, and even collisions, that complement primary animations by computing these in the orthogonal subspace of the rig. In contrast, our system focuses on simpler effects aimed at an artist-driven workflow.  While their technique requires a few seconds per frame for a mesh of a thousand elements, ours is interactive with much bigger models to support an artist's needs.  We further note that velocity skinning does not aim solely at secondary effects as expressed by physical laws, rather the approach extends and exaggerates the motion in a flexible, general manner, especially integrating artist-directable parameters compatible with cartoon-like animation principles.}

Simpler dynamic deformers have also been explored, from early work coupling particles and implicit surfaces to achieve {cartoon-physics} effects~\cite{Opalach_WorkshopAnimSimu_1994}, through extra bones attached to the skeleton to model flesh oscillations~\cite{larboulette_2005}, or
the use of sub-bones connected by springs to achieve curvy, dynamic shapes~\cite{Kwon_CGF_2008}. Muscles approximations have also been developed both in explicit~\cite{ramos_2013} and implicit~\cite{rousselet_2018} formulations. Similar to our approach, kinodynamic skinning~\cite{angelidis_sca_2007} proposes an integrated velocity-based formulation for skinning that can be tuned to exaggerate dynamic visual effects. While their deformation is expressed as a vector field to ensure fold-over-free trajectories for vertices, this requires costly numerical integration along streamlines which makes it computationally prohibitive.

In contrast, our method belongs to kinematic approaches, i.e. those that use position trajectory, or directly velocity and acceleration information, without requiring any time integration. In the specific case of predefined motion, \final{time-based filter applied to the vertex position trajectory~\shortcite{Wang_SIGGRAPH_2006}, or time-wrapper applied to the bone motion~\shortcite{Kim_CGI_2006}, were proposed to}
express exaggerated motion in space, as well as the notion of \emph{follow through} and \emph{anticipation} over time. The use of oscillating splines~\cite{kass2008} aim at deforming the existing animation curves to mimic the trajectory of a damped mass-spring model. Associated to a phase shift along the surface geometry, the method can model drag effect followed by wiggling motion. The magnitude and phase field should however be parameterized by the user on every given model and do not automatically take advantage of the existing rig. \final{Note that vertex trajectory filtering-based approaches can be seen as complementary of our method in caputing effects such as follow through effect that could be combined with ours.}\\
Geometrically defined \emph{squash \& stretch} effects triggered by kinematics and collisions were also tackled by deforming the bones themselves~\cite{Yong_TVCG_2012}, as well as slowing down trailing joints.
\final{While their approach allows local elongations along the bones, they only support global scaling with respect to the root-bone velocity. Therefore the space of deformations is more restricted than in our work which allows scaling and bending limbs along arbitrary directions computed from bone velocities.}
Closer to our work, Nobel et al.~\shortcite{Noble_GRAPHITE_2006} developed a specific bending deformer able to curve limbs based on the direction of motion.
\final{Similar to our method, bone velocity and geometric criterion are used as deformer parameters to bend limbs. However, the deformation for a given vertex is based solely on the attached bone, without considering the global hierarchy. Their velocity and deformation parameters are only computed with respect to a given bone and its parent, which lead to artifacts between joints. In contrast, our approach produces seamless deformations that remain coherent for arbitrary skeletal hierarchies.}

Our method relies on the use of bone velocities to define closed-form, generic geometric deformers. As such, and similarly to static deformers, neither subsequent motion nor past configurations are required, which makes the method easier to add to a standard pipeline, at low cost, and greatly eases tuning.
In addition, our
deformations do not require any change to the input animation skeletons, while still being able to synthesize curvy skin shapes as well as
mimicking time-delayed deformations. These smooth and coherent deformations are achieved thanks to a new formulation built on standard skeletons and skinning weights, as presented next.
\section{Velocity skinning}

We introduce our velocity skinning formulation by drawing from linear blend skinning (LBS).
It could alternatively be
directly plugged into another form of skinning such as DQS, as discussed
in Section~\ref{sec:implementation}.

In LBS, at each frame, the position $\PosVi$ of vertex $\Vi$ is computed as a weighted sum of the transforms associated to each bone applied to the rest pose $\RestPosVi$ vertex as
\begin{equation}
\label{eq:skinning}
\PosVi = \left( \sum_\Bi \WeiViBi \, \matrix{T}_\Bi \right) \RestPosVi \,,
\end{equation}
where $\matrix{T}_\Bi$ is the current frame's transform for bone $\Bi$, obtained by accumulating rotations and translations along the hierarchical skeleton structure. Equivalently, $\PosVi$ can also be understood as a linear combination of positions $\PosViBi = \matrix{T}_\Bi\, \RestPosVi$ of the vertex $\Vi$ moved according to bone $\Bi$ as
\begin{equation}
\label{eq:skinning2}
\PosVi = \sum_\Bi \WeiViBi \PosViBi.
\end{equation}
As the skeleton is animated by changing rotations (and sometimes translations) of bone joints at each frame, LBS moves vertex $\Vi$ to trace a trajectory over time.

For velocity skinning, we base the foundation of our approach on the premise that, like vertex position, vertex velocity $\VelVi = \DotPosVi$
can also be understood as a linear combination of a set of \emph{component velocities} $\VelViBi$.
 %
We exploit this by proposing to make component velocities induce separate, individually weighted displacements to the vertex, while allowing each velocity's influence to be customizable (to add distinct animation effects) through a function, $\Fun$. The velocity-based position displacements are then added through linear combination to the final procedural mesh deformation, as displacement $\DisVi $. That is,
\begin{equation}
\label{eq:displacements}
\DisVi = \sum_\Bi{ \vWei_i^u  \Fun_{\Bi} ( \VelViBi ) } \, ,
\end{equation}
where $\vWei_i^u$ are the bone weights defined per vertex. Deformer functions $\Fun_\Bi$ take in account the geometry of bone $\Bi$.

The LBS position $\PosVi$ from Equation~(\ref{eq:skinning}), which is determined by the \emph{static} pose, is displaced by $\DisVi$ from Equation~(\ref{eq:displacements}), obtaining an additional mesh deformation which is automatically induced by the skeletal \emph{animation}.
\begin{equation}
\PosVi{}^\prime = \PosVi + \DisVi \,.
\end{equation}

\noindent
To take advantage of the existing skinning weights from LBS, we show how we derive $\vWei_i^u$ from the existing skinning weights $\WeiViBi$
in Section~\ref{sec:decompose}. To support the development of the desired velocity effects, we show in Section~\ref{sec:vel} a breakdown of velocity that separates the influences of translational and rotational elements. Finally, in Section~\ref{sec:deform}, we illustrate a general framework for the function $\Fun$, which can be employed to achieve different animation effects as well as combine the inputs of multiple effect \emph{deformers}.

\subsection{Velocity component weighting}
\label{sec:decompose}
While a general formulation for velocity skinning could introduce an arbitrary weighting scheme for $ \vWeiViBi $ in combining the velocity influences in Equation~\eqref{eq:displacements}, instead, we opt to take advantage of LBS by reusing the skinning weights already attached to the original mesh.  To this end, we derive the velocity weights directly from the LBS weights and employ them in computing displacements.

Let us first consider the
deformed position $\PosViBi$
defined by Equation~\eqref{eq:skinning2}, and decompose the velocity $\DotPosViBi$ of vertices along the skeleton hierarchy. We call vector $\VelViBi$ the \emph{component velocity} induced by the rigid motion of bone $\Bj$ relatively to its immediate parent. A straightforward decomposition along this kinematic chain shows that $\DotPosViBi$ can be expressed as the sum over all these relative velocities such that
\begin{equation}
\label{eq1}
 \DotPosViBi = \sum_{\Bj \in \Anc(\Bi)}{ \VelViBj } \,,
\end{equation}
where $\Anc(\Bi)$ denote the set of all ancestors of bone $\Bi$ (including $\Bi$ itself). Note that all velocity vectors are expressed here in the same global reference frame.

Differentiating  Equation~\eqref{eq:skinning2} with respect to time, and plugging Equation~\eqref{eq1} into it leads to
\begin{equation}
\label{eqVelSkinning}
 \VelVi = \sum_\Bi{ \WeiViBi \left( \sum_{\Bj\in \Anc(\Bi)}{ \VelViBj } \right) }.
\end{equation}
\noindent This can be rewritten as a single summation (see Appendix~\ref{sec:derive} for the full derivation):
\begin{equation}
\label{eqVelSkinning2}
  \VelVi =  \sum_{\Bi}{ \AncWeiViBi \VelViBi }
\end{equation}
where the \emph{upward-propagated} weight vector $\AncWeiViBi$ (see Figure~\ref{fig:propweights}, middle) is defined at each vertex $\Vi$ as
\begin{equation}
\label{eq:AncWei}
 \AncWeiViBi =  \sum_{ \Bj \in \Des(\Bi)}{ \WeiViBj }
\end{equation}
 %
\noindent with $\Des(\Bi)$ denoting the set of descendants of bone $\Bi$, i.e. the set of bones in the subtree rooted in bone $\Bi$ (including $\Bi$).
Equation~(\ref{eqVelSkinning2}) is the velocity counterpart of Equation~(\ref{eq:skinning2}). To create consistency in the skinning weights of LBS and velocity skinning we assign $\vWei_i^u$ to $\AncWeiViBi$ in Equation~(\ref{eq:displacements}).
Note that in LBS, \(\sum_{\Bj}\WeiViBi=1\) for every vertex \(u\), while this is not the case for the \emph{upward-propagated} weights. Still each individual weight \(\AncWeiViBi\) belongs to the interval \([0,1]\).

\begin{figure}
\resizebox{0.85\linewidth}{!}{\input{weights_propagation.pdf_tex}}
\caption{ An example of the upward-propagated  weights (middle) and downward-propagated weights (bottom) derived for the original bone-to-vertex weights (top), for a given vertex $\Vi$, as for Equations~(\ref{eq:AncWei}) and (\ref{eqBarycenters}), respectively. For smooth skinning, each vertex is normally linked to a short sequence of interconnected bones (top). In velocity skinning, we use upward-propagated weights (middle) that can be derived from the original weights.  Note, most ancestors have an influence of~1 on the given vertex. Bones $\Bi$ are represented as circles, and arrows represent the hierarchical structure of the skeleton.}
 \vspace{-2em}
\label{fig:propweights}
\end{figure}

\subsection{Velocity component estimation}
\label{sec:vel}

To support customization in the procedural use of the velocity deformers, we decompose velocity into its translational and rotational components.
That is, for every vertex $\Vi$, the velocity component associated to each bone $\Bi$ is given by
\begin{equation}
\label{eq:velDecompose}
\VelViBi = \RotVelViBi + \TraVelViBi.
\end{equation}
\final{where $\RotVelBi$ is the vertex velocity component induced by the \emph{angular velocity} of the joint of bone $\Bi$, and $\TraVelBi$ is the vertex velocity component induced by the bone's \emph{linear velocity} (when present).}

To evaluate the terms of Equation~(\ref{eq:velDecompose}), we must extract the angular $\AngVelBi$ and linear velocity $\VelBi$ of each bone $\Bi$. First, we extract them in the local space of the parent bone, then we propagate them upward in the skeleton hierarchy (using forward kinematics) to express them in the global reference frame.
The actual computation of these velocities can either be carried through analytic derivation when
the animation is provided as
a set of parametric
curves, or via finite differences between previous and current frames to easily support interactive deformation along \emph{mouse motions}.

\hspace{-4mm}
\begin{minipage}{0.5\linewidth}
Vector $\RotVelViBi$ is then  the  linear velocity for vertex $\Vi$  in position $\PosVi$ induced by the angular rotation $\AngVelBi$ around bone origin $\PosBi$:
\begin{equation}
 \RotVelViBi = \AngVelBi \times ( \PosVi - \PosBi) \,.
 \label{eq:joint}
\end{equation}
\end{minipage}
\begin{minipage}{0.45\linewidth}
\input{schema.pdf_tex}
\end{minipage}

\noindent Vector $\TraVelViBi$
(the linear velocity of vertex $\Vi$ induced by the \emph{translation} of bone $\Bi$) is
equal to the bone's translation $\VelBi$, for all vertices.
While in most character animations, translation is only allowed for the root,  we do not make such assumption in our method, allowing
translation, eg. when limbs lengths are animated.

\subsection{Procedural velocity-driven deformations}
\label{sec:deform}

In our method, we deform the mesh by
computing a displacement for each vertex
expressed as the weighed sum of displacements $\Fun_{\Bi}$ (Equation~(\ref{eq:displacements})), that are function of the vertex velocity component associated with bone $\Bi$. Now that we have selected our weights (Section~\ref{sec:decompose}) and isolated the contribution of each rotational and transitional bone animation (Section~\ref{sec:vel}), let us detail the way we compute $\Fun_\Bi$.
While the latter takes into account the geometry of bone $\Bi$ (e.g., the location of its origin $\PosBi$),
we will omit the index $\Bi$ in $\Fun$ below,
for clarity in the exposition.
 \\
To increase the expressiveness of the method
we opt for a version of $\Fun$ that affects the components of Equation~\eqref{eq:velDecompose} differently (rather than being applied to their sum), yielding
\begin{equation}
\label{eq:displacementsBis}
\DisVi = \sum_\Bi{ \AncWeiViBi \, \Fun (\TraVelViBi , \RotVelViBi )  } .
\end{equation}

\noindent Finally, as we want function $\Fun$ to combine
a variety of effects, we set
\begin{equation}
 \label{eq:deformers3}
 \Fun(\TraVelViBi,\RotVelViBi )  = \sum_\text{deform} \Fun_{\text{deform}}(\TraVelViBi,\RotVelViBi ) ,
\end{equation}

\noindent for a number of deformer functions $\Fun_{\text{deform}}$. Thus, to compute $\DisVi$,  all that is left is to define
the action of each deformer from their constituent velocity terms.  Our squashy and floppy deformers showcase this process in the next section.

\section{Squashy and Floppy Effects}
\label{sec:squashyFloppy}

While the velocity skinning framework is general and
can be used for any deformation triggered by the motion of an articulated character, we illustrate it
in this paper through its application to
\emph{squashy} and \emph{floppy} expressive effects,
motivated by the classic
principles of animation~\cite{illusionOfLife}.

Both effects can be defined in terms of their translational and rotational input, $\TraFun$ and $\RotFun$, respectively,
through simple sums of the corresponding terms:
\begin{equation}
\begin{split}
    \Fun_{\text{squash}} (\TraVelViBi,\RotVelViBi )  &= \TraFun_{\text{squash}}(\TraVelViBi)   + \RotFun_{\text{squash}} (\RotVelViBi ) \\
    \Fun_{\text{floppy}} (\TraVelViBi,\RotVelViBi ) &= \TraFun_{\text{floppy}} (\TraVelViBi) + \RotFun_{\text{floppy}}(\RotVelViBi )
\end{split}
\end{equation}
\noindent with these added to the set of the deformer functions of Equation~(\ref{eq:deformers3}).
The respective scales of these effects can be tuned down (or nullified) using ``floppiness'' and ``squashiness'' gain values, $k_{\text{squash}}$ and $k_{\text{floppy}}$ respectively (see Figure~\ref{fig:squashflop}). These values can be defined per-vertex and ``painted'' on the surface (see Section~\ref{sec:painting}).
\begin{figure}
  \includegraphics[width=\linewidth]{squashflop.jpg}
  \caption{The deformers of squashy and floppy velocity skinning
  reveal information in the still about the speed and direction
  of the motion that is not visible in the standard skinning
  surface.
  }
  \label{fig:squashflop}
\end{figure}
\subsection{Squashy deformations} \label{seq:squashy}
Inspired by one of the most well known of animation principles \emph{squash \& stretch}, our squash effect aims to deform an object to produce a local elongation in the direction of motion \cite{illusionOfLife}. At the same time, it is important that this deformation approximately preserves volume.

We define the squash effect through controlled scalings.
Let the \emph{centroid}  $\vec{c}_\Bi$ of bone $\Bi$ (the purple dot in Figure~\ref{fig:SquashyRot}) be the center for the portion of the mesh that is affected by bone~$\Bi$.
Because our system is not physically based, this is not a strict definition, and $\vec{c}_\Bi$ can be freely customized by the user (see Section~\ref{sec:manualBoneCenter}). By default, we position $\vec{c}_\Bi$ at the barycenter of the vertices in the
bone's region of influence (computed as described in Appendix~\ref{sec:baricente}). Unless stated otherwise, we use this setting in all our examples.

\begin{figure}
  \centering
  \includegraphics[width=0.9\linewidth]{squashy.jpg}
  \caption{The "squashy" deformer applies an anisotropic scaling to the moving parts of the shape compared to the shape obtained by LBS. Left: Result when the front-part of the cylinder rotates downward; Right: Result when the cow's head rotates downward.}
  \label{fig:squashy_deformation}
\end{figure}

\begin{figure}
  \centering
  \includegraphics[width=1.0\linewidth]{floppy.jpg}
  \caption{Left: "Floppy" deformation induced by the counter-clockwise rotation of the top bone. In rest pose, the shape is a straight cylinder, while the deformer bends the cylinder in the opposite direction. Right: Same deformer

  when a neck bone of the giraffe rotates.}

  \label{fig:bendyarm}
\end{figure}

\emph{For linear bone motions,} the scaling is simply centered in  $\vec{c}_\Bi$. The formula for the displacement is given by

\begin{equation}
\label{eq15}
\TraFun_{\text{squash}} (\TraVelViBi ) = (\matrix{R} \, \matrix{S} \, \matrix{R}' \, - \, \matrix{Id} ) (\PosVi - \vec{c}_\Bi ) \,,
\end{equation}
where \(\matrix{Id}\) is the identity matrix, $\matrix{R}$ is any rotation matrix which maps the $x-$axis to the direction of the bone velocity $\VelBi$ (and $\matrix{R}'$ denotes its transpose); $\matrix{S}$ is the following anisotropic, volume-preserving scaling matrix:
$$
\matrix{S}=
\begin{bmatrix}
1+s&0&0\\ 0&1/\sqrt{1+s}&0\\ 0&0&1/\sqrt{1+s}
\end{bmatrix}
$$
\noindent where
the scaling value $s$ is proportional to the speed of the velocity component:
$$s = k_{\text{squash}} \,\| \TraVelViBi \| $$

\emph{For rotating bone motions,} the scaling resembles the effect of a centrifugal force generated by a spin. In this case, for each bone $\Bi$, we identify a \emph{medial axis}, as, intuitively, an axis expected to run approximately through the interior of the shape; as a default,
we define it as the axis connecting $\vec{c}_\Bi$ with $\PosBi$ (magenta line in Figure~\ref{fig:SquashyRot}), but again this choice can be tuned.
Then, we want the squash effect not to produce any elongation or shrinking along this axis.
Let $Pr$ be the operator projecting a point into this medial axis.
The formula for the displacement is then given by
\begin{equation}
\label{eq:RotFunSquash}
\RotFun_{\text{squash}} (\RotVelViBi ) = (\matrix{R} \, \matrix{S} \, \matrix{R}' \, - \, \matrix{Id} ) (\PosVi - Pr(\PosVi)  ) \,,
\end{equation}
\noindent where $\matrix{R}$ is the rotation that maps the $y$-axis parallel to medial axis, and maps the $z$-axis as close as possible to $\AngVelBi$
When $\AngVelBi$ is parallel to the medial axis, then $\matrix{R}$ is undefined, and  $\RotFun_{\text{squash}}$ is simply zeroed.  $\matrix{S}$ is the following anisotropic, volume-preserving scaling matrix:
$$
\matrix{S}=
\begin{bmatrix}
1+s&0&0\\ 0&1&0\\ 0&0&1/(1+s)
\end{bmatrix}
$$
\noindent where the scaling value $s$ is proportional to the magnitude of of the relevant velocity component:
$$s = k_{\text{squash}} \,\| \RotVelViBi \| $$

\subsection{Floppy deformations} \label{sec:floppy}

The floppy deformer is inspired by an exaggeration effect described by classic animators~\cite{illusionOfLife} as ``\textit{The loose flesh [...] will move at a slower speed than the skeletal parts. This trailing behind in an action is sometimes called `drag', and it gives a looseness and a solidity to the figure that is vital to the feeling of life.}'' which is taken from a passage about their rule for Follow Through and Overlapping Action.
We adopt the term ``floppy'' to describe this effect. Intuitively, this effect stems from the skin vertices appearing to move with a delay (or \emph{drag}) with respects to the initiating bone movement; we obtain this by displacing vertices opposite to the velocity induced by each  individual bone.

\emph{For linear bone motions,}
this is achieved by simply displacing the vertex in the opposite direction of the linear velocity induced by bone $\Bi$:
\begin{equation}
    \TraFun_{\text{floppy}}( \TraVelViBi ) = -k_{\text{floppy}} \, \TraVelViBi
\end{equation}
with the ``floppiness'' value, $k_{\text{floppy}}$, reflecting how pronounced the effect must be (this value can be defined per vertex, see Section~\ref{sec:painting}).

\emph{For rotating bone motions,}
 the delay produces a bending (rotation) around the current axis rotation of bone $\Bi$ (that is, the axis passing through $p_i$ and aligned with $\omega_i$), in the opposite direction:
\begin{equation}
    \RotFun_{\text{floppy}}( \RotVelViBi ) = (\matrix{R}-\matrix{Id} ) (\PosVi-Pr(\PosVi) )
    \label{eq:RotFunFloppy}
\end{equation}
where $Pr$ is the operator projecting $\PosVi$ on the rotation axis, and $\matrix{R}$ is the rotation matrix around said axis with angle
$$
\label{eq:angle}
\theta = - k_{\text{floppy}} \, ||\RotVelViBi|| \,.
$$
Crucially, as $||\RotVelViBi||$, and thus $\theta$, increase linearly with the distance to the bone (as per Equation~\eqref{eq:joint}), the displacements induced by Equation~\eqref{eq:RotFunFloppy} is not linear, resulting in naturally looking deformations that curve the profiles (as exemplified in Figure~\ref{fig:bendyarm}).
\final{In addition, the advantage of defining our deformation from the angular velocity of the joint, instead of using per-vertex velocities, is the ability to bend the shape, even by large angles, without introducing unwanted stretch (see  Fig.~\ref{fig:vertex_velocity}}).

\begin{figure}
  \centering
  \includegraphics[width=1.0\linewidth]{vertex_velocity.jpg}
  \caption{\final{
  For a tube (left) and the giraffe model (right), (a.) is the initial shape with an arrow indicating motion. The drag deformation using velocity-skinning (b.) adequately models bending, while the use of per-vertex velocities produces a stretching effect (c.).

  }}
  \label{fig:vertex_velocity}
\end{figure}
\section{Deformer Controls}\label{sec:interface}

In this section we introduce interactive mesh deformation tools which allow simple customization of parameters
with simultaneous visualization of their effect on the character.

\begin{figure}
  \includegraphics[scale=0.13]{weightpaint.jpg}
  \caption{Weight painting: left column, painting interface allows positive (cyan) and negative (magenta) weights to dictate the influence of the skinning effects. Left center column, representative image after weights are applied.  Note top row equivalent to standard skinning with no effects on the outcome.  Right, example paintings
  that show weights in practice on a three different models.}
  \label{fig:Weight}
\end{figure}

\emph{Per-vertex painting.}\label{sec:painting}
$k_{\text{floppy}}$ and $k_{\text{squash}}$ weights (see Section~\ref{sec:squashyFloppy}) can be set non-uniformly over the surface in defining them as a per-vertex scalar value. These weights can be interactively painted over the surface using a readily available brush-like tool in standard modeling software.
Non-uniform weights allow the user to express local effects that could not necessarily be captured by the animation skeleton.
Auxiliary "phantom" bones (a.k.a. helper bones) are not required, we just need to set high weights values to make parts of the mesh look softer, or zero weight values to make them look rigid. Non-uniform weights can bring stylization effects even in the extreme case of a mesh associated with a single joint.
This is illustrated by the bird in Figure~\ref{fig:Weight}-left, experiencing a rigid translation of its single joint, positioned at its center. The non-uniform floppy-deformation weights used for the wings (blue color) locally enhance motion.
An extra degree of freedom can be used in associating negative values to weights -- thus making deformation occur in \emph{anticipation} of bone motion, instead of having skin parts \emph{drag} behind. Lastly, the combination of positive and negative weights enables either synchronized motion or may provide a sense of action/reaction such as a birds flapping its two wings in one direction and in the opposite one (see bird wings in the accompanying video and in the interactive online demonstration).

\begin{figure}
  \includegraphics[width=0.9\linewidth]{axis3.jpg}
  \caption{Squashy deformer applied to the neck of a giraffe model. The magenta dot is the \emph{centroid} $\vec{c}_\Bi$ for the lowest neck bone, and the magenta line, its \emph{medial axis}. These artist-tunable parameters are the centers for translation and rotation, for the squash effect.}

  \label{fig:SquashyRot}
\end{figure}

\emph{Per-bone control.}\label{sec:bone-control}
A coarse-level controller is added to manage which bones are affected by each effect.  In
this manner, entire branches can be removed (e.g. the legs in a walking motion) to assure
the intent of the keyframe animation is not impacted negatively.  Further, the bones that
receive the effect can be controlled with finer granularity, by setting the weights
of all bones, separately.  This includes a split of the rotational and translational
components of each.  The artist supplemental video highlights more of the distinctions
that can be made through this level of control.

\emph{Squashy-specific controls.} \label{sec:manualBoneCenter}
We provide interactive control for the squash effect, in allowing the user to interactively move the centroid \(\vec{c}_\Bi\) associated with a bone (see Section~\ref{seq:squashy} and Figure~\ref{fig:SquashyRot}). This enables a fine tuning of the center or the axis around which the elongation and compression are applied for each bone, similar to the scale-pivot interface of standard 3D packages. The user-displacement applied to \(\vec{c}_\Bi\) is stored as an offset expressed in the local coordinate frame of the bone, and is therefore automatically adjusted during the animation. In addition, the user can force the squashy effect to act with respect to a single position instead of an axis. While the squash effect around an axis is well adapted for rotating limbs, the user may rather apply the effect of end-effector bones with respect to the local centroid
in specific cases.

\emph{Floppy-specific controls.}
The floppy effect is similar to the surface-bending effect in some 3D modeling packages.
However, ours is automatically scaled with the speed (to add the appearance of dynamics effects) and the floppy weight values (to give higher controllability). When high speed animation is used, this bending deformation may get exaggerated above plausible (desired) range. We integrate a simple interactive limiter defined as a maximal allowed bending angle for \(\theta\) from Section~\ref{sec:floppy}, illustrated in Figure~\ref{fig:max-angle}. This allows the user to model salient floppy effects for a character exhibiting both slow and high speed motions, while ensuring that high speed related deformations remains in the admissible range.

\begin{figure}[h!]
\includegraphics[width=\linewidth]{angle_limit.jpg}
\caption{
Deformation of a straight cylinder, when the right-bone rotates counter-clockwise. Left: High speed or large floppy weights may lead to exaggerated bending deformation. Right: A maximal bending angle (in this case $45^{\circ}$) is set to bound the deformation.
}
\vspace{-1em}
\label{fig:max-angle}
\end{figure}

\emph{Deformation Visualizer.}
Interactive tuning of time-dependant deformation can be a complex task, while fine tuning is easier in static poses. The deformations we generate, however,  fundamentally rely on velocity, although not directly on a time variable. Therefore, constant linear and angular velocity values can be artificially attached to bones, allowing a visualization of the induced deformation in a static pose/velocity space. The velocity (as well as the different parameters described previously) can then be interactively modified, while the deformation is updated accordingly. To ease the visualization of the deformation with respect to the input skin mesh, as well providing insight about the underlying motion and speed, our visualizer traces the trajectory that vertices would follow when the velocity magnitude of bones increase from 0 to the set values (see Figure~\ref{fig:trajectory}). This tool offers an enhanced, visual understanding of the modeled deformation, independent from the final skeletal animation, and provides visual cues enabling tuning of velocity skinning effects from a static pose.

\begin{figure}[h!]
\includegraphics[width=0.9\linewidth]{trajectory.jpg}
\caption{
Trajectory followed by skin vertices moving from standard LBS (depicted as a transparent surface), to
\textit{velocity skinning} deformation (opaque surface).
Top: Floppy effect after bending the giraffe neck (left), and twisting the cow head (right). Bottom: Squashy effect after twisting the giraffe neck (left), and multiple floppy deformations applied on different parts of the dragon (right). }
\label{fig:trajectory}
\end{figure}

\section{Implementation} \label{sec:implementation}
\section{Data flow of Velocity Skinning} \label{sec:implementation}
\label{sec:algorithm}

Velocity skinning is well suited to standard real-time animation pipelines, since it follows the same setup both at pre-processing and at run-time stages.
In particular, the independence between animation steps is well preserved, as all the data needed at run-time (in addition to skinning) can be stored separately for each skinned model (independently from the animations), and for each skeletal animation (independently from the models).

\emph{Pre-processing a skinned model.}
At this stage and for each model, we propagate original bone weights along the skeleton structure to compute velocity weights using Equation~(\ref{eq:AncWei}), and store them per vertex. User-defined \emph{drag} bounds and weightings (see Section~\ref{sec:painting}) are also stored as vertex attributes of the skinned model. We also compute the centroid of each bone (Equation~(\ref{eqBarycenters})), and store the manually tuned offset the user may add (see Section~\ref{sec:manualBoneCenter}).

\emph{Pre-processing a skeletal animation.}
Given an animation (defined as a skeleton pose per keyframe) per-bone angular and linear velocities are extracted using derivatives of the joint trajectory curves as explained in Section~\ref{sec:vel}.
Our approach can accommodate arbitrary animation inputs such as parametric key-framed animations, procedural motions, as well as interactive run-time manipulations. To avoid discontinuity artifacts coming from sudden changes of position, these velocities can be smoothed-out by time averaging.

\emph{At run-time.} After per-animation and per-model data are prepared or generated, final deformations are computed on-the-fly thanks to their closed-form formulation.
In contrast to a physically-based approach, this fully kinematic procedural approach requires no book-keeping of previous states, resulting in a single-pass method, fully applied at run-time. In
our experimentation, we applied velocity skinning on top of two standard skinning approaches, LBS and DQS, and it has a comparable memory footprint and workload to non-velocity skinning implementations.

\section{Implementations and Results}

\begin{figure*}[th]
  \includegraphics[width=\linewidth]{cthulu.jpg}
  \caption{
  Velocity skinning applied on a detailed mesh,
  thanks to our GPU implementation. The blue arrows indicates the main motions, while the green arrows highlight some noticeable effects of our deformers. Left: Comparison of LBS (top) and velocity skinning (bottom) on two extreme poses when constant floppy weights are used. Velocity skinning automatically enhances the motion in bending the wings and the tentacles based on their respective bones motion. Middle: Shape variations of the wing applied by the floppy deformer, the "neutral"-LBS pose being the middle one. Right: Computing automatic per-vertex weights based on local shape diameter allows to apply more deformation on mesh details, thus mimicking a lower stiffness on small protruding elements.}
  \label{fig:cthulu}
\end{figure*}

\begin{table*}[ht]
    \centering
    \begin{tabular}{r||c|r|r|c||r|r||r|r}
         \multicolumn{1}{c||}{\multirow{4}{*}{Scene}} &
         \multicolumn{4}{c||}{\multirow{2}{*}{Complexity (number of)}} &
         \multicolumn{2}{c||}{GPU} &
         \multicolumn{2}{c}{Computing time} \\
         %
         &
         \multicolumn{4}{c||}{} &
         \multicolumn{2}{c||}{memory} &
         \multicolumn{2}{c}{(per frame)} \\ \cline{2-9}
         %
         &
         \multicolumn{1}{c|}{\multirow{2}{*}{Models}} &
         \multicolumn{3}{c||}{per model} &
         \multicolumn{1}{c|}{\multirow{2}{*}{LBS}} &
         \multicolumn{1}{c||}{\multirow{2}{*}{VS}} &
         \multicolumn{1}{c|}{\multirow{2}{*}{LBS}} &
         \multicolumn{1}{c}{\multirow{2}{*}{VS}}  \\
         %
         &
         &
         \multicolumn{1}{c}{vert} &
         \multicolumn{1}{c}{tri} &
         \multicolumn{1}{c||}{bones} &
         &
         &
         &
          \\ \hline \hline
        %

        \multirow{6}{*}{Flying Cthulhu} &
         \multirow{2}{*}{1} & \multirow{2}{*}{150k} & \multirow{2}{*}{300k} & 1 &
         \multirow{2}{*}{13 MB} & \multirow{2}{*}{21 MB} & \multirow{2}{*}{3.9 ms} & 8.0 ms  \\ \cline{5-5}\cline{9-9}
         %
        & & & & 12 &
          &  &  & 8.7 ms  \\ \cline{2-9}

         &
         \multirow{2}{*}{1} & \multirow{2}{*}{250k} & \multirow{2}{*}{500k} & 1 &
         \multirow{2}{*}{22 MB} & \multirow{2}{*}{35 MB} & \multirow{2}{*}{6.6 ms} & 13.9 ms  \\ \cline{5-5}\cline{9-9}

         & & & & 12 &
          &  & & 14.4 ms  \\ \cline{2-9}
         %
         &
         \multirow{2}{*}{1} & \multirow{2}{*}{750k} & \multirow{2}{*}{1500k} & 1 &
         \multirow{2}{*}{64 MB} & \multirow{2}{*}{106 MB} & \multirow{2}{*}{18.7 ms} & 34.8 ms  \\ \cline{5-5}\cline{9-9}
        %
         & & & & 12 &
          &  &  & 36.7 ms  \\ \hline

         \multirow{2}{*}{Cow's meadow}&
         \multirow{2}{*}{4000}&
         \multirow{2}{*}{3.2k}&
         \multirow{2}{*}{5.8k}&
         \multirow{2}{*}{7}&
         \multirow{2}{*}{1.7 MB}&
         \multirow{2}{*}{2.4 MB}&
         \multirow{2}{*}{17.2 ms}&
         \multirow{2}{*}{39.0 ms}  \\
         & & & & &  &  &  &   \\ \hline

    \end{tabular}
    \caption{Timings and memory usage measured on different scenes, animated on GPU with standard Linear Blend Skinning (``LBS'') and  Velocity Skinning (``VS''). GPU memory includes the storage all precomputed parameters.

    Average timings are shown, but minimal and maximal stay in a range  of \(\pm 0.5ms\). Bones indicates the actual number of bones that have a non-zero motion - thus generating a Velocity Skinning deformation on the mesh. }
    \label{tab:timings}
\end{table*}

For testing purposes, we implemented Velocity Skinning in three working prototypes, which were used to produce all the rendering in the figures in this paper
and in the accompanying videos. The source code of all three prototypes is provided in the supplemental material.

 The first implementation is a stand-alone, CPU-based desktop application, serving as a reference implementation for Velocity Skinning. It displays Velocity-Skinned animations, and doubles as an tool for authoring Velocity-Skinned meshes, by allowing an user to set the controlling parameters for a given model, and see the resulting deformation with with a given animations.

In order to explore the range of effect which can be achieved,
 and as a preliminary test of the authoring interface,
we solicited the assistance of a set of animators: two novices (first-year digital-art graduate students) and two professionals (with 5-10 years experience
in the commercial sector).
The animations appear within the primary video along with the representative
research results, but the process of adding effects is also highlighted in a supplemental video with side-by-side animations that showcase the input and
output of our system.  This video is narrated by one of the (first-year) animators describing the addition of effects in a ``tutorial'' style.  The findings suggest our tools can add controllable effects to animations from both categories, novice and professional.  Namely,
the novice animations benefited from adding coarse effects (e.g. the whole head
of the cow model) while the more refined professional animations only needed small,
more subtle additions to push the existing animations further.  An example of the
latter would be using weight painting to isolate floppy effects to the ears and tail of the cow which do not include rig-bones in our stylized model (see Figure~\ref{fig:teaser}-left). Another example is illustrated in Figure~\ref{fig:snail_history} by a snail with different weights on its respective eyes, body and shell parts.
In a post interview, the (professional) animator of the walk-cycle animation stated that it would take him an approximated three hours in Maya, based on his experience, to add the effects we introduced through our tools.  It took a less-skilled animator less than an hour to produce the shown result.
See the video for more details of this hands-on experimentation.

The second implementation is an interactive web-based demo that displays animations on a small set of character models, intended to showcase the effects that can be achieved with Velocity Skinned. It enables users to compare Velocity Skinning with standard blend skinning, and to test different pre-made set of parameters, which are customized for
specific characters. The web-demo is based on WebGL, but computes the deformation on the CPU side. It can be accessed at \href{https://velocityskinning.com}{https://velocityskinning.com}.

The third implementation is a fully GPU-based desktop application, implementing Velocity Skinning in a vertex shader. It is intended to empirically evaluate the scalability of Velocity Skinning in a video-game or similar context. In this implementation, the different pre-processed parameters, including rig-weights and its propagated version as well as skeleton poses, are sent to the GPU memory as buffer objects, and accessed in the shader.

We tested this system on different scenarios: scenes composed by a single large model, with 300k, 500k and 1.5 millions of triangles (three resolution levels of a ``Cthulhu'' model~\cite{cthulhu}) illustrated in Figure~\ref{fig:cthulu}, and a scene with 4000 individually animated instances of a low-res "cow" models of 3200 vertices each (see Figure~\ref{fig:teaser}-right). To isolate the impact of the number of bones, we also compared the performances with the large model using only one animated bone. In each case, we compare against the case of Linear Blend Skinning. Table~\ref{tab:timings} reports total GPU memory usage, and render times measured on a consumer laptop in all scenes (GPU: NVIDIA Quadro P3200; CPU: Intel Core i7 2.6GhZ CPU).
 %

This experiment indicates that velocity skinning can easily fit to low budget computation, allowing for real-time rendering even in presence of high-resolution mesh, and complex scenes.

\begin{figure}
  \includegraphics[width=\linewidth]{dragontail.jpg}
  \caption{This dragon has a minimal number of bones in its wings and tail, left column shows the rest post and skeleton.  Through velocity skinning, a rich flapping and wagging animation (right, frames) can be added automatically to augment the limited skeleton animation.  See accompanying video for more detail.}
  \vspace{-2em}
  \label{fig:Dragon}
\end{figure}
\begin{figure*}
  \includegraphics[width=\linewidth]{snail.jpg}
  \caption{Example of deformations generated using time-varying skeletal velocities from a single skeleton pose. Floppy weights are shown in the second image: zero on the shell; negative weights on the eyes; and positive weights on the rest of the body. The squash effect is applied uniformly on all parts of the shape.
  }
  \label{fig:snail_history}
\end{figure*}

\section{Discussion and Conclusion} \label{sec:discussion}

We introduced a new technique, velocity skinning, which enriches standard skinning with automatic stylization, without significantly impacting computational times. The main idea is to add a displacement at each vertex, computed from the velocities of the bones with non-zero local LBS weights.
We demonstrated the usefulness of the method with two specialized deformers generating squashy and floppy deformations, designed in accordance with two classic animation principles.
The resulting technique is finely controllable via a set of easily edited controls, such as ``painting'' the extent of the individual effects on the 3D model.

A key of the simplicity and thus efficiency of velocity skinning is the additive nature of the applied displacement (i.e. all the procedural displacements derived by individual bone motions, across all stylization effects, are simply added up).
This is justified by the central observation that vertex velocities can be decomposed as a weighted sum of skeletal influences.
However, because the deformation functions $\Fun$ are in general not linear with velocity, this is only an approximation which degrades as deformations grow.
Thus, velocity skinning cannot be expected to always give good results, especially for extreme deformations or special conditions, for example when mixing large deformations induced by velocities with different directions.
In spite of this, our experiments indicate that velocity skinning is able to produce expressive stylized animations under many useful scenarios, such as when the skinned mesh is animated by a rig with only a few joints (see Figure~\ref{fig:Dragon} or the web demonstration).

To be clear, our method is not physically based and therefore the animations we produce will not necessarily be realistic. Velocity skinning is not intended as a replacement for dynamic simulation, although it may look similar to it when well tuned.
A \final{benefit} of our method compared to simulation is that any per-vertex displacement is applied instantaneously, and can be computed independently for each frame.
We hypothesize that accounting for acceleration terms in addition to velocity will narrow the gap, and we plan to experiment with this in future work. Another future research direction would be to apply data-driven training to the models, in order to make the velocity skinning weights match a physical simulation.
\final{Visual appearance may degrade under various settings, especially when summing different contributions in
opposite directions.  For example, applying fast and opposite rotations on successive joints can result in undesirable scaling. In our experiments, such
artifacts were only visible in carefully crafted and exaggerated
examples such as the one
shown in Fig~\ref{fig:limitation}. Otherwise, the animation remained surprisingly well-behaved, without visible artifacts, even when the deformation was quite large.
An additional limitation of the current implementation is that motion applied to the end effectors of a character will not propagate backward within the hierarchy - this effect would require dynamic adaptation of the skeleton hierarchy. Therefore, our method cannot achieve contact-like effects and IK-guided motion (contrasting further with~\cite{zhang2020}).
}
\begin{figure}[th]
  \includegraphics[width=0.95\linewidth]{limitation.jpg}
  \caption{\final{Limitations of the deformers. Top: applying two consecutive and opposite rotations to the giraffe neck induces scaling artifacts on its head. Bottom: The highly floppy ears of the cow self intersect with the geometry when increasing the velocity of motion.}}
  \label{fig:limitation}
  \vspace{-0.5cm}
\end{figure}

From the \emph{end-application} point of view,
velocity skinning adds a only limited overhead on top of standard LBS: both are single-pass techniques that fit interactive applications as well as a GPU pipeline. The largest impact stems from the fact that weights \(\AncWeiViBi\) are not as sparse as \(\WeiViBi\), because they are propagated along the skeleton hierarchy. As such, velocity skinning cannot offer the same range of optimizations available for standard skinning, where the number of bone-links per vertex is commonly limited to a constant between 2 and 8.
 %
 %
 %
Still, the technique is amenable in practice for real-time resource critical settings, as indicated by our implementations.
Further research could be developed to allow a fast, closed-form update of velocity-skinned normals for accurate illumination,
as can be done with basic skinning \cite{skinNormals}.

For velocity skinning to be generally adopted, it also needs to be amenable to be included in existing \emph{asset-creation pipelines}.
As a first exploratory step, we made efforts to offer specialized interface handles for animation control. While we were able to solicit limited animator help in the production of some animations in the corresponding video, and we received very positive feedback, more extensive testing
in the field would help identify bottlenecks and give stronger evidence for the utility and benefits of the approach. While we feel
the introduction of the fundamental approach is a stand-alone contribution and we have made some effort to offer a practical implementation for animation control, extensive user testing is an important next step.

In summary, velocity skinning offers a new path to include automatic, stylized deformations and holds great potential for both offline and interactive future animation effects.

\section*{Acknowledgement}

\final{We acknowledge and thank Paul Kry, Kenny Erleben, and all attendees of the 2020 McGill University Bellairs workshop, the origin of this work, for the fruitful discussions and input. We would also like to thank the artists, Rodney Florencio Da Costa, Kayla Rutherford, and Mohammad Saffar that offered their help and feedback in our usability study.\\
\begin{minipage}{0.15\linewidth}
\includegraphics[width=0.9\textwidth]{flag_yellow_high_250x166.jpg}
\end{minipage}
\begin{minipage}{0.85\linewidth}
This project has received funding from the European Union's Horizon 2020 research and innovation programme under the Marie Sklodowska-Curie grant agreement No. 764644.
\end{minipage}
This paper only contains the author's views and the Research Executive Agency and the Commission are not responsible for any use that may be made of the information it contains.}
\section{Derivation of Equation~(\ref{eqVelSkinning2})}
\label{sec:derive}
Starting from Equation~\eqref{eqVelSkinning}:
\begin{equation*}
\begin{split}
 \VelVi
 & = \sum_\Bi{ \WeiViBi  \left( \sum_{\Bj\in \Anc(\Bi)}{ \VelViBj }  \right) } \\
 & = \sum_\Bi{ \sum_{\Bj\in \Anc(\Bi)}{ \WeiViBi \, \VelViBj } } \\
 & = \sum_\Bi{ \sum_{\Bj} { B\left(\,\Bj \in \Anc(\Bi)\,\right) \, \WeiViBi \VelViBj } } \\
 & = \sum_\Bj{ \sum_{\Bi} { B\left(\,\Bj \in \Anc(\Bi)\,\right) \, \WeiViBi \VelViBj } } \\
 & = \sum_\Bj{ \sum_{\Bi} { B\left(\,\Bi \in \Des(\Bj)\,\right) \, \WeiViBi \VelViBj } } \\
 & = \sum_\Bj{ \sum_{\Bi \in \Des(\Bj)} { \WeiViBi \VelViBj } } \\
 & = \sum_\Bj{ \VelViBj \left( \sum_{\Bi \in \Des(\Bj)} {  \WeiViBi  } \right) }
\end{split}
\end{equation*}
\noindent
Where $B$ is the conditional function, such that $B(\mathrm{true})=1$ and $B(\mathrm{false})=0$,
and, the 5th line uses the equivalence $$ \Bj \in \Anc(\Bi) \Leftrightarrow \Bi \in \Des(\Bj) $$
At the end, renaming $(i,j)$ as $(j,i)$, and substituting with Equation~\eqref{eq:AncWei}, gives Equation~\eqref{eqVelSkinning2}.
\section{Bone-centroids as barycenters} \label{sec:baricente}
Using the simplifying assumption that the mass of the model is only concentrated at its surface,
we approximate the barycenter of the portion of the model affected by a given bone $\Bi$ as:
\begin{equation}
\label{eqBarycenters}
 \vec{c}_\Bi =
 \left. \sum_\Vi{ \DesWeiViBi \MasVi}  \PosVi \middle/ \sum_\Vi{ \DesWeiViBi \MasVi } \right.
\end{equation}
where $\MasVi$ is the area of the Voronoi cell associated to vertex $\Vi$ (that is, one third of the areas of all triangles associated to  $\Vi$).
and $\DesWeiViBi$ is
the downward propagated vector (see Figure~\ref{fig:propweights}, bottom) given by \(\DesWeiViBi =  \sum_{ \Bj \in \Anc(\Bi)}{ \WeiViBj } \)

redpajama_set_name: RedPajamaArXiv


text:
package com.example.offline.domain;

import com.example.offline.model.Comment;

import io.reactivex.Completable;

public class UpdateCommentUseCase {
    private final LocalCommentRepository localCommentRepository;

    public UpdateCommentUseCase(LocalCommentRepository localCommentRepository) {
        this.localCommentRepository = localCommentRepository;
    }

    public Completable updateComment(Comment comment) {
        return localCommentRepository.update(comment);
    }
}

redpajama_set_name: RedPajamaGithub


Moon Doggie is a painting by Catherine Moore which was uploaded on October 6th, 2010.
This goddess is training her beloved puppy. She's showing him that the moon is friendly and not to be afraid of new adventure. She hold a rose bud and is free and happy playing in the clouds.


Our target should be to consolidate and improve the high-quality and repair of current goods, in the meantime regularly produce new solutions to meet unique customers' needs for 1 2m Concert Crowd Control Barrier , 1.2m Concert Crowd Control Barrier , 1.2mConcert Crowd Control Barrier , credit is our life.
"Dedicated to strict quality manage and thoughtful buyer company, our experienced workers members are generally available to discuss your specifications and make certain full consumer gratification for 1 2m Concert Crowd Control Barrier , 1.2m Concert Crowd Control Barrier , 1.2mConcert Crowd Control Barrier , Due to the changing trends in this field we involve ourselves into products trade with dedicated efforts and managerial excellence. We maintain timely delivery schedules innovative designs quality and transparency for our customers. Our moto is to deliver quality products within stipulated time.


About living for the summer. Prolific for Spain's U21 side (15 goals in 16 appearances at the time of writing including a brilliant performance against Denmark where he scored 4 - his initial hat-trick in just 6 minutes) he was one of a number to impress in that side that walked their way to the European Championship title this summer in Israel. Fighting with Alvaro Morata for the central striking position in Spain's front three he generally found himself second choice but did see plenty of game time in the tournament and scored Spain's opener in their semi-final with Norway. Comparison is always flawed but at times he looked like Fernando Torres at his best, the pace and power taking him beyond defenders with ease, the finishing emphatic.
Away from the U21 squad and the unerring passing of Thiago, Isco, Koke and Illarramendi, club life has been harder. Goals have been tough to come by with Benfica and he's spent far longer on the subs bench than he would have liked, nowhere near close enough to nudging Oscar Cardozo or Lima out of the first eleven. Often played out of position it's all gone a little bit flat, the excitement dwindling at the same rate as his form. A recent last-minute winner in the Europa League against Anderlecht and another goal scored against Arouca should hopefully give him some confidence and we hope he puts on a run good enough to force his way into the first team.
If over the remainder of the season things don't get going we would urge him to look for a season-long loan somewhere he's going to get plenty of game time. He can more than look the part, so much so Tottenham remain very interested in bringing him to London at some point in the future, but at the moment we can't help feeling he'd be a long way out of his depth in the Premier League.
All the raw materials are there and as a great joke once said, he can play all the right notes but not necessarily in the right order. Like any young striker he needs to play in the position he's most comfortable for long enough to get himself into form, he scored 9 times in his first season at Benfica but looks a way short of being a double-figures striker at the moment. A small but significant rebuilding job needs to take place, he may not be match some of his U21 team mates over the course of his career but he can get close if he learns to adapt a bit better.
This all sounds negative but we don't mean to be, it's just the initial pops and bangs have died down and we're left wanting a few more. The talent is there and his work rate has never dipped, we just hope he can get enough time on the pitch to find his best form.


text:
Google Doodle Celebrates Mary G. Ross. Here's What to Know About the First Native American Woman Engineer
Google Doodle celebrates the 110th birthday of Mary G. Ross on August 9, 2018.
By Casey Quackenbush
August 9, 2018 5:00 AM EDT
Today's Google Doodle celebrates the 110th birthday of Mary G. Ross, the first Native American woman engineer. Over the course of her five-decade career, Ross achieved many firsts and made major contributions to the aerospace industry.
Here's what to know about the trailblazer, born on Aug. 9, 1908, who opened the doors for future female engineers in the field.
Who Was Mary G. Ross?
Great-great granddaughter to Chief John Ross of the Cherokee Nation, Mary G. Ross was born in the small town of Park Hill in Oklahoma. Raised with the Cherokee value of learning, Ross pursued a path considered nontraditional for women. After receiving a degree in math from Northeastern State College, Ross taught math and science until she returned to school to earn her master's in math from Colorado State College of Education.
What were her contributions to aerospace?
In 1942, Lockheed Missiles and Space Company hired Ross as mathematician. But after a manager recognized her talent, Ross was sent to UCLA to earn a classification in aeronautical engineering. Lockheed then rehired her as their first female engineer. Ross would go on to work on major projects such as the Agena rocket, which was a crucial step in the Apollo program to land on the moon. She also was a part of SkunkWorks, a top-secret 40-member think tank where she was the only women aside from the secretary. Ross' work there involved developing initial design concepts for interplanetary space travel, including flyby missions to Venus and Mars.
"Often at night there were four of us working until 11 p.m.," she once said according to Google. "I was the pencil pusher, doing a lot of research. My state of the art tools were a slide rule and a Frieden computer. We were taking the theoretical and making it real."
Mary G. Ross
Courtesy of Evelyn Ross McMillan/Google Doodle
How did she open the door for women?
Ross also devoted herself to encouraging women and Native Americans into careers in the field of STEM. She was a fellow of the Society of Women Engineers, where she established a scholarship in her name to support future female engineers and technologists. To support fellow Native Americans, Ross also worked closely with the American Indian Science and Engineering Society and the Council of Energy Resource Tribes to develop their educational programs.
According to the National Science Foundation, only 0.1% of those working in science and engineering are female American Indians. And according to the U.S. Bureau of Labor Statistics, only 8.1% of employed aerospace engineers are women.
Mary G. Ross died on April 29, 2008 at the age of 99.
Thursday's Doodle depicts Ross' portrait over a blueprint of the Agena rocket with the Earth and stars in the background.
'The Best Thing That Ever Happened to Chickpeas.' Google Celebrates Falafel With a Doodle
Where Is Alibaba Founder Jack Ma?

redpajama_set_name: RedPajamaCommonCrawl


text:
IMMIGRATION WARNING Officers' union raises alarm over work permits order
A union that represents thousands of federal immigration officers is raising an alarm after the U.S. government ordered supplies to create millions of blank work permits and green cards, touching off speculation that the Obama administration may be preparing executive action on immigration.
The Associated Press reported last week that the new federal contract proposal from the Homeland Security Department would allow the government to buy enough supplies to make as many as 34 million immigrant work permits and residency cards over the next five years. The move appeared to suggest that the administration is preparing for a surge of work permit applications from illegal immigrants.
Kenneth Palinkas, the president of the National Citizenship and Immigration Services Council, said in a press release Monday that he believes the move indicates the administration is planning to enact "massive unilateral amnesty" after the midterm elections.
"…If you care about your immigration security and your neighborhood security, you must act now to ensure that Congress stops this unilateral amnesty," he said. "Let your voice be heard and spread the word to your neighbors. We who serve in our nation's immigration agencies are pleading for your help – don't let this happen. Express your concern to your Senators and Congressmen before it is too late."
The union represents 12,000 officers of U.S. Citizenship and Immigration Services, the agency responsible for processing visas and other immigration papers. Palinkas said federal immigration officers are already struggling to complete their mission, and the new contract indicates things could get worse.
"Whether it's the failure to uphold the public charge laws, the abuse of our asylum procedures, the admission of Islamist radicals, or visas for health risks, the taxpayers are being fleeced and public safety is being endangered on a daily basis," he said.
When asked about the contract last week, White House Press Secretary Josh Earnest said it was being blown out of proportion.
"I think those who are trying to read into those specific orders about what the president may decide are a little too cleverly trying to divine what the president's ultimate conclusion might be," Earnest said. "What I would caution you against is making assumptions about what will be in those announcements based on the procurement practices of the Department of Homeland Security."
The U.S. government produces about 3 million work permits and residency identification, known as green cards, annually. The new contract for at least 5 million cards a year would provide the administration with the flexibility to issue far more work permits or green cards even if it chose not to exercise that option.
Obama announced earlier this year that if Congress didn't pass immigration legislation, he would act on his own. After twice postponing a final decision, he said as recently as last month that he would hold off on executive actions until after November's midterm elections.
Source Article from http://www.foxnews.com/politics/2014/10/28/immigration-officer-union-sounds-alarm-over-white-house-order-for-millions/
http://www.foxnews.com/politics/2014/10/28/immigration-officer-union-sounds-alarm-over-white-house-order-for-millions/
http://news.search.yahoo.com/news/rss?p=immigration
immigration – Yahoo News Search Results
カテゴリー: Immigration 作成者: admin パーマリンク


text:
Molly's Game Book Summary
games November 12, 2021
Hundreds of millions of dollars were won and lost at her table. Molly bloom tells her story in "molly's game" with a reflective and sharp voice, detailing her early life and how she came to be known as the "poker princess" of hollywood.
Mollys Game Audiobook Molly Bloom Audiblecouk
Molly's game is a memoir written by molly bloom about her time as the poker princess when she was responsible for organising high stakes poker games among hollywood's elite, business tycoons and other stonkingly rich types and how she subsequently fell foul of the fbi.
Molly's game book summary. In the text on page 20 molly says this girl, i decided, was mine. *free* shipping on qualifying offers. Molly bloom tells her story in molly's game with a reflective and sharp voice, detailing her early life and how she came to be known as the poker princess of hollywood.
We cannot guarantee that every book is in the library. E paige moscicki b g m 1 p molly's story f a summary e plot summary introduction a girl named cj adopts a dog named molly and when molly sees her, she knows cj was hers to take care of. As thrilling as it is warning, the novel has received attention from all quarters and has been adapted into a major motion picture.
Molly bloom tells her story in molly's game with a reflective and sharp voice, detailing her early life and how she came to be known as the poker princess of hollywood. Inspired by bloom's memoir of the same name, "molly's game" bounces back and forth in time between molly's arrest by the fbi for running an illegal gambling operation and her efforts to persuade a new york lawyer (an excellent idris elba) to represent her and flashbacks to how she built her glittering empire. The film begins with background on molly bloom's life.
Her players included hollywood royalty, sports stars, business titans and finally, unbeknownst to her, the russian mob. Her clients ranged from iconic stars like leonardo dicaprio and ben affleck to politicians and financial titans so powerful they moved markets and changed the course of history. In her bestselling book molly's game:
In her bestselling book molly's game: In her bestselling book molly's game: Download full summary of molly s game by molly bloom conversation starters books pdf, epub, tuebl, textbook, mobi or read online summary of molly s game by molly bloom conversation starters anytime and anywhere on any device.
Actress jessica chastain (left) in the movie and the real molly bloom (right). Cj's mom, gloria says cj d Molly's story only recently came to my attention because this book has been adapted into a biopic written and directed.
During the late 2000s, molly bloom. Get free access to the library by create an account, fast download and ads free. Molly's game became the game for those in the know celebrities, business moguls, and millionaires.
Molly's game was written and directed by aaron sorkin. As thrilling as it is warning, the novel has received attention from all quarters and has been adapted into a major motion picture. Molly's game is a memoir written by molly bloom about her time as the poker princess when she was responsible for organising high stakes poker games among hollywood's elite, business tycoons and other stonkingly rich types and how she subsequently fell foul of the fbi.
She was on the verge of becoming an olympic skiier when her goal was derailed by a freak accident during her mogul run to qualify for the olympics. We see molly (jessica chastain) as she works for an awful boss, dean keith (jeremy strong) for whom she runs underground game and gets tipped by the players. To learn more about her injury and time as a professional skier, read her book, molly's game:
The injury ended her career and set her on a trajectory through this story. As thrilling as it is warning, the novel has received attention from all quarters and has been adapted into a major motion picture.
Mollys Game Review – Heyuguys
Mollys Game Review Jessica Chastain Ups The Ante In Aaron Sorkin Poker Drama Aaron Sorkin The Guardian
Mollys Game Review Jessica Chastain Is Phenomenal In Aaron Sorkins Poker Drama Drama Films The Guardian
Mollys Game Review Darlingtonian
Early Mollys Game Review Im All In On The Great Poker Princess Movie
Movie Review Rookie Errors Mar Sorkins Directoral Debut Mollys Game Movies Gwinnettdailypostcom
Mollys Game Film Review Spirituality Practice
Review And Analysis Mollys Game
Sinopsis Mollys Game Kisah Permainan Poker Jessica Chastain
Mollys Game Wallpapers – Wallpaper Cave
Mollys Game 2017 – Filmaffinity
Mollys Game A True Inspirational Story Of The Woman Behind The Most Exclusive Poker Game – Hollywood Insider
Mollys Game Review The Film Meister
Mollys Game Review – Den Of Geek
Film Review Mollys Game Times2 The Times
Mollys Game Review Jessica Chastain And Aaron Sorkin Make A Masterpiece
Mollys Game By Molly Bloom Audiobook Audiblecom
Tag : book game mollys summary
Chelsea Game Live Updates
Morning Meeting Games Upper Elementary


text:
Q: We are "here" or "there" What would someone say when they are telling someone that they have arrived at their destination.
Is it:

We are here now

or:

We are there now

A: The topic is the location of we, so use here.

We are here now.

For a different topic, it might be different. For example if you told someone:

We had trouble finding that store, but we are there now.

It is OK to use there when the topic is a specific location you traveled to.

A: In my dialect we say:
We're there
to mean we have arrived at a remote destination, and
We're here
when speaking to someone, to mean we have arrived where that person is awaiting us or has planned to meet us.

redpajama_set_name: RedPajamaStackExchange


My January KnipMode actually arrived a few weeks ago while I was ill, and boy is it a good one. Trouserpalooza!! OMG! Seriously, I think I counted 18 pairs of trousers in here, and 90% of them I'd wear in a heartbeat… There's tapered leg, wide leg, jeans, leggings, treggings, wide waistband, no waistband, knits, wovens, and stretch! You name it, they've got a pattern for it here – they really have got the full trouser rainbow covered here!
How fresh and modern are these cargoes? I love the styling, but the tapered leg really updates these here beyond the stereotypical 90s grunge ex-Army fatigues.
I love these trousers with the foldover front! Seriously, these are on my list of my next tracing batch – I love that these are cutting edge but (crucially) without a drop crotch! They've even got big illustrations to do the foldover bit, too.
Here's a twist on the leggings – how about adding some pintucks and cool seaming and some zips or ankle details?


text:
Kurs Szkolenia Rezerw (KSR) – system przeszkolenia wojskowego studentów i absolwentów uczelni cywilnych, który zastąpił w 2003 roku Szkoły Podchorążych Rezerwy. Obecnie zawieszony.

Kurs dla studentów trwał sześć tygodni (tylko ochotnicy) w czasie wakacyjnej przerwy międzysemestralnej, po zdaniu którego student był mianowany na stopień kaprala podchorążego i przenoszony do rezerwy. Absolwenci uczelni cywilnych, jeżeli nie odbyli służby wojskowej podczas studiów, mogli od ukończenia studiów być powołani na 3 miesięczne przeszkolenie w ciągu 12 miesięcy. Jeżeli nie byli powołani w tym czasie, było to równoznaczne z przeniesieniem do rezerwy.

KSR dla absolwentów był (podobnie jak dawna 6 miesięczna SPR) podzielony na dwie części - 6 tygodniowe szkolenie i 6 tygodniową praktykę w jednostkach wojskowych. Absolwent po zdaniu egzaminu na podoficera (po praktyce) był mianowany na stopień kaprala podchorążego i przenoszony do rezerwy.

Przy powoływaniu do służby brało się pod uwagę takie kwestie jak: potrzeby Sił Zbrojnych RP, kwalifikacje osoby po studiach, a także zaciąg na ochotnika. Przeszkolenie wojskowe studentów i absolwentów prowadziły szkoły oficerskie oraz wojskowe centra szkolenia, takie jak:
 Wyższa Szkoła Oficerska Wojsk Lądowych im. gen. Tadeusza Kościuszki,
 Centrum Szkolenia Wojsk Lądowych im. Stefana Czarnieckiego w Poznaniu,
 Centrum Szkolenia Artylerii i Uzbrojenia im. gen. Józefa Bema w Toruniu,
 Centrum Szkolenia Łączności i Informatyki w Zegrzu,
 Wyższa Szkoła Oficerska Sił Powietrznych w Dęblinie,
 Centrum Szkolenia Sił Powietrznych im. Romualda Traugutta w Koszalinie,
 Centrum Szkolenia Marynarki Wojennej im. wiceadmirała Józefa Unruga.

Student i absolwent ze stopniem kaprala podchorążego może być powołany na ćwiczenia rezerwy oraz na kurs oficerski dla rezerwistów (o ile ma stopień magistra). Przy powoływaniu na kursy oficerskie bierze się takie kryteria jak w/w.

Szkolnictwo wojskowe III Rzeczypospolitej

redpajama_set_name: RedPajamaWikipedia


Prosthetic technology is getting insanely good. But what if we just didn't need it any more? What if we could simply program our genes to regrow human limbs as easily as lizards regrow lost tails? Well, scientists are getting closer to that fantastic future.
A huge team of 19 scientists from around the world just published a paper on the mechanisms behind tail generation in lizards. Specifically, they looked at anole, a type of iguana (pictured above) that can voluntarily drop its tail in the event of an emergency. Then, about 25 days later, the lizard's got his tail back. Like magic!
Actually, it's more like genetics. By taking paper-thin slices of flesh from euthanized lizards at various stages of the regeneration process, the researchers were able to analyze the different biological processes at play and figure out which genes the anoles used to regenerate. In total, they identified 326 genes at play, 302 of which are analogous to genes that mammals possess. Quite curiously, they also discovered that anoles' tails regenerate in a way that's very different from how they originally form in the womb.


Got arms? I got in these 40 & 42 degree arms today -some of them have already left the premises- & have ones coming back from being Race Prepped by the end of the week! You'd better get 'em while the gettin's good! Prices will most likely being headed up!


HARRISBURG—On Monday, the Pennsylvania Senate unanimously passed Senator Stewart J. Greenleaf's (R-12) SB 52 which would bring the National Guard Youth Challenge Program to Pennsylvania. The program is aimed at helping high school drop outs earn their diploma.
The program began in 1993 through an act of Congress as a 10 state pilot program to help at-risk youth gain work experience and earn their high school diploma or equivalent. The program focuses on improving basic life skills and promoting fellowship and good citizenship through military based training and supervised work experience for youth between the ages of 16 and 18. In 1998, Congress made the program permanent.
The bill directs the Pennsylvania Department of Military and Veterans Affairs to apply for federal funding for the program.
The program includes 22 weeks of residency for eligible participants, and an additional 12 month post-residential mentoring period. Participants must be residents of PA, and not attending secondary school. Those with felony convictions are barred from the program as well as those on parole or probation. All shall be subject to drug testing.
In 2011, the National Guard reported graduating 4,411 students, with over 54% of those graduates earning a high school diploma or GED; 47% joining the work force; 9% joining the military; and nearly 44% continuing their education.
For every dollar invested, there is a $2.66 return. In the long term, the public will save money on juvenile detention programs and adult incarceration.
There are currently 40 youth challenge programs operating in 28 states.
The Senate has passed this legislation in prior sessions.


text:
«Цуси́ма» — роман Алексея Силыча Новикова-Прибоя, художественно-историческая эпопея в 2 томах. Роман повествует о переходе Второй эскадры российского военно-морского флота из Балтийского в Японское море и Цусимском сражении, — одном из эпизодов Русско-японской войны 1904 — 1905 годов.

15 марта 1941 года за второй том романа А. С. Новиков-Прибой был награждён Сталинской премией Второй степени в области литературы и искусства.

Сюжет

Часть 1: «Поход», — рассказывает о походе Второй Тихоокеанской эскадры под командованием З. П. Рожественского из Либавы к Японскому морю вокруг Африки в 1904—1905 годах.

Часть 2: «Бой». Повествует о Цусимском сражении и судьбе погибших в нём и уцелевших основных кораблей Второй Тихоокеанской эскадры.

В романе весьма ярко и подробно описывается как переход Второй Тихоокеанской эскадры, так и само Цусимское сражение. Особый акцент делается на недостатках организации и боевой подготовки эскадры, приведшие в конечном счете к полному её разгрому. Описывается как ход сражения в целом, так и с позиции почти каждого из основных кораблей, участвовавших в нём. Присутствует достаточно много технических подробностей, пояснений, таблиц и схем, что представляет интерес с исторической и историко-технической точки зрения.

Отзывы
 Супруга Гронского вспоминала:

 Писатель-эмигрант Г. Б. Александровский (на момент Цусимы ему было 4 года, моряком не был, если не считать год службы боцманом во время стоянки после эвакуации из Крыма):

 Я. К. Туманов (во время Цусимского боя мичман «Орла»):

Комментарии

Примечания

Книги о русско-японской войне
Книги по алфавиту
Исторические романы на русском языке
Романы-эпопеи


When is the Best Time of Year for a Cheap Tree Removal?
When it comes to landscaping projects, the two biggest roadblocks you will encounter are money and time. A good way to avoid spending too much of either of these is to ensure that you pre-plan to ensure that you spend the least amount of time working on a certain project. This same approach carries over to cheap tree removal. One of the quickest way to cut down on your tree removal bill is to choose the right time of year.
Much like repairing a car, there is a labor cost for having professionals remove your tree, representing both the time they spend on removal as well as the tools or equipment that they need to do the job. If you're looking to save, you want to find the easiest time of year to remove a tree, which is generally the period of dormancy. For regions with distinct seasons, this generally runs from late winter to early spring.
In general, the dormant season is preferred because it is easier to actually cut the tree, meaning that it takes less time and you'll pay less for labor. In addition, if you're only planning on removing certain branches of a tree, the dormant season is still the best. Doing it at another time causes your tree unneeded stress, which could affect its health down the line. That is quite a price to pay for just wanting one branch gone.
If you're trying to bring down a tree by yourself, working in this dormant period may be not be the easiest thing to time, especially if you live in an area with inclement weather. However, in some cases, the cheapest time of year to remove a tree may already be decided for you. For example, trees that are dead or dying due to disease or stress can easily pose a falling hazard or risk spreading disease to other trees. Here, you don't want to wait until the dormancy period as opposed to doing it as soon as possible. This still isn't the cheapest, but it is the safest option.
Another way to make sure that you are getting some good value is by enlisting a professional tree service.


Live Chat service hours are Monday – Friday, 8:00 am - 11:00 pm HKT.
Phone service hours are Monday – Friday, 8:00 am - 6:00 pm HKT.
Note: All toll-free numbers have mobile phone accessibility, except the Philippines and Taiwan KT telecom mobile network. Calls from mobile phone will result in local charges to the caller.


See our complete Christmas 2018 Menu!
we at restaurant LeJaenzan are glad to invite all fine dining lovers to enjoy our very special Christmas menus available on 24th, 25th, & 26th December 2018 here at Restaurant LeJaenzan – the famous spot in Lovina for great & fine dining.
We have been preparing our menus for the upcoming Christmas event since weeks. We have also organised some entertainment programms like live country & soul music and we are sure that you will enjoy a great evening with us including a outstanding menu at one or more of the upcoming Christmas days. Our Chef has created an excellent menu -these are A'la Carte Lunch and Dinner Set Menu's consist of appetizers, soup, entrees, main course & desserts a'la Le Jaenzan. You can find detailed information regarding those menu's below.
For your comfort we offer free transfer to and from Le Jaenzan restaurant in Lovina area (5 km range) and TAPAS dishes.
Please note: Beverages are not included. 10% government tax & 5% service charge are not included in the menu price!
We look forward to welcome you at Le Jaenzan Restaurant (located direct at the main road Lovina-Kalibukbuk) for a memorable Christmas celebration with your family.
Our first important special event for this year at Le Jaenzan restaurant will be held on 14 February (Valentines Day). Don't miss out our famous fruit carving competition from 11 am onward coming Wednesday at our Restaurant Le Jaenzan!
Start from 11 am onward – Lunch Time Buffet with traditional local food 100.000 IDR per pax!


Wisconsin Rapids City Viewer was designed and developed in 2014 by Chris Cantey, GIS Specialist for the City of Wisconsin Rapids under the direction of the City's Engineering, Planning, and Mayor's Office with assistance from the Information Systems Department.
Select a map layer from the table of contents to the left of map. You may enter an address into the search bar to zoom to that location. Alternatively, if you are using a mobile device, you may select the GPS icon to allow the application to zoom to your current location. While the data is expected to be the most recent and current available, the information on this website is not intended to be served as legal evidence of size, shape, location, or ownership of real estate.