MediaPipe is loaded from the app's own origin in source, not rewritten by the
build: Rust passes the vendored base into the binding, and
third_party/mediapipe/vendor.sh vendors tasks-vision + the face landmarker for
both builds (prerender-static.sh now too), with its Apache-2.0 LICENSE and
NOTICE, and patches out the library's telemetry flush so turning on eye gaze
makes no third-party request. The vendor directory is versioned by content.
capabilities.rs probes the device once after hydration (never in SSR):
WebGPU adapter, limits and subgroups; JSPI; cross-origin isolation; memory,
storage and persistence; Background Fetch; setSinkId on AudioContext and media
elements; speech synthesis, with local voice languages normalised from
Android's es_ES form. WebGPU inference is blocked on Samsung Xclipse and
Imagination PowerVR (Chromium's own blocklist and driver crashes). ai_tier
picks Minimal / WasmOnly / WebGpuSmall / WebGpuLarge; <html data-ai-tier> and
Settings → This device show it.
model_store.rs keeps voice and model packs in the Cache API ('aac-models-v1',
which both service workers now spare on update), verifies SHA-256 before
storing, retries, and asks for persistent storage. The service worker adds
COOP/COEP to the shell it serves, so the app stays cross-origin isolated
offline.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
25 lines
1.6 KiB
Text
25 lines
1.6 KiB
Text
Eye gaze in the AAC reference app uses MediaPipe, served from the app's own
|
|
site under vendor/mediapipe-<version>-<revision>/ by third_party/mediapipe/vendor.sh.
|
|
|
|
MediaPipe Tasks Vision (@mediapipe/tasks-vision, the version in the directory
|
|
name), by The MediaPipe Authors (Google).
|
|
Licensed under the Apache License, Version 2.0 (LICENSE.txt beside this file).
|
|
Source: https://www.npmjs.com/package/@mediapipe/tasks-vision
|
|
(package.json "license": "Apache-2.0"),
|
|
https://github.com/google-ai-edge/mediapipe
|
|
|
|
Changed by the AAC build: in vision_bundle.mjs, the usage-metrics logger's
|
|
flush() drops its queue instead of sending it to
|
|
https://odml.pa.googleapis.com/v1/log (the library otherwise sends usage
|
|
metrics to Google every minute and on close, with no option to turn this
|
|
off; https://goo.gle/mediapipe-privacy, read 2026-09-29). No other file is
|
|
changed.
|
|
|
|
face_landmarker.task (face_landmarker/float16/1), unchanged.
|
|
From https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task
|
|
It bundles three models, each "Licensed under Apache License, Version 2.0"
|
|
according to its model card (read 2026-09-29, linked from
|
|
https://developers.google.com/edge/mediapipe/solutions/vision/face_landmarker):
|
|
BlazeFace (short range) https://storage.googleapis.com/mediapipe-assets/MediaPipe%20BlazeFace%20Model%20Card%20(Short%20Range).pdf
|
|
Face Mesh V2 https://storage.googleapis.com/mediapipe-assets/Model%20Card%20MediaPipe%20Face%20Mesh%20V2.pdf
|
|
Blendshape V2 https://storage.googleapis.com/mediapipe-assets/Model%20Card%20Blendshape%20V2.pdf
|