{
  "label": "phone-chrome",
  "finished": "2026-10-07T20:07:52.570Z",
  "graphicsApi": "OpenGLES3",
  "graphicsVersion": "OpenGL ES 3.0 (WebGL 2.0 (OpenGL ES 3.0 Chromium))",
  "consoleErrors": 0,
  "consoleWarnings": 61,
  "checkFailures": 0,
  "pass": true,
  "results": [
    {
      "case": "default",
      "url": "http://localhost:4350/",
      "expectTier": "Mid",
      "bootMs": 1454,
      "boot": {
        "product": "Zoen",
        "version": "0.1.0",
        "unity": "6000.3.25f1",
        "platform": "WebGLPlayer",
        "graphicsApi": "OpenGLES3",
        "graphicsVersion": "OpenGL ES 3.0 (WebGL 2.0 (OpenGL ES 3.0 Chromium))",
        "gpu": "ANGLE (Qualcomm, Adreno (TM) 730, OpenGL ES 3.2)",
        "device": "Chrome 154.0.0.0",
        "os": "Android 10",
        "systemMemoryMb": 107,
        "screenWidth": 1080,
        "screenHeight": 2121,
        "tier": "Mid",
        "tiers": [
          "Low",
          "Mid"
        ],
        "tierRequest": "",
        "targetFrameRate": -1,
        "vSyncCount": 1
      },
      "fps": "tier=Mid api=OpenGLES3 fps=60.3 avgMs=16.60 p50Ms=17.00 p95Ms=19.00 p99Ms=21.00 maxMs=24.00 frames=240 logErrors=0 logWarnings=0\n",
      "webgl": {
        "webgl2": true,
        "version": "WebGL 2.0 (OpenGL ES 3.0 Chromium)",
        "renderer": "ANGLE (Qualcomm, Adreno (TM) 730, OpenGL ES 3.2)"
      },
      "userAgent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Mobile Safari/537.36",
      "screenshot": "logs/evidence/M0-04/web-phone-chrome-default.png",
      "consoleErrors": [],
      "consoleWarnings": [
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio"
      ],
      "checkFailures": [],
      "zoenLines": [
        "ZOEN_BOOT {\"product\":\"Zoen\",\"version\":\"0.1.0\",\"unity\":\"6000.3.25f1\",\"platform\":\"WebGLPlayer\",\"graphicsApi\":\"OpenGLES3\",\"graphicsVersion\":\"OpenGL ES 3.0 (WebGL 2.0 (OpenGL ES 3.0 Chromium))\",\"gpu\":\"ANGLE (Qualcomm, Adreno (TM) 730, OpenGL ES 3.2)\",\"device\":\"Chrome 154.0.0.0\",\"os\":\"Android 10\",\"systemMemoryMb\":107,\"screenWidth\":1080,\"screenHeight\":2121,\"tier\":\"Mid\",\"tiers\":[\"Low\",\"Mid\"],\"tierRequest\":\"\",\"targetFrameRate\":-1,\"vSyncCount\":1}\n",
        "ZOEN_FPS tier=Mid api=OpenGLES3 fps=60.3 avgMs=16.60 p50Ms=17.00 p95Ms=19.00 p99Ms=21.00 maxMs=24.00 frames=240 logErrors=0 logWarnings=0\n"
      ],
      "pass": true
    },
    {
      "case": "low",
      "url": "http://localhost:4350/?tier=low",
      "expectTier": "Low",
      "bootMs": 2536,
      "boot": {
        "product": "Zoen",
        "version": "0.1.0",
        "unity": "6000.3.25f1",
        "platform": "WebGLPlayer",
        "graphicsApi": "OpenGLES3",
        "graphicsVersion": "OpenGL ES 3.0 (WebGL 2.0 (OpenGL ES 3.0 Chromium))",
        "gpu": "ANGLE (Qualcomm, Adreno (TM) 730, OpenGL ES 3.2)",
        "device": "Chrome 154.0.0.0",
        "os": "Android 10",
        "systemMemoryMb": 107,
        "screenWidth": 1080,
        "screenHeight": 2121,
        "tier": "Low",
        "tiers": [
          "Low",
          "Mid"
        ],
        "tierRequest": "low",
        "targetFrameRate": -1,
        "vSyncCount": 1
      },
      "fps": "tier=Low api=OpenGLES3 fps=60.3 avgMs=16.59 p50Ms=17.00 p95Ms=20.00 p99Ms=23.00 maxMs=25.00 frames=240 logErrors=0 logWarnings=0\n",
      "webgl": {
        "webgl2": true,
        "version": "WebGL 2.0 (OpenGL ES 3.0 Chromium)",
        "renderer": "ANGLE (Qualcomm, Adreno (TM) 730, OpenGL ES 3.2)"
      },
      "userAgent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Mobile Safari/537.36",
      "screenshot": "logs/evidence/M0-04/web-phone-chrome-low.png",
      "consoleErrors": [],
      "consoleWarnings": [
        "Manual synchronization of Unity Application.persistentDataPath via JS_FileSystem_Sync() is deprecated and will be later removed in a future Unity version. The persistent data directory will be automatically synchronized instead on file modification. Pass config.autoSyncPersistentDataPath = true; to configuration in createUnityInstance() to opt in to the new behavior.",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio"
      ],
      "checkFailures": [],
      "zoenLines": [
        "ZOEN_BOOT {\"product\":\"Zoen\",\"version\":\"0.1.0\",\"unity\":\"6000.3.25f1\",\"platform\":\"WebGLPlayer\",\"graphicsApi\":\"OpenGLES3\",\"graphicsVersion\":\"OpenGL ES 3.0 (WebGL 2.0 (OpenGL ES 3.0 Chromium))\",\"gpu\":\"ANGLE (Qualcomm, Adreno (TM) 730, OpenGL ES 3.2)\",\"device\":\"Chrome 154.0.0.0\",\"os\":\"Android 10\",\"systemMemoryMb\":107,\"screenWidth\":1080,\"screenHeight\":2121,\"tier\":\"Low\",\"tiers\":[\"Low\",\"Mid\"],\"tierRequest\":\"low\",\"targetFrameRate\":-1,\"vSyncCount\":1}\n",
        "ZOEN_FPS tier=Low api=OpenGLES3 fps=60.3 avgMs=16.59 p50Ms=17.00 p95Ms=20.00 p99Ms=23.00 maxMs=25.00 frames=240 logErrors=0 logWarnings=0\n"
      ],
      "pass": true
    },
    {
      "case": "ultra-refused",
      "url": "http://localhost:4350/?tier=ultra",
      "expectTier": "Mid",
      "bootMs": 2622,
      "boot": {
        "product": "Zoen",
        "version": "0.1.0",
        "unity": "6000.3.25f1",
        "platform": "WebGLPlayer",
        "graphicsApi": "OpenGLES3",
        "graphicsVersion": "OpenGL ES 3.0 (WebGL 2.0 (OpenGL ES 3.0 Chromium))",
        "gpu": "ANGLE (Qualcomm, Adreno (TM) 730, OpenGL ES 3.2)",
        "device": "Chrome 154.0.0.0",
        "os": "Android 10",
        "systemMemoryMb": 107,
        "screenWidth": 1080,
        "screenHeight": 2121,
        "tier": "Mid",
        "tiers": [
          "Low",
          "Mid"
        ],
        "tierRequest": "ultra",
        "targetFrameRate": -1,
        "vSyncCount": 1
      },
      "fps": "tier=Mid api=OpenGLES3 fps=60.0 avgMs=16.67 p50Ms=17.00 p95Ms=20.00 p99Ms=21.00 maxMs=38.00 frames=240 logErrors=0 logWarnings=0\n",
      "webgl": {
        "webgl2": true,
        "version": "WebGL 2.0 (OpenGL ES 3.0 Chromium)",
        "renderer": "ANGLE (Qualcomm, Adreno (TM) 730, OpenGL ES 3.2)"
      },
      "userAgent": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Mobile Safari/537.36",
      "consoleErrors": [],
      "consoleWarnings": [
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio",
        "The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://developer.chrome.com/blog/autoplay/#web_audio"
      ],
      "checkFailures": [],
      "zoenLines": [
        "ZOEN_BOOT {\"product\":\"Zoen\",\"version\":\"0.1.0\",\"unity\":\"6000.3.25f1\",\"platform\":\"WebGLPlayer\",\"graphicsApi\":\"OpenGLES3\",\"graphicsVersion\":\"OpenGL ES 3.0 (WebGL 2.0 (OpenGL ES 3.0 Chromium))\",\"gpu\":\"ANGLE (Qualcomm, Adreno (TM) 730, OpenGL ES 3.2)\",\"device\":\"Chrome 154.0.0.0\",\"os\":\"Android 10\",\"systemMemoryMb\":107,\"screenWidth\":1080,\"screenHeight\":2121,\"tier\":\"Mid\",\"tiers\":[\"Low\",\"Mid\"],\"tierRequest\":\"ultra\",\"targetFrameRate\":-1,\"vSyncCount\":1}\n",
        "ZOEN_FPS tier=Mid api=OpenGLES3 fps=60.0 avgMs=16.67 p50Ms=17.00 p95Ms=20.00 p99Ms=21.00 maxMs=38.00 frames=240 logErrors=0 logWarnings=0\n"
      ],
      "pass": true
    }
  ]
}
