DokimiAI is a virtual try-on service (https://dokimiai.io). This plugin is its
WooCommerce client: it adds a “Try On” button to your product pages so customers
can see your earrings on themselves in real time using their webcam.
For privacy, the try-on itself runs entirely in the shopper’s browser. The webcam
video is never uploaded and the face landmarks are never sent anywhere — face
tracking (MediaPipe Face Mesh) and image compositing happen locally on the
visitor’s device. What the DokimiAI service provides is the try-on runtime: a set
of fixed, versioned, immutable static assets that the browser downloads when the
try-on modal is opened (see “External services” below for the exact files and
their checksums).
No account is required. Paid plans of the DokimiAI service (hosted at
dokimiai.io) add optional service-side features; this plugin is complete and
fully functional on its own.
An internet connection is required, because the browser downloads the try-on
runtime assets from the service when the try-on is opened.
This plugin is a client of the DokimiAI virtual try-on service
(https://dokimiai.io) and relies on it for one thing: delivering the browser
try-on runtime.
The virtual try-on runs entirely in the visitor’s browser using the MediaPipe
Face Mesh runtime (Google, Apache License 2.0). The non-readable runtime and
model binaries are served by the DokimiAI service from
https://cdn.dokimiai.io/ over a fixed, versioned, immutable path:
These are the unmodified artifacts from the npm package @mediapipe/face_mesh
version 0.4.1633559619 (https://www.npmjs.com/package/@mediapipe/face_mesh).
The versioned path is immutable — a runtime update publishes a new version
directory rather than overwriting these files — so the served bytes always match
the checksums above.
When (and only when) a visitor opens the try-on modal on a try-on-enabled product
page, their browser downloads these three files. No personal data is sent with
these requests: the requests carry no query string, no cookies, and no visitor
identifiers. Camera frames and face landmarks are never uploaded.
All JavaScript this plugin uses — including the MediaPipe Face Mesh solution
entry point and the WebAssembly/asset-loader glue — is bundled inside the plugin
and loads from your own site; only the three non-readable binaries above are
delivered by the service.
The optional “Powered by DokimiAI” credit (off by default) is an ordinary
hyperlink to dokimiai.io; the plugin does not transmit any data to that URL.
Service terms and privacy:
This plugin bundles the following third-party JavaScript, served from your own
site:
The bundled MediaPipe JavaScript consists of exactly these files under
assets/mediapipe/ (unmodified vendor files):
The three non-readable runtime binaries these files load
(face_mesh_solution_simd_wasm_bin.wasm, face_mesh_solution_packed_assets.data,
and face_mesh.binarypb) are not bundled; they are delivered by the DokimiAI
service as described under “External services”.
This plugin ships its complete, human-readable source. The in-browser try-on
widget (assets/js/dokimiai-tryon.js) is compiled with esbuild from the
TypeScript sources included under build/src/.
To rebuild the widget from source:
This regenerates assets/js/dokimiai-tryon.js from build/src/tryon-core.ts using
the esbuild configuration in build/build.mjs. The node_modules directory is not
shipped; npm install restores the exact build tool (esbuild) declared in
build/package.json. No minified code is shipped without its corresponding
source.