This component replaces reCAPTCHA and hCaptcha with a self-contained behavioral analysis engine. When a user interacts with the widget, it captures up to 300 pointer telemetry samples recording position, velocity, angular direction, and acceleration then runs them through a Naive Bayes classifier trained on human vs. bot movement profiles. The result is a probability score. If it crosses the configurable threshold, the user passes silently. No image grids. No audio challenges. No third-party network requests.
How the detection works
The classifier computes five features from the telemetry window: Shannon entropy of movement angles (humans trace curved, organic paths; bots move in straight lines or fixed arcs), speed variance, acceleration variance, click-hold duration, and hesitation time between cursor entry and click. Each feature is scored against Gaussian probability distributions fit separately to human and bot models. A prior probability (default 0.85, configurable) biases the result in favor of legitimate users, and a sensitivity multiplier controls how strictly the math engine penalizes mechanical-looking movement. A honeypot field invisible to humans, automatically filled by many bots provides a hard block before any statistical analysis runs.
Failure handling and form integration
Failed attempts increment a counter. After a configurable number of failures, the widget locks out the user for a cooldown period (default 15 seconds) before resetting. The component also injects a hidden Human_Verification field into any <form> on the page, intercepts submit events and Enter-key presses, and visually dims submit buttons until verification passes so the protection works even if you're not wiring it up manually. A dismissable warning tooltip appears when a user tries to submit without passing.
Canvas and SSR safe
The component detects Framer's canvas render target and disables all event listeners and DOM side-effects during design-time preview. Headless browser detection (navigator.webdriver) provides an additional hard-block layer independent of telemetry quality.
What you can customize
Every aspect of the widget is exposed through property controls: the detection threshold, prior probability, sensitivity multiplier, honeypot toggle, max attempts, lockout duration, failure and lockout label text, warning popup copy and styling, checkbox size and colors, label typography, card padding, border, and radius.