Affine transformation

This modifier applies an affine transformation to the system. It may be used to translate, scale, rotate or shear the particles, the simulation cell and/or other elements. The transformation can either be explicitly specified in terms of a 3 x 3 matrix plus a translation vector, or implicitly by prescribing a target geometry for the simulation cell.

Given the 3 x 3 linear transformation matrix M and the translation vector t, which are both parameters of the modifier, the new position x' for a particle at the original position x is computed as x' = Mx + t. This notation uses column vectors.

The Enter rotation button opens a dialog box letting you enter a rotation axis, a rotation angle and a center of rotation. Based on these inputs, OVITO will compute the corresponding affine transformation matrix for you.

Transform to target box

This option lets the modifier automatically compute the affine transformation from the current shape of the input simulation cell and the specified target shape. After application of the implicitly determined transformation, the cell will take on the given constant target shape. The contents of the simulation cell (e.g. particles, surface meshes, etc.) will be mapped to the new cell shape accordingly.

Note that you can use this as a way to permanently overwrite the original simulation box and fix its dimensions to constant values.

Transformed elements

You can select the kinds of elements that should be transformed by the modifier:

Data elementDescription

Applies the affine transformation to the coordinates of the particles (Position particle property).

Vector particle properties

Applies the linear part of the affine transformation to the Velocity, Force and Displacement particle properties.

Simulation cell

Applies the affine transformation to the origin of the simulation cell and the linear part of the transformation to the three cell vectors.


Applies the affine transformation to the vertices of surface meshes.

The option Transform selected elements only restricts the application of the transformation to the currently selected particles.

See also

AffineTransformationModifier (Python API)