# zHarmonicWarp¶

Create a zHarmonicWarp deformer to warp mesh(es), NURBS surface(s)/curve(s), Maya joint(s), Maya locator(s) using a harmonic deformation field defined by “source cage” and “target cage” meshes.

For more details, see Harmonic Warp.

zHarmonicWarp [flags] [<source_cage> <target_cage> <shape(s)_to_warp>]
-h   -help            <n/a>     This message.
-t   -tetSize         <float>   Set the tet mesh size for the harmonic warp, in scene units. No tets will be larger than this value.
-m   -maxResolution   <int>     Interrupts the computation if the smallest tet would divide the object into more than
this many tets per side. For example, if maxResolution=100, then the tet meshing will
abort if the tets will be smaller than 1% of the width of the object. This does not
affect the result (assuming the computation was not interrupted). This usage is the same
as in the zTet node. It exists to guard against crashing the tet mesher if
tetSize is set to a tiny value.
-s   -surfacePenalty  <float>   Controls the tradeoff between the smoothness of the output, and how precisely the warp obeys the
target cage. This value is given on a log scale, and can be negative, zero or positive.
Smaller values increase the smoothness at the cost of the warp deviating more from the target cage.

The "source cage" and "target cage" meshes must have the same number of vertices and must be closed.
They define the volume in which the warp will be performed. The shapes to be warped can be meshes,
NURBS surfaces, NURBS curves, joints or locators. They must be inside the volume enclosed by the "source cage".
The output shapes will lie inside the volume enclosed by the "target cage". The vertices of the
"source cage" and "target cage" meshes must be in 1:1 correspondence and in the same order.

Harmonic warp is constrained to map the "source cage" mesh onto the "target cage" mesh.
Subject to this constraint, it creates a deformation field, inside the volume enclosed
by "source cage", that is spatially as smooth as possible.
Parameter zHarmonicWarp.surfacePenalty controls the hardness of the constraint.
The larger the value, the harder the constraint: the "source cage" mesh will
warp closer to the "target cage", with a higher chance of the warp being unstable.

A tet mesh will be created internally. The tetSize parameter controls the resolution in Maya units.
The smaller the value, the more precise the warp, but also the higher the resolution
and the longer the computation time.

Usage:
Select/specify the following objects, in this order:
(1) The "source cage" mesh
(2) The "target cage" mesh
(3) The shape(s) to be deformed by the harmonic warp.

Running zHarmonicWarp with these objects selected will create a zHarmonicWarp deformer node that deforms the shape(s).