Settings
Settings is the ⚙ button in the toolbar at the bottom-center of the screen, or press Esc from anywhere. Esc closes it again.
It holds more than preferences. Alongside the lighting and viewport controls, this is where the mesh library and the texture slots live — so loading a model and assigning its maps both happen here.
Five tabs, split into scene settings and asset management:
| Tab | For |
|---|---|
| Viewport | Background, which channels show in the inspector, developer tools |
| Lighting | Environment, orientation, brightness, shadows |
| Post process | Ambient occlusion, bloom, vignette |
| Meshes | The model library — import, switch, remove |
| Materials | Texture slots per material, strengths, normal flips |
Drop files straight in
Both asset tabs accept a drag-and-drop anywhere on the panel, not just onto a specific target. The whole tab is the drop zone.
Meshes
The Mesh library. Every model you've imported, plus the bundled presets.
- Import mesh… takes a
.glb,.obj, or.fbx, or drop one anywhere on the tab. OBJ and FBX are converted as they arrive — what survives. - Select any entry to make it the active model.
- Remove deletes an import, with a confirmation step, since the file only exists in your browser and there is no copy on a server to restore from.
Bad files are rejected here with the reason — a .glb that isn't really a GLB is caught by its header rather than failing silently later.
Materials
Texture slots, per material. Pick a material from the dropdown — the one acting as the paintable body is marked — body — then load an image into any of the ten channels.
- Drop one file on a slot and it goes to that slot.
- Drop many files anywhere and they're sorted by filename against the naming convention. You get a review list of the proposed matches first, with a checkbox per row, so a wrong guess is unticked rather than undone.
- Strength on every channel but base color, 0–1.
- Flip Y per material for normal maps — see why.
- Clear all empties every slot on every material at once.
Viewport
Background
| Setting | Default | Notes |
|---|---|---|
| Background Color | #dfe1e3 | The viewport backdrop |
| Background Scale | 1.00 | 0.10–3.00; 1.00 means the image height fills the viewport |
| Anchor X / Y | Center / Center | Which edge or corner the image is pinned to |
| Offset X / Y | 0 | Percentage of viewport height, +X right, +Y up |
A custom background image composites over the backdrop color. Scaling grows the image away from its anchor, so a pinned edge stays put.
Both the offset and the scale are relative to viewport height, which means the image keeps its position relative to the model when the window is resized — rather than drifting the moment the aspect changes.
Material channels in sidebar
Controls which channel modes appear in the inspector rail. Six start hidden — Specular, AO, Opacity, Emission, Clear Coat and Clear Coat Roughness — so the everyday PBR set isn't buried. Re-enable any of them here. See Render modes.
Developer
Developer Mode shows the camera tool in the toolbar. On by default, desktop only.
Lighting
Environment
Image-based lighting drives the whole look. Seven options:
| Environment | Notes |
|---|---|
| Studio (built-in) | Procedural softbox rig. Nothing to download |
| Warehouse (default) | Neutral interior, good general-purpose light |
| Apartment | Soft, warm, domestic |
| City | Hard sun with building bounce |
| Dawn | Low warm key, long shadows |
| Sunset | Strong orange rim |
| Forest | Green-tinted, heavily diffused |
All but the built-in studio are HDRIs fetched on demand and then cached by the browser, so the first switch to one costs a download and later ones don't.
| Setting | Default | Range |
|---|---|---|
| Light Orientation | 15° | 0–360° |
| Light Brightness | 1.00 | 0–2 |
The default 15° turn is deliberate. A head-on HDRI drops its highlights symmetrically down both sides of a car, which reads flat — a slight rotation puts the key on one shoulder and gives the form somewhere to fall away to.
Shadows
| Setting | Default | Notes |
|---|---|---|
| Cast Shadows | on | Ground shadow under the model |
| Shadow Bias | 20 | 0–100; higher lifts and softens the contact |
Post process
Everything here applies to Final Render only. If a control seems to do nothing, check which render mode you're in.
Ambient occlusion
| Setting | Default | Range |
|---|---|---|
| Occlusion | on | — |
| Radius | 0.80 | 0.040–2.000 world units |
| Intensity | 0.70 | 0.00–1.00 |
| Bias | 0.020 | 0.001–0.100 |
Radius is in world units, so it wants adjusting for a model far from car-sized. Raise bias if you get dark fringing on flat surfaces.
Bloom and vignette
| Setting | Default | Range |
|---|---|---|
| Bloom | on | — |
| Bloom Intensity | 0.12 | 0.00–3.00 |
| Bloom Threshold | 1.00 | 0.00–1.00 — the luminance a pixel needs before it glows |
| Vignette | on | — |
| Vignette Offset | 0.25 | 0.00–1.00 — how far in from the edges it reaches |
| Vignette Darkness | 0.50 | 0.00–1.00 |
The bloom default is deliberately restrained — enough to let a highlight bleed, not enough to soften the whole image. Vignette is on because it seats the model in the frame.
Mobile defaults
On a phone, ambient occlusion and bloom start off. They're the two heaviest per-frame passes and the likeliest to cost you the framerate. Vignette stays on — it's a cheap gradient rather than a shader pass. Anything you've saved yourself always wins over these; they only set the starting point.