On-device (WASM)

@neetix/edge is a TypeScript wrapper over a Rust→WebAssembly face engine. Detection and passive liveness run on the user's device: your JavaScript hands the wasm an RGBA frame and gets back boxes, five landmarks and a spoof verdict. After the one-time wasm download there are zero network calls — open the Network tab, or pull the Wi-Fi, and it keeps working.

No API key. No server. No biometric leaves the page.

Status: preview.

It runs the same models as the hosted engine — YuNet for detection and a MiniFASNet two-model ensemble for passive liveness — compiled to wasm with pure-Rust tract-onnx inference, so there is no native onnxruntime to ship.

What ships today

CapabilityMethodStatus
Face detection (box + 5 landmarks)detectShips now
Passive liveness / anti-spooflivenessShips now
512-d face embeddingembedPending recognizer weights
1:1 match (selfie ↔ ID)verifyPending recognizer weights
Why match is not in the edge build

The candidate recognizer weights are CC-BY-NC licensed, and a non-commercial licence cannot ship in a commercial product. Matching stays on the hosted API until that is resolved — so the honest split today is: detect and liveness on-device, match on the server.

When to use this instead of the API

Use the edge build when the point is that the biometric never moves — a privacy claim you can demonstrate rather than assert — or when you need real-time per-frame feedback during capture, which a network round-trip cannot give you.

Use the hosted API when you need the verdict to be yours, signed and auditable. On-device code can be modified by the person being verified, so an edge result is a UX signal, not a fraud control.

Where to go next

  • Quickstart — detection and liveness on a live webcam stream.