Skip to main content

Device Compatibility

How the Viewer Works

When a customer opens your 3D menu, every device uses the same Google Model Viewer path. There is no Three.js branch and no high / mid / low device split. The diner gets rotate, pinch-zoom, auto-rotate, and native AR controls, with your dish photo shown as a poster while the model loads.

If the model fails to load (slow network, missing WebGL, or a GPU reset), the viewer stays on that poster or the original enhanced photo. The customer does not see a blank screen.

If 3D Cannot Run

Some older phones or locked-down browsers cannot run WebGL at all. In that case customers still see the high-quality poster or AI-enhanced photo for the dish. The rest of the menu (prices, descriptions, ordering) is unchanged.

WebGL Context Loss

Sometimes a device's GPU runs out of resources, causing what is called a "WebGL context loss." This can happen when a customer has many browser tabs open or when the device is under heavy load.

MenuGaze handles this gracefully. If the 3D rendering context is lost, the viewer shows the poster image or original photo. The customer sees a brief transition but does not encounter a blank screen.

As a restaurant owner, you do not need to do anything about WebGL context loss. It is handled entirely by the viewer software.

AR on Supported Devices

On Premium plans, 3D models include augmented reality (AR) support on compatible devices. When AR is available, customers see an AR button that lets them place the 3D model of the dish on their real table using their phone's camera.

AR is currently supported on:

  • iOS devices — iPhone and iPad with ARKit support (iPhone 6s and later)
  • Android devices — Phones with ARCore support (most Android phones from 2018 onwards)

On devices that do not support AR, the AR button simply does not appear. The 3D model viewer continues to work normally without AR.

AR mode uses the same optimized 3D models already generated for your menu items. No additional setup or model generation is required.

Was this helpful?