Skip to content

Releases: Abdullah-Masood-05/vigilo-wasm

Release list

v1.0.1

Choose a tag to compare

@Abdullah-Masood-05 Abdullah-Masood-05 released this 19 Sep 19:43

In-browser exam proctoring: face detection, head pose, gaze tracking and prohibited-object detection, fused by the vigilo-core temporal engine compiled to WebAssembly. Video frames never leave the tab.

Links

Install

npm install vigilo-wasm onnxruntime-web

What's in 1.0.x

  • wasm-pack --target web build. The generated module exposes an explicit initWasm() that takes a URL, Response or byte array, so it works under Vite, Next.js, Webpack, Bun or a plain <script type="module"> rather than requiring a bundler extension.
  • Four coordinated models run through onnxruntime-web (WebGPU with a SIMD fallback): YuNet 2023mar for faces, MobileNetV3-Small for head pose, MobileOne-S0 (L2CS) for gaze, YOLOX-Nano for prohibited objects.
  • Rust does everything that is not a matrix multiply — letterboxing, aspect-ratio scaling, NCHW packing, anchor decoding, NMS, gaze gating and the temporal fusion state machine — so browser and desktop replay the same signal stream to the same violation events.
  • VigiloBrowser scheduler with a self-correcting tick and per-model cadences (pose, gaze, 1 Hz object detection), plus CameraSource for getUserMedia → canvas → ImageData capture.
  • Zero-copy buffer hand-off between the canvas, Rust's scratch frame buffer and the ONNX input tensor.

Fixed in 1.0.1

  • Documentation only: Mermaid architecture diagrams rendered their labels in an SVG <foreignObject>, which Mermaid sized from its own text measurement while the browser laid the text out with the site's typography. Where the two disagreed, labels wrapped and the extra line was clipped. Labels are now SVG <text>, measured from the element that is actually drawn.

No runtime code changed between 1.0.0 and 1.0.1.