All projects
Web App / Funin-progress

Adi's Personality Test

Multimodal personality profiler that fuses webcam micro-expression analysis, prosodic voice features, and situational response embeddings moving beyond self-report bias toward behavioural ground truth.

Next.jsTypeScriptReactPython

Skills involved

Python

What This Is

A multimodal personality assessment that replaces self-report questionnaires with behavioural ground truth. The problem with standard personality tests (Big Five, MBTI) is that they're entirely self-reported people describe who they think they are, not who they actually are. Humans are systematically bad at self-assessment, especially on traits related to agreeableness and emotional reactivity.

We measure what people do when they encounter specific stimuli, not what they say about themselves.

The Three Modalities

Webcam micro-expression analysis Genuine emotional reactions last 1/25th to 1/5th of a second and are much harder to suppress than deliberate expressions. We capture facial action units (AU) using MediaPipe FaceMesh and classify micro-expression patterns using a model trained on DFEW and MAFW datasets the current SOTA datasets for dynamic facial expression recognition.

Audio prosodic and paralinguistic features Voice tone, speech rate, hesitation patterns, and pitch variability encode emotional state and personality traits reliably. We extract features using openSMILE (the standard toolkit for affective computing audio analysis): F0 statistics, jitter, shimmer, HNR, MFCC deltas. These features feed into a personality trait regressor.

Situational responses semantic embedding We present structured scenarios designed to elicit trait-revealing responses. Responses are embedded using a sentence transformer and compared against personality-labelled response corpora. The distance in embedding space to prototypical trait responses gives a soft score per dimension.

The Fusion Model

Three modality streams → three score vectors → late fusion via a learned weighting. The fusion weights are themselves conditioned on the scenario type: some situations are more informative about openness, others about neuroticism.

What We're Learning

  • Whether multimodal fusion actually improves over single-modality baselines
  • How to handle adversarial users who deliberately perform for the camera
  • The ethics of inferring psychological traits from biometric data

What's Next

  • Ground truth dataset: collect responses with validated personality scores for training
  • Real-time inference pipeline optimised for browser latency
  • Differential privacy for stored behavioural data

Last updated Jan 18, 2026

← Back to all projects