google / google/model-viewer

WebXR manipulation gizmo has excessive offset from small 3D models, making interaction difficult

Open
#5,150 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
8.2k
Forks
947
PR merge metrics
No merged PRs in 30d

Description

## Description:

When placing small models (e.g., bathroom faucet 10-15cm) in WebXR AR mode, the white manipulation frame/bounding box appears with a large distance (10-20cm) between the frame edges and the actual 3D geometry. This makes rotating and moving the model unintuitive.

Observe the manipulation gizmo around the model

## Expected behavior:

The manipulation frame should be close to the model geometry, allowing intuitive touch gestures for rotation/translation.

## Actual behavior:

The frame has a large offset (~10-20cm), making interaction feel disconnected from the model. User must reach far beyond the visible geometry to manipulate it.

## Additional context:

Interestingly, the same model in Scene Viewer (Android fallback, [ar-modes="scene-viewer"](vscode-file://vscode-app/c:/Users/tomas/AppData/Local/Programs/Microsoft%20VS%20Code/0958016b2a/resources/app/out/vs/code/electron-browser/workbench/workbench.html)) shows the manipulation frame much closer and tighter to the geometry. The excessive offset appears to be specific to the WebXR implementation in model-viewer.

This suggests the issue is in how model-viewer calculates or applies the gizmo bounds/offset for WebXR specifically, not a general geometry problem.

## Environment:
@google/model-viewer@4.0.0
WebXR implementation: Native browser
Device: Android phone with WebXR support
Model size: Small (faucet/bathroom fixture, ~0.2m scale)
ar-scale: fixed
bounds: tight (tested with and without)

## Workarounds attempted:

✗ bounds="tight" (no effect)
✗ ar-scale="fixed" vs auto (no effect)
✗ Model optimization (verified geometry is clean, origin centered, scale correct)

## Question:

Is there an API or parameter to control the WebXR gizmo offset distance, or is this a platform limitation of the WebXR manipulation layer?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.