Settings rail popover — viewer-wide preferences reached from the gear icon.
Hosts the theme picker plus the persisted global preferences
(config/user-settings.ts → localStorage luxar.settings) as sibling
folders: Input, Performance, Caching, Advanced.
Application model per control (see user-settings.ts for the full story):
LIVE values (FOV / zoom wheel sensitivity, idle timeout, web-worker
routing)
take effect immediately via applyLiveConfigOverrides.
STARTUP values (worker pool size, prefetch concurrency, cache tier
gates + pool budget, renderer backend) are threaded through bootstrap
on the next load; changing one shows the reload hint row, whose state
diffs against the boot snapshot (reloadRequired) so it survives
popover close/reopen and clears when a value is set back.
URL parameters always win over stored preferences at boot (one-way
disable flags compose with ||, value params with ?? — bootstrap.ts).
Settings rail popover — viewer-wide preferences reached from the gear icon.
Hosts the theme picker plus the persisted global preferences (
config/user-settings.ts→ localStorageluxar.settings) as sibling folders: Input, Performance, Caching, Advanced.Application model per control (see user-settings.ts for the full story):
applyLiveConfigOverrides.reloadRequired) so it survives popover close/reopen and clears when a value is set back.URL parameters always win over stored preferences at boot (one-way disable flags compose with
||, value params with??— bootstrap.ts).