Runtime configuration
Most configuration is done via URL parameters. See URL parameters. This page collects developer-focused knobs and debug hooks in one place.
Developer URL parameters
These URL parameters are primarily useful for debugging and development, and may change over time:
strict=1: re-throw most caught errors unless explicitly allowlisted.compat=1: enables a small allowlisted set of compatibility fallbacks.log=1/verbose=1/log=debug: enables verbose debug logs and performance instrumentation.debug=1: enables extra debug behavior in the renderer/UI pipeline.ui_ms=<16..2000>: main UI tick interval clamp.ui_slow_ms=<200..10000>: slow UI tick interval clamp used by heavy cards.snapshot_hz_max=<30..120>: upper bound for adaptive snapshot delivery rate.snapshot=1/snapshot=debug: enables snapshot debug mode and preserves the WebGL drawing buffer for inspection.nogeom=1: sets the initial “hide all geometry” rendering flag. Aliases:no_geom,no-geom,hideall,hide_all.forceBasic=1: forces basic materials. Useful for debugging lighting/material issues.inst=0/instancing=0/noinst=1: disables instanced rendering.tbins=<0|1|4|8|16>: transparent sorting bins.tmode=...: transparency sort mode. Values includenosort/fast,bins. Any other value implies strict.
Global variables read at startup
These should be set before the main module runs. For example, use a script tag before importing the app:
globalThis.PLAY_PLUGINS: array of plugin import specifiers/URLs. Alternative to theplugins=query parameter.globalThis.PLAY_STRICT: force strict mode on/off. Overridesstrict=.globalThis.PLAY_COMPAT: force compat mode on/off. Overridescompat=.globalThis.PLAY_VERBOSE_DEBUG: force verbose debug on/off. Overrideslog=/verbose=.globalThis.PLAY_ENV_ASSET_BASE: override the base URL used for built-in HDRI/EXR environment presets. Equivalent toenvAssetBase=.
Rendering debug toggles at startup
globalThis.PLAY_DISABLE_INSTANCING: boolean. Overrides instancing enablement.globalThis.PLAY_TRANSPARENT_BINS: number. Overridestbins.globalThis.PLAY_TRANSPARENT_SORT_MODE: string. One ofstrict,bins,nosort. Overridestmode.
Runtime hooks / debug globals
These are developer-focused and may change:
window.__PLAY_HOST__: plugin Host API. See Plugin contract and Plugin API.window.__viewerStore: the viewer store instance. Same object as__PLAY_HOST__.store.window.__viewerControls: a small control-manager façade.window.__viewerRenderer: renderer helpers such as stats/context/overlay3d.window.__lastSnapshot: the most recent backend snapshot observed by the main thread.window.__renderCtx: renderer manager context/debug object.window.PLAY_SNAPSHOT_DEBUG: whether snapshot debug mode is enabled.window.__snapshot: if set totrueor1, forces WebGLpreserveDrawingBuffer. Useful for screenshot/debug.window.__envDebug/window.__skyDebug/window.__frameCounter: renderer/environment debug objects used during development.window.__PLAY_DUMP_GEOMORDER(): debug hook. May be a stub depending on build.
Strict/perf helpers
These are installed on globalThis when available:
__PLAY_STRICT_REPORT__()/__PLAY_STRICT_CLEAR__(): strict-mode event bookkeeping. Note: the main app also sets__PLAY_STRICT_REPORT__to include the worker report{ main, worker }when the backend is ready.__PLAY_PERF_SUMMARY__()/__PLAY_PERF_CLEAR_SAMPLES__(): performance sample summary and reset. Only present when perf is enabled.