# sm.quat

A <strong>quaternion</strong> is used to represent rotation as a <a target="_blank" href="https://en.wikipedia.org/wiki/Quaternion">generalization of complex numbers</a>.

**Kind:** API page

**Environments:** Game, Terrain

## Game

[Open the full Game reference](../Game-Script-Environment/Static-Functions/sm.quat.md)

To create one, use [sm.quat.new](../Game-Script-Environment/Static-Functions/sm.quat.md#new).

> **Warning:**
> It is uncommon to modify individual X, Y, Z, W components directly. To create a new quaternion, consider using [sm.vec3.getRotation](../Game-Script-Environment/Static-Functions/sm.vec3.md#getrotation).

## Terrain

[Open the full Terrain reference](../Terrain-Script-Environment/Static-Functions/sm.quat.md)

To create one, use [sm.quat.new](../Terrain-Script-Environment/Static-Functions/sm.quat.md#new).

> **Warning:**
> It is uncommon to modify individual X, Y, Z, W components directly. To create a new quaternion, consider using [sm.vec3.getRotation](../Terrain-Script-Environment/Static-Functions/sm.vec3.md#getrotation).
