# `CameraMoveOptions.easing`

> Contract 2.0.0 · package sha256 `a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e` · generated from `configurator-runtime.d.ts` by `services/onsite-scripter/scripts/build-contract-docs.mjs`; edit the source, not this file.

Property of [`CameraMoveOptions`](CameraMoveOptions.md) · stable · since 2.0.0

```ts
easing?: Easing | 'damped';
```

The move's time curve: an [`Easing`](Easing.md), or `'damped'`, a critically damped spring with no
overshoot, which is 1.x's `transition: true` glide. A damped move covers the share
1 − (1 + ωt)·e^(−ωt) of the way, ω = 2π / [`durationMs`](CameraMoveOptions.durationMs.md) (the pace of SwiftUI's
`Spring(duration:, bounce: 0)`), divided by its value at [`durationMs`](CameraMoveOptions.durationMs.md),
1 − (1 + 2π)·e^(−2π) ≈ 0.9864, so it lands exactly at [`durationMs`](CameraMoveOptions.durationMs.md) and resolves there. Its
clock is the drawn frames, as 1.x's glide's was: each drawn frame advances it by the time
since the previous drawn frame, at most 1/15 s, so the first frame after the display rested
advances it 1/15 s. Taking over a running damped move, it starts with the velocity that move
drew, and no value it moves (a view's target, angles, distance and focal offset; a lens's
values) passes its new end: one the velocity carries there stops at it, at rest, and the move
lands when all have, at [`durationMs`](CameraMoveOptions.durationMs.md) at the latest. Taking over a move with another curve, or
the camera's damping after a shopper's gesture, it starts from rest. 1.x's glide with
`controls.smoothTime` s is `{ durationMs: round(1000π × s), easing: 'damped' }` (spec
Appendix C.3). Precedent: Unity `Mathf.SmoothDamp`; SwiftUI `Spring(duration:bounce:)`.

**Default:** 'easeInOut'

## Generic-API test (spec 3.1)

| Rule | Result |
| --- | --- |
| 1. Neutral name | pass: `easing` names no product |
| 2. A precedent | not recorded: no ledger row (coverage.json) names this member or its owner |
| 3. Two apps, or labs | not recorded: no ledger row names this member or its owner |
| 4. The cheaper fix first | not recorded per member (Appendix B decides it per need) |
