open-standards/aac/aac-rs/third_party/mediapipe/NOTICE.txt
Transaction Science de1243ce71 feat(aac-web): same-origin MediaPipe, a capability probe, a model store
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]>
2026-09-29 10:50:19 -04:00

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