Separate desktop and mobile viewers

28 October 2026 · Desktop / Quest VR · Phone / tablet

Two independent pages with fixed input profiles share the original scene assets. Desktop uses WASD and pointer lock, plus WebXR. Mobile always uses the joystick and optional motion-sensor look. Existing /en/ and /preview/ links remain supported and also receive the collision fix.

Mobile changes

Quest collision bottleneck

In the previous collision grid, the standing capsule in the WIC collected 4,352 triangle candidates even without contact. The collider set included 29,121 solid triangles. The new default uses 22 primitive obstacle boxes (264 triangles) plus three floor boxes (36 triangles). Wardrobe contents do not receive individual colliders. Wardrobe envelopes, walls, closed glazing, the open door leaf, jambs, seat, floor and ceiling are represented by simple boxes. The WIC doorway is kept open.

A static BVH finds nearby box faces, while the existing exact capsule/triangle solver performs the final response. Unchanged visible meshes, UV5, Beauty maps, reflection maps and panorama are independent of these invisible proxies. Original detailed collision files remain on disk for rollback.

Measured CPU comparison

Node on the same desktop, 800 repetitions per room: a small physical displacement, head-clearance ray and one moving 120 Hz step. This is the CPU collision routine, not total rendering time and not a Quest FPS measurement.

Collision versionRoomAverage CPU time
beforehall0.028 ms
beforewic3.362 ms
boxeshall0.017 ms
boxeswic0.016 ms

Validation

Nine collision/VR logic checks passed with the new box data, including the open Hall/WIC doorway, fixed closed doors, walls, furniture, floor support, ceiling, teleportation and large movement sweeps. The BVH implementation also passed 100 capsule and 100 ray comparisons against brute-force testing on the original geometry. Browser scene loading, the mobile FOV slider, 44 px buttons after a portrait/landscape/portrait cycle, and fullscreen enter/exit were checked. Source syntax and 55 model/image asset checks passed.

No physical Quest 3 or phone sensor test was performed. These CPU results address a measured bottleneck but do not establish 90 FPS or prove that all headset lag is gone. Desktop pointer lock was blocked by the embedded testing browser; the existing desktop control implementation is retained.

Test in Quest

Open the new Desktop & VR page in Meta Quest Browser and enter VR. “Show FPS in VR” in Walkthrough settings enables the small head-attached counter; it is on by default when the browser identifies itself as Quest/Oculus. Compare the hall and WIC. It shows FPS, draw calls, triangle count, CPU movement time and GPU time when supported. You can also record and download VR measurements in Walkthrough settings.

Box collisions intentionally approximate rounded edges and cabinet interiors. They may block slightly before a curved visual surface. They do not simplify or hide visible furniture.

Backup and data

The complete previous viewer is backed up in outputs/Viewer_Split_20261028/viewer_before. The prior published version remains version 4.

Collider counts · CPU measurements · Primitive collider bounds

По-русски

Созданы отдельные ссылки для компьютера/Quest и телефона/планшета. На телефоне угол обзора 85°, кнопки среднего размера в обеих ориентациях и полный экран. Для столкновений используются крупные боксы вместо подробных объектов. В тесте на компьютере расчёт движения в гардеробной сократился примерно с 3,36 до 0,016 мс. FPS в шлеме ещё нужно проверить.