# Browser authoring capacity and scene view

This source update raises authored object detail to 5,000,000 instantiated Gaussian splats, with up to 1,000,000 Gaussians per source asset and 5,000,000 in the entire source library. The object, source definition, room and NPC ceilings remain 2,048 / 16 / 24 / 16. Shared source data is stored once; each instance still contributes to authored and rendering totals.

## Chrome has a bounded working set

The source cap is not a claim that every device can draw five million visible splats. Before source loading, the runtime computes the busiest room and shared source requirement. It retains deterministic, stratified samples in a separate temporary render representation when required. Original source arrays, stored GAssets and exports retain their exact authored detail. The player debug display distinguishes authored, resident preview and active-room counts.

| Startup tier | Maximum shared preview source count | Maximum object preview count in a room |
| --- | ---: | ---: |
| Low | 250,000 | 120,000 |
| Balanced | 750,000 | 350,000 |
| High | 1,500,000 | 1,000,000 |

Room shells and optional music effects have a separate renderer allowance. Devices reporting four GB or less through the coarse `navigator.deviceMemory` hint use Low. Host RAM is not available VRAM. Quality is read when opening a view/playtest; changing pixel-resolution settings in an already running player does not repack its source assets. Reopen after changing the world's atmosphere quality tier to select a new Gaussian working set.

This is bounded preview sampling, **not** spatial hierarchical LOD, streaming, a full-resolution benchmark, or a guarantee that translucent dense scenes run smoothly. Uniform-density representations can lose tiny details, and thin surfaces can develop gaps. Close-range inspection exposes that limitation; exporting does not bake the preview reduction.

Native assets have a 64 MiB byte ceiling; ZIP input and expanded data have a 512 MiB ceiling. Export reserves overhead and rejects packages exceeding 504 MiB. Large encoded arrays still take memory during decode/validation; these limits cannot predict all browser or GPU allocations. Collision bounds process full source covariance in cooperative batches. Source sampling and renderer packing also yield during longer loops, while cancellation and failed loads remove owned resources.

## Editing in the world

The workshop now includes a real Gaussian scene authoring viewport. Top-down uses an orthographic camera. In-scene uses perspective and free camera movement. Drag to look, WASD to move, Q/E to move vertically, Shift to fly faster, and use the camera-speed field for precision. Touch/pointer buttons provide movement without a keyboard. No pointer capture is required.

Click an object to select it using its conservative bounds. Shift-click the floor to move the selected object while preserving its height and NPC route offsets. Frame room and Frame selection adjust the camera. Existing numeric transform/selection tools remain available below. Regular transforms update instance records; they do not rebuild source Gaussian datasets. This view does not run game scripts, NPCs or music. Gameplay is still tested separately through Play.

Selection uses conservative bounds, not exact translucent-splat picking. The editor currently shows the selected room with a Gaussian floor; it is not an all-world streamed scene. This is a practical authoring foundation, not Blender parity.

## Measured checks

- Private synthetic benchmark: a real 1,000,000-Gaussian source referenced five times produces 5,000,000 authored Gaussians. Balanced plans 70,000 shared source samples and 350,000 active object samples. Original source SHA-256 remained unchanged; 2,000 unchanged runtime frames issued zero new instance updates. CPU timing belongs to the saved benchmark receipt and is not GPU timing.
- Unit checks cover library/instance boundaries, source-preserving samples, low-memory tier selection, exact batched covariance bounds, runtime tint, camera navigation and conservative picking.
- Dedicated headless Chrome 153 checks passed actual top-down/perspective rendering, WASD navigation, Shift-click placement and a 390-pixel layout with no horizontal overflow or page errors. A five-million authored fixture imported and rendered in both editor and playtest. Its isolated player diagnostic was 84.2 ms of CPU plus awaited-renderer work at 1214 x 758, with 350,000 active preview samples. This dense synthetic test was not smooth 60 FPS and does not establish five-million visible rendering or GPU time. Final evidence remains in the release QA receipt.

Next priority: asynchronous spatial clusters, per-view projected-error LOD, room/source residency eviction and GPU instance batching. Those changes should be measured before increasing the visible working set further.
