Skin Modifier
Bottom of the Page

Select a mesh, patch, or NURBS object. Modify panel Modifier List Object-Space Modifiers Skin

Select a mesh, patch, or NURBS object. Modifiers menu Animation Modifiers Skin

The Skin modifier is a skeletal deformation tool that lets you deform one object with another object. Mesh, patch, or NURBS objects can be deformed by bones, splines, and other objects.

Applying the Skin modifier and then assigning bones gives each bone a capsule-shaped "envelope." Vertices of the modified object within these envelopes move with the bones. Where envelopes overlap, vertex motion is a blend between the envelopes.

By default, each vertex that's affected by a single bone is given a weight value of 1.0, which means it's affected by that bone only. Vertices within the intersection of two bones' envelopes have two weight values: one for each bone. And you can use Skin modifier toolsets such as the Weight Tool dialog to arbitrarily assign vertices to any number of bones. The ratio of a vertex's weight values, which always total 1.0, determine the relative extent to which each bone's motion affects the vertex. For example, if a vertex's weight with respect to bone 1 is 0.8 and its weight with respect to bone 2 is 0.2, then the motion of bone 1 will have four times greater influence on the vertex than will the motion of bone 2.

The initial envelope shape and position depends on the type of bone object. Bones create a linear envelope that extends along the longest axis of the bone geometry. Spline objects create envelopes that follow the curve of the spline. Primitive objects create an envelope that follows the longest axis of the object.

You can also deform the mesh based on the angle of the bones. Three deformers let you shape the mesh based on bone angles:

You can apply the Skin modifier to several objects at the same time.

Jacket object deformed using the Skin modifier

In 3ds Max you can mirror envelope and vertex assignments from one side of the mesh to the other with commands on the Mirror Parameters rollout.


To use the Skin modifier:

  1. Prepare the skin (mesh or patch object) and skeleton (bones or other objects). Carefully place the skeleton inside the mesh or patch object so that its elements are able to influence polygons or patches in their immediate vicinity.
  2. Select the mesh or patch object and apply the Skin modifier.
  3. In the Parameters rollout, click Add and choose the skeleton objects.
  4. Click Edit Envelopes and select an envelope to modify the volume in which each bone can influence the surrounding geometry.

To weight vertices manually:

  1. On the Parameters rollout, turn on Vertices.
  2. On the mesh, select the vertices you would like to weight manually.

    Each selected vertex is surrounded by a small white rectangle.

  3. Highlight the name of the bone for which you want to change the vertex weights.
  4. In the Weight Properties group, change the Abs. Effect parameter to the new vertex weight.

To mirror envelope or vertex weight settings:

  1. Adjust envelopes and vertex weights on one side of the mesh.
  2. On the Mirror Parameters rollout, click Mirror Mode.

    The mirror plane appears at the position and orientation of the mesh's pivot point.

  3. If the mirror plane is not at the center of the mesh, change the Mirror Offset parameter to move the plane to the center.
  4. If some vertices in the left or right side of the mesh are red rather than blue or green, increase the Mirror Thresh value until all vertices are blue or green.
  5. On the Mirror Parameters rollout, click the appropriate Paste button to paste green or blue envelopes or vertex weights to the other side of the mesh.

To adjust the skin and/or bones without affecting the envelopes:

  1. Save the scene.

    This is a potentially destructive operation, so it's best not to take any chances with your data.

  2. Select the object to which the Skin modifier is applied.
  3. In the Advanced Parameters rollout, turn off Always Deform.
  4. Apply any necessary transforms to the mesh/patch object or bones objects.
  5. Turn Always Deform back on.

    To adjust the bones only, you can also use skin pose.

