# `StageSettings.environment`

> 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 [`StageSettings`](StageSettings.md) · stable · since 2.0.0 · called as `session.document.stage.environment`

```ts
environment?: 'room' | 'studio' | 'none' | {
  url?: string;
  intensity?: number;
  rotationDeg?: number;
  blur?: number;
};
```

Image-based lighting: a built-in ('room', 'studio'), an HDR, or 'none' (no image-based
lighting; the lights alone). 'studio' reproduces 1.x's neutral studio value for value
(viewer/core/environment-scene.ts and cubemap-blur.ts at eb5ce2afe) and is the environment of
the runtime's own 'default' document layer, so a page whose layers write none, or only
`intensity`, `rotationDeg` or `blur`, lights as 1.x. 'room' is the published room preset:
model-viewer's neutral room (`RoomEnvironment`, a box room lit by six panels), its reflections
prefiltered at 0.04 rad, as a production preview lights with it; as a backdrop, the same room.
A golden pins each (spec section 9.6).

**Default:** the document's, else 'studio'

## Generic-API test (spec 3.1)

| Rule | Result |
| --- | --- |
| 1. Neutral name | pass: `environment` names no product |
| 2. A precedent | pass: [Unity RenderSettings](https://docs.unity3d.com/ScriptReference/RenderSettings.html) (row `K28`); [Babylon.js Scene.environmentTexture](https://github.com/BabylonJS/Babylon.js/blob/master/packages/dev/core/src/scene.ts) (row `K29`); [Unity RenderSettings.skybox](https://docs.unity3d.com/ScriptReference/RenderSettings-skybox.html) (row `K29`); [Unity RenderSettings.ambientIntensity](https://docs.unity3d.com/ScriptReference/RenderSettings-ambientIntensity.html) (row `K30`) |
| 3. Two apps, or labs | pass: 28 apps (ledger: app-378d190f1b, app-4f16d2f6da, app-510d750508, app-59c5b5751e, app-b362a81c85, app-ceb4eccc72, app-e3b47169bc, app-fc07850558 and 1 more; fleet cross-check: app-04c2774145, app-0c773a4ee3, app-37356bf09f, app-378d190f1b, app-4762caacdc, app-4f16d2f6da, app-4fd23bc869, app-510d750508 and 20 more) |
| 4. The cheaper fix first | decided per need in Appendix B: rows `K28`, `K29`, `K30` at tier stable (a member only where no rule, data, asset or app code serves the need) |
