Live Real-time proctoring on open models

Catch cheating in online exams as it happens.

Proctor watches the webcam, the candidate's eyes and the exam page together. It flags phones, extra people, a different person, reading off-screen notes and tab switching within seconds, and hands your reviewers a clear report.

No sign-up. The demo takes about five minutes and runs on the production backend.

18checks across camera, eyes and browser
96%of identity swaps caught
< 5 sfrom a phone appearing to an alert
0third-party AI APIs. Your data stays yours.
What it detects

Three independent signals, cross-checked

Camera frames, eye tracking and page events each catch different kinds of cheating. Comparing them also catches a tampered exam page.

Camera

Frames sent at unpredictable moments, checked by object, face and identity models.

  • Phone in view High
  • Another person in view High
  • More than one face High
  • Different person (identity) High
  • Camera covered or dark High
  • Nobody at the desk Medium
  • Book or notes in view Medium
  • Another laptop or monitor Medium
  • Head turned away Low
  • Blurry video Low

Eye tracking

Face and iris tracking in the browser, 15 times a second, calibrated to each candidate's screen.

  • Reading something off-screen High
  • Page or tracker tampered with High
  • Frequent glances away Medium
  • Looking away for 3+ seconds Low

Reading has a rhythm: steady steps along a line, then a quick sweep back. Proctor tells reading notes under the screen apart from re-reading the question.

Browser

What happens on the exam page itself, timed by the server so it can't be faked.

  • Switched tab or window High
  • Second display connected High
  • Left full screen Medium
  • Copy or paste Medium
How it works

Light in the browser, decisive on the server

The candidate's browser does the fast tracking. The server makes every decision, because the browser is in the candidate's hands.

Verify & calibrate

The candidate's face is enrolled, then they click nine dots so the server learns where "on screen" is for their webcam and seat.

Watch in real time

Eye-tracking numbers stream in 5-second batches. Camera frames go up at random moments every 2–4 seconds, and straight away when something changes.

Alert & report

A finding becomes an alert only once it has lasted long enough to be real. Alerts add up to a risk score, and reviewers get a timeline of what happened and when.

Accuracy

Measured, not promised

Every camera check is scored against public datasets with known answers, and the eye-tracking checks against 2,520 simulated sessions.

CheckCaughtAlerts that were rightFalse alarms
Phone83.0%88.0%1.7%
Extra screen92.7%96.5%1.1%
Several people90.2%90.7%4.4%
Different person96.1%98.4%1.7%
Camera blocked100%100%0%
Looking away to read notes100%—0%

Camera checks: COCO and LFW test images. Eye tracking: synthetic sessions across webcam noise levels and frame rates; normal behaviour (reading the question, thinking, looking around) raised no alerts.

Integration

A few lines in your exam page

One script, one WebSocket. The SDK handles the camera, tracking, reconnects and message sizes, and your page just listens for alerts.

  • Serverless: nothing to pay for between exams
  • Open models on your own infrastructure. No frames go to third parties.
  • Survives dropped connections and long exams
import { startProctoring } from "https://SDK-HOST/sdk/proctor.js";

const proctor = await startProctoring({
  url: "wss://YOUR-API/prod",
  token: sessionToken,
  sessionId: "exam-42",
});

proctor.on("alert", (alert) => {
  // { code: "PHONE_VISIBLE", severity: "high", message, ... }
  showWarning(alert);
});

await proctor.enroll();     // remember the candidate's face
await proctor.calibrate();  // nine dots, about 15 seconds

Leads, not verdicts

Alerts point a human reviewer to the right moments. Nothing here fails a candidate on its own.

Private by design

Frames are analysed and discarded. Only a numeric face template and the alert log are kept, and they expire after 24 hours.

Hard to fool

All timing uses the server's clock, and the browser's eye-tracking numbers are checked against the frames, so a modified page shows up.

See it catch you

Take a five-question sample exam. Pick up your phone, look at your notes, switch tabs, and watch the alerts arrive.

Start the live demo