# `CameraLimits.collision`

> 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 [`CameraLimits`](CameraLimits.md) · stable · since 2.0.0

```ts
collision?: boolean | null;
```

The camera keeps 0.08 m clear of pickable product and scenery parts, as 1.x's collision
plugin (`bufferDistance`, viewer/plugins/camera-collision-plugin.ts:193 at eb5ce2afe): the
shopper's orbit, pan, dolly, wheel and pinch, and `autoRotate`, stop at that clearance and
slide along the surface, and no `limits` value changes. View writes (`set`, `fit`,
`views.go`) and [`Frame.camera`](Frame.camera.md) land as written, a `durationMs: 0` write exactly, where 1.x
also stopped a view glide (spec section 5.6). When it turns on, and after each commit that
changes the drawn parts, a camera inside a pickable part is moved out of it to the clearance
once no view move runs and no [`Frame.camera`](Frame.camera.md) view holds, as 1.x on `enable()` and a model load
(:257-282). As in 1.x, a part is seen from inside only where its material draws both sides
(glTF's default draws front faces only), so a camera inside a front-sided part stays there.

**Default:** unchanged (the document's, else false)

## Generic-API test (spec 3.1)

| Rule | Result |
| --- | --- |
| 1. Neutral name | pass: `collision` names no product |
| 2. A precedent | pass: [Unity Camera.fieldOfView](https://docs.unity3d.com/ScriptReference/Camera-fieldOfView.html) (row `K40`); [Unity Camera.lensShift](https://docs.unity3d.com/ScriptReference/Camera-lensShift.html) (row `K40`); [Babylon.js ArcRotateCamera limits](https://github.com/BabylonJS/Babylon.js/blob/master/packages/dev/core/src/Cameras/arcRotateCamera.ts) (row `K40`) |
| 3. Two apps, or labs | pass: 27 apps (ledger: app-378d190f1b, app-59c5b5751e, app-b4ae2fce25, app-bcb7ef21da, app-ddfb017681, app-e3b47169bc, app-e61a0b42ad, app-fd09090420; fleet cross-check: app-04c2774145, app-37356bf09f, app-378d190f1b, app-4762caacdc, app-4f16d2f6da, app-4fd23bc869, app-510d750508, app-59c5b5751e and 18 more) |
| 4. The cheaper fix first | decided per need in Appendix B: rows `K40` at tier stable (a member only where no rule, data, asset or app code serves the need) |