Example: To apply the Skin modifier to a cylinder with a bones skeleton:

  1. On the Create panel, with (Geometry) active, under Standard Primitives, click Cylinder.
  2. In the middle of the Top viewport, click and drag 20 units to create the base of the cylinder.
  3. Release the mouse button and drag up 130 units to establish the height of the cylinder.
  4. On the parameters rollout, set Height Segments to 20.

    This provides mesh detail for a smooth surface deformation.

  5. On the Create panel, click (Systems). On the Object Type rollout, click Bones.

    Make sure an IK Solver is chosen in the IK Solver list. Turn on Assign To Children. (This should turn on Assign To Root as well.)

  6. In the Front viewport, click successively three times: below the cylinder, in the middle of the cylinder, and above the top of the cylinder.
  7. Right-click to end Bones creation.

    Three bones display. Two of them are within the middle of the cylinder.

  8. Select the cylinder.
  9. On the Modify panel Modifier List, choose Skin.
  10. On the Skin modifier Parameters rollout, click Add, and use the Select Bones dialog to select the three bones.

    The names of the bones are now displayed in the list.

  11. In the Front viewport, select the bone end effector (IK Chain01) and move it around.

    The cylinder deforms to follow the bones. To adjust envelopes to refine the surface deformation, choose the Skin modifier's Envelope sub-object level, and use the Edit Envelopes controls to resize envelopes and change vertex weights.

Example: To use a morph angle deformer:

Create the cylinder and bones from the preceding procedure before you continue with this procedure.

  1. At frame 50, animate bone 2 so that bones 1 and 2 represent a 90-degree angle.
  2. At frame 0, the bones should be straight at about a 180-degree angle.
  3. Go to frame 0.
  4. In the Parameters rollout, turn on Edit Envelopes.
  5. Select the child bone (bone 2) in the modifier's list of bones.
  6. In the Select group, turn on Vertices.

    This allows you to select vertices.

  7. In the viewports, region-select a good portion of the vertices that are controlled by both bones.
  8. In the Gizmos rollout, select the Morph Angle Deformer in the drop-down list, and then click Add Gizmo.

    The Deformer Parameters rollout displays. A base morph target is the first and only target in the list.

    Tipif the Deformer doesn't assign, make sure that bone 2 and not bone 1 is selected in the list.
  9. Scrub the Time Slider to frame 50.
  10. Add an Edit Mesh modifier above the Skin modifier on the modifier stack.
  11. In the Edit Mesh modifier, turn on Vertex and Soft Selection.
  12. Edit the mesh to the shape you want.
  13. In the stack, go back down to the Skin modifier. If 3ds Max displays the topology warning dialog, click Yes.
  14. In the Deformer Parameters rollout, click Add From Stack.

    A new morph target is added at about 90 degrees.

  15. Delete the Edit Mesh modifier from the stack.

    There is a doubling effect of the morph if you don’t delete or deactivate the Edit Mesh modifier.

  16. Scrub the time slider. The mesh morphs as the bone angle changes.


The Skin Modifier interface includes the following rollouts:

Some of the Skin modifier commands are also available from the quad menu.

Modifier Stack


Turn on this sub-object level to work on envelopes and vertex weights.

TipYou can use the quad menu to choose this sub-object level.

Parameters rollout

Edit Envelopes

Use this sub-object level to work on envelopes and vertex weights.

Select group

The following filtering options are grouped together to help you work on a particular task, by preventing you from accidentally selecting the wrong item in the viewports.


Turn on for vertex selection.

You can rotate around selected vertices using Orbit SubObject on the Orbit flyout. You can also rotate around a selected envelope as long as no vertices are selected, as they have precedence.

NoteYou must choose Use Selection Center from the User Center flyout to center on your selection. If you choose Use Pivot Point Center, Orbit centers on the selected bone/cross section.

You can zoom on selected vertices using Zoom Extents Selected from the Zoom Extents flyout. You can also zoom on an envelope if no vertices are selected.

  • ShrinkModifies the current vertex selection by progressively subtracting the outermost vertices from the selected object. Has no effect if all the vertices from an object are selected.
  • GrowModifies the current vertex selection by progressively adding neighborhood vertices of the selected object. You must start with at least one vertex to be able to grow your selection.
  • RingExpands the current vertex selection to include all vertices part of parallel edges.
    NoteYou must select at least two vertices to use the Ring selection.
  • LoopExpands the current vertex selection to include all vertices part of continuing edges.
    NoteYou must select at least two vertices to use the Ring selection.
  • Select ElementWhen on, selects all vertices of the element you select, as long as you select at least one vertex from that element.
    TipYou can edit your selection by holding Ctrl or Alt, and then select vertices. This adds or removes, respectively, vertices to or from your selection.
  • Backface Cull VerticesWhen on, you cannot select vertices pointing away from the current view (on the other side of the geometry).

Turn on for envelope selection.

Cross Sections

Turn on for cross-section selection.


