Skip to content

Signature Dynamics

Overview

Signature dynamics (also called dynamic signature verification) analyses how a signature is produced, not just what it looks like. Unlike a static image comparison, this approach captures the pen movement over time — making it far harder to forge.

What is measured

Students draw their signature on a canvas element using a mouse, trackpad, or touchscreen. Six scalar features are extracted from the stroke data:

Feature Description
Duration Total time to complete the signature, in seconds
Path length Total distance travelled by the pointer, normalised by canvas size
Average velocity Mean speed of the stroke throughout the signature
Peak velocity Maximum instantaneous speed recorded
Stroke count Number of distinct pen-down strokes (pen lifts)
Direction-change rate Frequency of direction changes — captures the angularity of the signature

Enrolment

Students draw their signature the required number of times (default: 3). After each sample the page shows progress dots and prompts for the next attempt. Once all samples are collected, the six features from each attempt are averaged into a single representative profile. This multi-sample approach smooths out minor within-session variability.

Identification

A new signature is drawn and its feature vector is compared against all enrolled profiles using a weighted Euclidean distance normalised per feature. Distances are converted to confidence percentages. See How It Works for the formula.

Configuration

All settings are managed via the Admin Panel — no code changes required.

Setting Default Description
Enrolment attempts required 3 Number of signature samples collected during enrolment. Each attempt is extracted separately and then averaged into the final profile.

Discussion points

  • Ask a student to try signing very slowly vs. at their natural pace — does it still match?
  • Can a student successfully forge another student's signature on screen? What makes it difficult?
  • How does this differ from a static image comparison (e.g. scanning a paper signature)?
  • What features would you add to make this more robust?