LOADING
LOADING
Plutchik Protocol
How VibeScore transforms text into measurable emotional signals. 8 dimensions, multi-model consensus, Tungsten physics.
Plutchik's wheel mapped to frequency space
Every analysis produces an 8-dimensional vector in Plutchik space. Each dimension maps to a Solfeggio-inspired frequency for harmonic calculations.
joy
Gold Band | 528 Hz | constructive
wavelength
1.89
trust
Green Band | 396 Hz | constructive
wavelength
2.53
fear
Violet Band | 174 Hz | reactive
wavelength
5.75
surprise
Teal Band | 639 Hz | dynamic
wavelength
1.57
sadness
Blue Band | 285 Hz | reflective
wavelength
3.51
disgust
Lime Band | 741 Hz | reactive
wavelength
1.35
anger
Red Band | 852 Hz | reactive
wavelength
1.17
anticipation
Orange Band | 417 Hz | constructive
wavelength
2.4
Harmonic Groups
constructive
joy
trust
anticipation
reactive
fear
disgust
anger
reflective
sadness
dynamic
surprise
Council of 4 independent AI models
Each text is independently analyzed by 4 AI models. The divergence between them IS the signal -- not noise to be averaged away.
Claude
Anthropic
GPT-4o
OpenAI
Gemini
Grok
xAI
// Each model produces an independent 8D vector const vectors = await Promise.all( models.map(model => analyzeWithModel(text, model)) ); // Consensus = element-wise mean const consensus = computeConsensus(vectors); // Divergence index = mean Euclidean distance from consensus const divergence = vectors.reduce((sum, v) => sum + euclideanDistance(v, consensus), 0 ) / vectors.length; // Agreement = 1 - divergence (normalized) const agreement = 1 - divergence;
Variance-Purity scoring model
The Tungsten engine automatically detects signal purity regardless of emotional intent. High purity = one or two dominant emotions. Low purity = emotional noise.
// 1. Signal Intensity (peak magnitude) const intensity = Math.max(...values) * 100; // 2. Signal Purity (standard deviation normalization) const mean = values.reduce((s, v) => s + v, 0) / values.length; const variance = values.reduce((s, v) => s + (v - mean) ** 2, 0) / values.length; const stdDev = Math.sqrt(variance); const purity = (stdDev / MAX_STDDEV_8D) * 100; // MAX_STDDEV_8D = 0.354 // 3. Drag Penalty (conflict pairs) // Each active conflict pair adds 25% drag const drag = activeConflicts * DRAG_PER_CONFLICT; // 25 per conflict // 4. Final Score const weightedBase = (purity * 0.6) + (intensity * 0.4); const score = weightedBase * 10 * (1 - drag / 100); // Clamped to 0-1000
0.6
Purity Weight
0.4
Intensity Weight
0.354
Max StdDev (8D)
10 resonant emotion combinations
Harmonic pairs are emotions that amplify each other when co-present. Resonance strength determines how much they reinforce the emotional signal.
Love Harmonic
Optimism Harmonic
Hope Harmonic
Alarm Harmonic
Contempt Harmonic
Aggression Harmonic
Disappointment Harmonic
Submission Harmonic
Delight Harmonic
Remorse Harmonic
4 opposing emotions that create drag
When opposing emotions are both active (above 0.3 threshold), they create drag that reduces the VibeScore. Each active conflict adds 25% drag, up to 100% maximum.
Polarity Conflict
phase-cancellation
Credibility Conflict
frequency-beating
Response Conflict
harmonic-clash
Temporal Conflict
wave-interference
Trajectory Classification
Stable
drag < 20
Wobble
drag < 50
Decaying
drag ≥ 50
Centroid matching in 8D emotional space
Each archetype has a centroid vector in 8D space. Classification uses Euclidean distance from the analyzed vector to each centroid. The closest archetype with the highest fit score wins.
The Architect
Strategic planner who builds systems with vision and confidence.
anticipation + trust
The Diplomat
Mediator who builds consensus through inclusive collaboration.
trust + joy
The Philosopher
Deep thinker who explores meaning through contemplative inquiry.
sadness + anticipation
The Catalyst
Disruptor who drives change with urgency and momentum.
anger + anticipation
The Healer
Supporter who creates safety through nurturing affirmation.
trust + joy
The Guardian
Protector who anticipates risks with vigilant caution.
fear + anticipation
The Spark
Inspirer who energizes others with memorable impact.
surprise + joy
The Observer
Analyst who remains objective through detached observation.
trust + anticipation
The Commander
Leader who directs with decisive authority and vision.
anticipation + trust
The Empath
Counselor who validates emotions with deep compassion.
trust + sadness
The Challenger
Truth-teller who pushes boundaries through provocation.
anger + anticipation
The Storyteller
Communicator who engages through narrative and experience.
joy + sadness
The Scientist
Researcher who pursues precision through evidence-based inquiry.
anticipation + trust
The Advocate
Champion who mobilizes others through passionate conviction.
trust + anger
The Jester
Entertainer who disarms tension through humor and play.
joy + surprise
Signal classification from composite analysis
The composite waveform of an emotional vector is classified into 4 types based on intensity and purity thresholds.
Pure Tone
Single dominant emotion
purity >= 80
Chord
A few harmonious emotions
purity >= 40
Noise
Many competing emotions
purity < 40
Silence
No significant emotion
intensity < 5
All magic numbers from purity-engine.ts
export const VIBE_PHYSICS = {
// Scoring weights
PURITY_WEIGHT: 0.6,
INTENSITY_WEIGHT: 0.4,
// Drag system
DRAG_PER_CONFLICT: 25,
MAX_DRAG: 100,
CONFLICT_ACTIVATION_THRESHOLD: 0.3,
// Trajectory classification
TRAJECTORY_STABLE_THRESHOLD: 20,
TRAJECTORY_WOBBLE_THRESHOLD: 50,
// Score bounds
MAX_SCORE: 1000,
LOCK_THRESHOLD: 950,
// 8D vector statistics
MAX_STDDEV_8D: 0.354,
DIMENSION_COUNT: 8,
};