ar_inspect_surface.
Three different kinds of evidence
Desktop and immersive AR
The runtime’s advertised support and a user’s permission to start playback or capture are separate conditions.
Capture is not unrestricted vision
ar_request_capture requests a frame from the surface. The shipped capture helper captures the rendered WebGL canvas and resizes it. A successful canvas capture does not prove access to the user’s physical room or the headset’s passthrough camera feed.
Handle capture failure or missing visual input explicitly. Do not infer hand positions, gaze, or objects in a real room from desktop mode alone.
Optional services
For creations, usear_world capabilities for the runtime contract and ar_world observe for actual object bounds, transforms, ownership, asset status, program errors, and performance. ar_blender capabilities separately checks Blender on the execution host. A successful Blender export and a ready Spatial asset are separate results.
The current world supports custom geometry, physics, instancing, scoped programs, controls, and Blender previews. It does not claim physical room mesh understanding or shared cloud world synchronization. See Creations for persistence and desktop/XR interaction boundaries.
Generated motion needs an external motion backend. The AR gateway reads NGRAM_AR_MOTION_PROVIDER_URL and optional token/timeout variables. The adapter calls /v1/motion and expects a compatible generated clip.
Browser pages can refuse embedding. Media playback can require a user gesture or be unavailable for a particular video. A registered ar_open_browser or ar_play_youtube tool cannot override those conditions.