The first step, after applying the Skin modifier to an object, is to determine which bones participate in the object's weighting. Every bone you choose influences the weighted object with its envelope, which you can configure in the Envelope Properties group.


Click to add one or more bones from the Select Bones dialog.


Choose a bone in the list, and then click Remove to remove it.

[list window]

Lists all bones in the system. Highlighting a bone in the list displays that bone's envelope and the vertices influenced by the envelope.

An horizontal scroll bar appears if a bone's name is longer than the window's width.

NoteIf an older scene containing long bone names is loaded in 3ds Max, its name is truncated to fit in the window. You can overwrite this by setting the MAXScript shortenBoneNames property of your Skin modifier to false.

Example: $'Sphere01'.modifiers[#Skin].shortenBoneNames = false

For detailed information about the MAXScript utility, open the MAXScript Help, available from Help menu MAXScript Help.

[bone name type-in field]

Enter a bone name to highlight it in the bone list above. The highlighting goes to the first matching bone.

Use these methods for finding bone names faster:

  • Narrow the list by typing the first few characters in the name of the bone you want to highlight.
  • Use the wildcard (*) key. For example, you can find Robot R Index Finger by typing * R In

Cross Sections group

By default, each envelope has two round, lateral cross sections, one at each end of the envelope. These options add and remove cross sections from envelopes.


Choose a bone in the list, click Add, and click a position on the bone in a viewport to add a cross section.


Select an envelope cross section and click Remove to delete it.

Before you can select a cross section, the Cross Sections option in the Select group must be on.

You can delete only extra cross sections that you have added; not the default cross sections.

Envelope Properties group


Select an envelope cross section, and use Radius to resize it. In order to select a cross section, the Cross Sections option in the Select group must be checked.

You can also click and drag a cross section control point in a viewport to resize it.


A squash multiplier for bones that stretch. This is a single value that reduces or increases the amount of squash applied to a bone when it is stretched with Freeze Length off, and Squash on.

NoteYou can set Freeze Length and Squash in the Bone Tools dialog.

This toggle determines how vertex weights are calculated for vertices between inner and outer envelopes.

  • AbsoluteA vertex must merely fall inside the brown outer envelope to have 100% assignment weight to that particular bone. A vertex falling inside more than one outer envelope will be assigned multiple weights summing to 100% based on where it falls in the gradients of each envelope.
  • RelativeA vertex falling only within an outer envelope will not receive 100% weighting. A vertex must either fall inside two or more outer envelopes whose gradients sum to 100% or greater or the vertex must fall within a red inner envelope to have 100% weight. Any points within a red inner envelope will be 100% locked to that bone. Vertices falling within multiple inner envelopes will receive weighting distributed over those bones.
Envelope Visibility

Determines the visibility of unselected envelopes. Choose a bone in the list and click Envelope Visibility, then choose another bone in the list. The first bone selected remains visible. Use this to work on two or three envelopes.

Falloff Flyouts

Choose a falloff curve for the displayed envelopes.

Weight falls off in the area between the inner and outer envelope boundaries if envelopes overlap and Absolute is turned on. This setting lets you specify how the falloff is handled:

  • Falloff Fast OutWeight falls off quickly.
  • Falloff Slow OutWeight falls off slowly.
  • Falloff LinearWeight falls off in a linear way.
  • Falloff SinualWeight falls off in a sinusoidal way.

Copies the currently selected envelope size and shape to memory. Turn on sub-object Envelopes, choose one bone in the list, click Copy, then choose another bone in the list and click Paste to copy an envelope from one bone to another.

Paste commands are on a flyout with the following options:

  • PastePastes the copy buffer to the current selected bone.
  • Paste to All BonesPastes the copy buffer to all bones in the modifier.
  • Paste to Multiple BonesPastes the copy buffer to selected bones. A dialog allows you to choose the bones to paste to.

Weight Properties group

Abs. Effect

Enter an absolute weight for the selected bone to selected vertices.

Choose the Envelope sub-object level, turn on Vertices in the Parameters rollout Select group, select a vertex or vertices, and then use the Abs. Effect spinner to assign weight. Selected vertices move in the viewports as their weight changes.


Causes selected vertices to be influenced only by one bone, the one with the most influence.

Rigid Handles

Causes the handles of selected patch vertices to be influenced by only one bone, the one with the most influence.


Forces the total weights of each selected vertex to add up to 1.0.

Exclude Selected Verts

Adds the currently selected vertices to the exclusion list for the current bone. Any vertices in this exclusion list will not be affected by this bone.

Include Selected Verts

Takes the selected vertices out of the exclusion list for the selected bone. The bone can then affect these vertices.

Select Excluded Verts

Selects all vertices excluded from the current bone (see Exclude Selected Verts, preceding).

Bake Selected Verts

Click to bake the current vertex weights. Baked weights are not affected by envelope changes, only by changes to Abs. Effect or weights in the Weight Table.

Weight Tool

Displays the Weight Tool dialog, which offers control tools to help you assign and blend weights on selected vertices.

Weight Table

Displays a table for viewing and changing weights for all bones in the skeletal structure. See Weight Table.

Paint Weights

Click and drag the cursor over vertices in the viewports to brush on weights for the selected bone.

TipStreamline the painting process by using the Brush Presets tools.
Painter Options [ellipsis]

Opens the Painter Options dialog, where you can set parameters for weight painting.

Paint Blend Weights

When on, blends painted values by averaging the weights of neighboring vertices and then applying the average weight based on the brush strength. Default=on.

Mirror Parameters rollout

Mirror Mode

Activates Mirror mode, which lets you mirror the envelopes and vertex assignments from one side of the mesh to the other. This mode is available only at the Envelope sub-object level.

Mirror mode uses the Mirror Plane setting to determine the “left side” and “right side” of the mesh. When you turn on Mirror Mode, the vertices on the left side of the mirror plane turn blue, while the vertices on the right turn green. Vertices that are neither left nor right turn red, including vertices at the mirror plane. If vertices don't change color appropriately, you might have to increase the Mirror Thresh value to expand the range used to determine the left and right sides.

If you select vertices or bones, the selected vertices or bones turn yellow, and the corresponding match on the other side of the mesh turns a brighter blue or green. This can help you check for matches.

Mirror Paste

Pastes selected envelope and vertex assignments to the opposite side of the body.

Paste Green to Blue Bones

Pastes the envelope settings from green bones to blue.

Paste Blue to Green Bones

Pastes the envelope settings from blue bones to green.

Paste Green to Blue Verts

Pastes the individual vertex assignments from all green vertices to the corresponding blue vertices.

Paste Blue to Green Verts

Pastes the individual vertex assignments from all blue vertices to the corresponding green vertices.

Mirror Plane

Determines the plane that will be used to determine the left and right sides. The plane appears in the viewport at the mesh's pivot point when you turn on Mirror mode. The selected mesh's local axes are used as the basis for the plane. If several objects are selected, one object's local axes are used. Default=X.

TipFor the easiest workflow with mirroring tools for the Skin modifier, set the pivot points for character meshes to align with the World before applying Skin.
Mirror Offset

Shifts the mirror plane along the Mirror Plane axis.

Mirror Thresh

Sets the relative distance the mirroring tools will look when setting vertices as left or right. If some vertices in the mesh (other than those at the mirror plane) are not colored blue or green when you turn on Mirror mode, increase the Mirror Thresh value to include a larger area of the character. You can also increase this value to compensate for lack of symmetry in asymmetrical models.

Display Projection

When Display Projection is set to Default Display, selecting vertices on one side of the mirror plane automatically projects the selection to the opposite side. The Positive and Negative options allow selection of vertices on one side of the character only. The None option does not project selected vertices to either side. Default=Default Display.

TipYou can use the Positive and Negative options to temporarily project the display of one side's vertices to the other side so you can see how the vertices align. This can be helpful when determining the correct Mirror Plane settings for an asymmetrical mesh.
Manual Update

When on, you can update the display manually rather than automatically after each mouse-up.


When Manual Update is on, use this button to update the display with your new settings.

Display rollout

Show Colored Vertices

Colors vertices in viewports according to their weights.

Show Colored Faces

Colors faces in viewports according to their weights.

Color All Weights

Assigns a color to every bone in the envelope. The vertex weighting blends the colors together.

TipYou can toggle this feature to get a global view of all weight regions across your model at once.
TipYou can also assign a color to unweighted vertices: Open the Customize User Interface dialog and, on the Colors panel, choose Skin Colors from the Elements drop-down list.
Show All Envelopes

Displays all envelopes at the same time.

Show All Vertices

Draws a small tick at every vertex. On a patch surface, it will also draw all the handles.

Show All Gizmos

Displays all the gizmos in addition to the currently selected gizmo.

Show No Envelopes

Causes no envelopes to be displayed even when an envelope is selected.

Show Hidden Vertices

When on, hidden vertices are visible. Otherwise, they remain hidden until you enable the option or go into the object's modifier ( Editable Mesh or Editable Poly), and then click Unhide All on the Selection rollout or Edit Geometry rollout, respectively. Default=off.

Draw On Top group

These options determine which elements will be drawn on top of all other objects in viewports.

Cross Sections

Forces cross sections to be drawn on top.


Forces envelopes to be drawn on top.

Advanced Parameters rollout

Always Deform

A toggle useful for editing the transformation relationship between bones and the controlled points. This relationship is initially set when Skin is applied. To change the relationship, turn off Always Deform, move the object or the bones, and reactivate. The new transformation relationship is now used.

Ref. Frame

Sets the frame where the bones and the mesh are in a reference position.

Normally this is frame 0. If frame 0 is the reference frame, start your animation at frame 1 or later . If you need to adjust bones relative to the mesh, move the time slider to frame 0, turn off Always Deform, move the bones into the correct position, and then turn on Always Deform.

Back Transform Vertices

Allows you to link the mesh to the bone structure. Ordinarily, when you do this, any movement of the bones causes the mesh to move twice as far as it should, because it moves once with the bones and once with the link. Enabling this option prevents the mesh from moving twice under these circumstances.

Rigid Vertices (All)

When on, effectively assigns each vertex to the bone whose envelope has the most influence, as though weighted 100% to that bone. Vertices will not have weight distributed over more than one bone and the deformation of the skinned object is rigid. This is mainly used with game engines that do not support weighted point transformation.

NoteThis does not change weight values for vertices assigned to multiple bones, so you can return to distributed weight assignments simply by turning off Rigid Vertices (All).
Rigid Patch Handles (All)

On a patch model, forces patch handle weights to equal the knots weights.

Bone Affect Limit

Limits the number of bones that can affect one vertex.

Reset group

Reset Selected Verts

Resets the weight of selected vertices to the envelope defaults. After manually changing vertex weight, use this to reset weights if necessary.

Reset Selected Bone

Resets associated vertex weights back to the original weights calculated for the selected bone's envelope.

Reset All Bones

Resets all vertex weights back to the original weights calculated for all bone's envelopes.



Allows you to save and load the envelope position and shape, as well as the vertex weights. If you load a saved file onto a different system of bones, you can use the Load Envelopes dialog to match the incoming bones to the current bones.

Update on mouse up

When on and the mouse button is pressed down, no updates take place. When the mouse button is released, updates occur. This option helps keep workflow moving quickly by avoiding unnecessary updates.

Fast Updates

Turns off viewport display of weighted deformation and gizmos and uses rigid deformation when not rendering.

Ignore Bone Scale

Turn this option on to leave a skinned mesh unaffected by a scaled bone. Default=off.

NoteTo scale a bone's length, you first need to turn off its Freeze Length option on the Object Properties rollout of the Bone Tools floater dialog.
Animatable Envelopes

Toggles the possibility of creating keys on all animatable envelope parameters while Auto Key is active. Default=off.

NoteThis does not affect keyable track settings.
Weight All Vertices

When on, forces all vertices that are not under the control of an envelope to be weighted to the bone closest to them. Has no effect on vertices that are manually weighted. Default=on.

TipIf you want to revert vertices to their original weight value, click Reset Selected Verts (in the Reset group) or open the Weight Table, and change the Modified weight status (M) of your selected vertices.
Remove Zero Weights

Strips a vertex from its weight if it is less than the Remove Zero Limit value. This helps making your skinned model lighter (in games for instance) because less unnecessary data is stored in the geometry. Also accessible from the Weight Table.

Remove Zero Limit

Sets the weight threshold that determines if a vertex is stripped of its weight when you click Remove Zero Weights. Default=0.0.

Gizmos rollout

Controls in the Gizmos rollout allow you to deform the mesh according to the angle of the joint, and to add gizmos to selected points on the object. The rollout consists of a list box containing all the gizmos for this modifier, a drop-down list of the current types of gizmos, and four buttons (Add, Remove, Copy, and Paste).

The workflow for adding a gizmo is to select the vertices that you want to affect, select the bones that will drive the deformation, and then click the Add button.

There are three deformers available:

  • The Joint Angle deformer has a lattice that can deform vertices on the parent and child bones.
  • The Bulge Angle deformer has a lattice that only works on vertices on the parent bone.
  • The Morph Angle deformer works on vertices of the parent and child bones.

    Keep these distinctions in mind when you select vertices to deform. For example, if you want to use the Joint Angle deformer, then select vertices close to the joint that will drive the deformation. If you want the parent bone vertices to deform like a biceps muscle, then select vertices that are only assigned to the parent bone before adding the Bulge Angle deformer. If all the vertices of the parent and child bone must deform, then select all of the vertices and add the Morph Angle deformer.

    Bending the arm without the Morph Angle deformer causes the sleeve to crumple.

    Using the Morph Angle deformer creates a smooth bend in the sleeve.

Gizmo List Window

Lists the current Angle Deformers.

The Deformer Parameters rollout changes depending on the type of gizmo selected.

Deformer drop-down list

Lists the available deformers.

Add Gizmo

Adds the current Gizmo to the selected vertices.

To add a gizmo, you must first select the child bone for the joint you want to deform. Then you must select the vertices that you want to deform. You can then add a gizmo.

After a gizmo is added, a Deformer Parameters rollout displays that contains gizmo parameters that you can adjust.

Remove Gizmo

Remove the selected gizmo from the list.

Copy Gizmo

Copy the selected gizmo.

Paste Gizmo

Paste the gizmo.

The Paste button pastes the current copy buffer into the currently selected gizmo. You can only paste to like gizmos. For instance, you can't paste from a bulge gizmo to a joint gizmo.

Deformer Parameters rollout

The following parameters are for the Morph Angle deformer. One way to create morph targets, after the morph gizmo is added, is to add an Edit Mesh modifier to the stack above the Skin modifier. Use the vertex controls in the Edit Mesh modifier to shape the geometry. Then go back in the stack to the Skin modifier and click Add From Stack. You can then delete the Edit Mesh modifier. Add From Stack looks at the last modifier in the stack to get the morph target. Note that when you go back down to the Skin modifier, the morph effect is doubled; you can rectify this by deleting or deactivating the Edit Mesh modifier.

Joint Field

Displays the type of Deformer and the associated bone.

List Window

Contains the current morph targets and associated bone angles.

Naming Field

Select a morph target and rename it in this field.

Add from stack

Uses the current state of the stack to get the morph target. Ideally, you have put an Edit Mesh modifier on top of the stack and done your edits before you click Add From Stack.

Add from node

Uses another object as your morph target for this angle. This is like a regular morph target, but instead of being driven by a field, it is driven by the joint angle.

TipYou can use Snap Shot on the main toolbar to create a new target for morphing.

Deletes the currently selected morph target from the list.

Enable gizmo

Toggles the effect of the gizmo.

Joint Angle and Bulge Angle parameters

The following parameters are for the Joint Angle and Bulge Angle deformers. These two deformers are almost identical in the way they operate. The difference is that the Bulge Angle deformer only works on vertices of the parent bone, while the Joint Angle deformer works on vertices on both the child and parent bone.

To apply either of these deformers, first select the child link, then select vertices on the mesh, and then apply the deformer. Remember to turn on Vertices in the Parameters rollout Select group before region-selecting vertices in the viewports.

Once the deformer is applied, turn on Edit Lattice and move the lattice control points in the viewports to deform the mesh at different bone angles.

Name Field

Allows you to change the name of the deformer.


Allows you to spin the gizmo around the mesh to place control points appropriately.

Use Bounding Volume

Turn this on if you plan to change the geometry, like increasing segments on a cylinder. If the geometry changes, the mesh will still deform inside the lattice if this is turned on.

Enable Gizmo

Toggles the effect of the gizmo on and off.

Edit Lattice

Allows you to move the lattice control points in the viewports.

Edit Angle Keys Curves

Brings up a curve editor that lets you manipulate the shape of the lattice at a particular angle. This curve is position vs. angle. It will show you the curves of the current selected points. The red curves are X, green curves are Y, and blue curves are Z.