Cardiovascular
RGB forehead & cheek ROIs
POS chrominance projection · 0.75–3.0 Hz Butterworth · Welch PSD · IBI
Watch for: Pulse-amplitude constriction, shortened inter-beat intervals, RMSSD suppression.

Non-contact optical & acoustic polygraph
VitalsGraph is an autonomic-arousal and cognitive-load oscilloscope. Remote photoplethysmography, optical-flow respiration, ocular dynamics, FACS kinematics and vocal micro-tremor are written to a synchronized strip chart — and every deviation is measured in σ from the subject’s own baseline.
The poly-streams
All channels share a 30 Hz master clock with a fixed 1 s pen delay, so micro-events across vision and audio align sample-for-sample.
RGB forehead & cheek ROIs
POS chrominance projection · 0.75–3.0 Hz Butterworth · Welch PSD · IBI
Watch for: Pulse-amplitude constriction, shortened inter-beat intervals, RMSSD suppression.
Shoulder / clavicle optical flow
Pyramidal Lucas–Kanade vertical displacement · 0.15–0.5 Hz band-pass
Watch for: Flat-lining before speech (breath-hold) then shallow, fast recovery breaths.
Iris & eyelid landmarks
Eye aspect ratio · blink state machine · iris angular velocity
Watch for: Blink suppression plateau followed by a dense flurry of blinks.
FACS AU1 · AU2 · AU4 · AU6
2–10 Hz band-passed derivative envelope · residual optical strain
Watch for: Transient brow raise / furrow micro-spikes right after a keyword.
FACS AU12 · AU14 · AU17 · AU23/24
Bilateral L/R differential · lip-press tension envelope (VAD-gated)
Watch for: Post-answer lip clamping or unilateral mouth-corner tightening.
Microphone PCM
YIN F0 · pitch-synchronous jitter / shimmer · 8–12 Hz contour modulation
Watch for: Upward F0 drift and loss of the 8–12 Hz physiological micro-tremor.
Session workflow
Freezes exposure, gain and white balance where the camera allows it, then checks forehead lighting, background flicker, face-mesh stability, shoulder tracking and the microphone noise floor.
The subject rests and answers neutral questions. A personal mean vector and shrinkage-regularised covariance are fitted; traces turn from amber to phosphor green when the baseline locks.
Q-START/Q-END markers from the operator, A-START/A-END from voice activity. Each 0–8 s response window is scored against the baseline while VAD gates speech-contaminated channels.
Video, six telemetry channels and markers stay locked together. Click any spike to scrub the video to that frame with the optical-strain heatmap and FACS bars overlaid.
Human baselines vary wildly. Every score is a deviation from this subject’s calibrated distribution — per-channel z and a composite Mahalanobis distance on the currently admissible features.
Speaking moves the lower face and the thorax. Voice-activity detection mutes those channels while the subject talks and activates vocal analysis — the gate is drawn on the chart so you always see what was scored.
A C++23 DSP core compiled to WebAssembly with Clang/LLVM runs beside MediaPipe in a worker; a WebGL strip chart renders at display rate; sessions are stored locally in IndexedDB, with optional private Supabase sync.