# Course vocabulary

> The canonical language of the course, how a word earns its place in it, and the definitions that will not survive compression.

## Now

Where several words exist for one idea, this course picks one and lists the rest as aliases to
avoid. The point is not tidiness: an argument about a sign that is really an argument about
whether "orientation" meant handedness costs an afternoon, and the reader who meets three names
for a basis concludes there are three things.

**A term is promoted, not pre-loaded.** It is added once a lesson has established it, which makes
the `## Terms` section below double as a record of ground covered — reading it tells you what the
course has actually taught, not what it intends to.

**Some definitions do not fit on one line, and the missing part is the part that bites.**

*Chirality* is measured as the triple product `(forward × up) · right` of the body's semantic
axes. The **sign** is a statement about the body **and** about the frame it is written in: a
correct body reads `+1` in a right-handed frame and `−1` in a left-handed one. So a raw sign
proves nothing on its own — only compare poses expressed in the same convention.

*Handedness conversion* between Unity and glTF is `(x, y, z) → (−x, y, z)` for positions and
directions, and `(x, y, z, w) → (x, −y, −z, w)` for rotation quaternions. Note that the two negate
**opposite** components; getting this pair backwards is a bug that looks like a working conversion
until a limb rotates.

**What is not established yet**, listed so it is defined consistently when its lesson arrives
rather than ad hoc before then: *local* vs *world* transform, **TRS**, multiply order and pre- vs
post-multiplication, *bind pose*, *inverse bind matrix*, *sensor-to-segment calibration*, *drift*,
*slerp*, and *gimbal lock*.

## Rules

<a id="lessons-use-the-chosen-word"></a>
### Lessons, figures and code use the terms below and avoid the aliases listed against them.

[why](rationale/course-vocabulary/lessons-use-the-chosen-word.md)

<a id="a-term-arrives-with-its-lesson"></a>
### A term is added below once a lesson has established it, never before.

## Terms

- **Basis** — Three direction vectors that coordinates are measured against; a coordinate triple is meaningless without one. _Avoid_: coordinate system (too vague — say basis, convention, or frame), axes
- **Chirality** — The handedness of an object rather than of a basis: whether a body's right hand is genuinely its right hand. Rotations preserve it, reflections reverse it, and it is the property a mirrored skeleton violates. _Avoid_: mirroring, flipped-ness
- **Convention** — A named, documented package of choices: handedness, which axis is up, which axis is forward, units, and quaternion component order. Unity and glTF are conventions. _Avoid_: format, standard
- **Frame** — A basis together with an origin, as in world frame, joint frame, sensor frame; use frame where position matters and basis where only direction does. _Avoid_: space, coordinate space
- **Handedness** — The one bit distinguishing the two possible arrangements of three axes: curl the fingers of one hand from +X toward +Y, and the basis is right-handed if the right thumb points along +Z, left-handed if the left thumb does. Not a statement about which axis is up. _Avoid_: orientation (means something else here), winding
- **Handedness conversion** — The transform crossing between a left-handed and a right-handed convention. Reversing handedness requires a reflection, so no rotation can substitute for it. _Avoid_: axis flip, the sign fix, converting coordinate systems
- **Quaternion** — A four-component encoding of a rotation, written XYZW in this course with W the scalar part, matching the glTF spec; q and −q denote the same rotation. _Avoid_: quat when writing prose (fine in code), rotation vector
- **Semantic axis** — What an axis means for the thing being described — up, forward, or the body's own right — as opposed to which letter it is called. Conversions are judged against semantic axes, because that is what a pose actually is. _Avoid_: logical axis, meaning of the axis
