.. _bpy.types.WaveModifier: ************* Wave Modifier ************* The *Wave* modifier adds a ripple-like motion to an object's geometry. This modifier is available for meshes, lattices, curves, surfaces and texts. .. list-table:: * - .. figure:: /images/modeling_modifiers_deform_wave_example-circular.jpg :width: 200px Circular wave front. - .. figure:: /images/modeling_modifiers_deform_wave_example-linear.jpg :width: 200px Linear wave front. - .. figure:: /images/modeling_modifiers_deform_wave_example-normals.jpg :width: 200px Motion enabled for X, Normals enabled for Y. Options ======= .. figure:: /images/modeling_modifiers_deform_wave_panel.png :align: right The Wave modifier. Motion ------ Axis X/Y The wave effect deforms vertices/control points in the Z direction, originating from the given starting point and propagating along the object with circular wave fronts (if both X and Y are enabled), or with rectilinear wave fronts (if only one axis is enabled), then parallel to the axis corresponding to the X or Y button activated. Cyclic Repeats the waves cyclically, rather than a single pulse. Normals For meshes only. Displaces the mesh along the surface normals (instead of the object's Z axis). X/Y/Z Restrict displacement along normals to the selected local axes. Time ---- Settings to control the animation. Offset Time offset in frames. The frame at which the wave begins (if *Speed* is positive), or ends (if *Speed* is negative). Use a negative frame number to prime and pre-start the waves. Life Duration of animation in frames. When set to zero, loops the animation forever. Damping An additional number of frames in which the wave slowly damps from the *Height* value to zero after *Life* is reached. The dampening occurs for all the ripples and begins in the first frame after the *Life* is over. Ripples disappear over *Damping* frames. Position -------- Position X/Y Coordinates of the center of the waves, in the object's local space. Falloff Controls how fast the waves fade out as they travel away from the coordinates above (or those of the *Start Position Object*). Start Position Object Use another object as the reference for the starting position of the wave. Note that you then can animate this object's position, to change the wave's origin across time. Delimiter & Noise ----------------- You can finely control which vertices are affected by the wave, and to what extent, using a vertex group and/or a texture. See :ref:`common masking options ` for a complete reference. Arguments --------- The arguments of the wave function. Speed The speed per frame, of the ripple. Height The height or amplitude of the ripple. Width Half of the width between the tops of two subsequent ripples (if *Cyclic* is enabled). This has an indirect effect on the ripple amplitude. If the pulses are too near to each other, the wave may not reach the zero Z position, so in this case Blender actually lowers the whole wave so that the minimum is zero and, consequently, the maximum is lower than the expected amplitude. See `Technical Details and Hints`_ below. Narrowness The actual width of each pulse: the higher the value the narrower the pulse. The actual width of the area in which the single pulse is apparent is given by ``4 / Narrowness``. That is, if *Narrowness* is 1 the *pulse* is 4 units wide, and if *Narrowness* is 4 the *pulse* is 1 unit wide. .. important:: All the values described above are in local object space, i.e. they must be multiplied with the corresponding *Scale* values of the object to get the real dimensions. Technical Details and Hints =========================== The relationship of the above values is described here: .. figure:: /images/modeling_modifiers_deform_wave_front-characteristics.png :align: center Wave front characteristics. To obtain a nice wave effect similar to sea waves and close to a sinusoidal wave, make the distance between following ripples and the ripple width equal. That is, the *Narrowness* value must be equal to ``2 / Width``. E.g. for *Width* to be 1, set *Narrow* to 2.