← Back to Blog
Tech Sharing2026-04-10 · 12 min read

SBTI Personality Test: A 15-Dimension Character Analysis Beyond MBTI

A deep dive into the technical implementation and psychological principles of the SBTI personality test — exploring the 15-dimension model and how to integrate it into modern web apps.

# Vue3# 心理测试# 前端开发# 用户体验# SBTI

Introduction

In the field of psychological assessment, MBTI has long dominated the landscape. But as demand for deeper self-understanding grows, more nuanced and engaging tools have emerged. SBTI is one such innovation — built on 15 psychological dimensions, offering 25 predefined personality types, and even featuring hidden easter-egg personalities.

This article explores the technical implementation of SBTI, including its psychological model, algorithm design, frontend architecture, and how to integrate it into a modern web app.

I. SBTI Overview

1.1 What is SBTI?

SBTI (Super Brain Type Indicator) is a fun personality test based on a 15-dimension psychological model. Unlike the classic 4-dimension MBTI, SBTI provides a more granular portrait of personality.

Key features:
  • 15 assessment dimensions: covering Self, Emotion, Attitude, Action, and Social models
  • 25 personality types: from CTRL the controller to IMFW the mess
  • 2 hidden personalities: DRUNK and HHHH, triggered by specific answer patterns
  • Smart matching algorithm: Euclidean distance-based similarity
  • Fun by design: humorous questions and sharp personality descriptions

1.2 The 15-Dimension Model

SBTI groups personality traits into 5 models, each with 3 dimensions:

``

Self Model

├─ S1: Self-esteem — confidence level

├─ S2: Self-clarity — how clearly you know yourself

└─ S3: Core values — what you pursue in life

Emotional Model

├─ E1: Attachment security — sense of safety in relationships

├─ E2: Emotional investment — depth of emotional commitment

└─ E3: Boundaries vs. dependency — balance of personal space and closeness

Attitude Model

├─ A1: Worldview — fundamental view of the world

├─ A2: Rule compliance — how strictly you follow rules

└─ A3: Sense of purpose — pursuit of life meaning

Action Model

├─ Ac1: Motivation — approach vs. avoidance orientation

├─ Ac2: Decision style — decisiveness

└─ Ac3: Execution style — planning vs. spontaneous action

Social Model

├─ So1: Social initiative — how proactively you engage socially

├─ So2: Interpersonal boundaries — personal distance with others

└─ So3: Authentic expression — how genuinely you express yourself

`

Each dimension is assessed by 2 questions, scored 2–6, then converted to L (Low), M (Medium), or H (High).

II. Technical Architecture

2.1 Overall Structure

SBTI uses a frontend-only architecture built with Vue 3 + Tailwind CSS:

`

src/

├── views/tools/

│ ├── SbtiView.vue # Main test page

│ └── SbtiGalleryView.vue # Personality gallery

├── data/

│ └── sbtiData.js # Test data (688 lines)

└── router/

└── index.js # Route config

`

2.2 Data Structures

Question structure:
`javascript

{

id: 'q1',

dim: 'S1',

text: 'I feel inferior; people around me seem more capable.',

options: [

{ label: 'Definitely', value: 1 },

{ label: 'Sometimes', value: 2 },

{ label: 'Not really', value: 3 }

]

}

` Personality type structure: `javascript

{

code: 'CTRL',

cn: 'The Controller',

intro: 'Got you under control, didn't I?',

pattern: 'HHH-HMH-MHH-HHH-MHM',

desc: 'Full personality description...'

}

`

2.3 Core Algorithms

#### Scoring

`javascript

function sumToLevel(score) {

if (score <= 3) return 'L';

if (score === 4) return 'M';

return 'H';

}

`

#### Matching (Euclidean Distance)

`javascript

function computeResult() {

// 1. Calculate per-dimension scores

const rawScores = {};

questions.forEach(q => {

rawScores[q.dim] += Number(answers[q.id] || 0);

});

// 2. Convert to L/M/H levels

const levels = {};

Object.entries(rawScores).forEach(([dim, score]) => {

levels[dim] = sumToLevel(score);

});

// 3. Build numeric vector

const userVector = dimensionOrder.map(dim => levelNum(levels[dim]));

// 4. Compute distance to each type

const ranked = NORMAL_TYPES.map(type => {

const vector = parsePattern(type.pattern).map(levelNum);

let distance = 0, exact = 0;

for (let i = 0; i < vector.length; i++) {

const diff = Math.abs(userVector[i] - vector[i]);

distance += diff;

if (diff === 0) exact++;

}

const similarity = Math.max(0, Math.round((1 - distance / 30) * 100));

return { ...type, distance, exact, similarity };

});

// 5. Sort: smallest distance → most exact hits → highest similarity

ranked.sort((a, b) => {

if (a.distance !== b.distance) return a.distance - b.distance;

if (b.exact !== a.exact) return b.exact - a.exact;

return b.similarity - a.similarity;

});

return ranked[0];

}

`

III. Frontend Implementation

3.1 Responsive Design

Mobile-first responsive approach using Tailwind breakpoints.

3.2 State Management

Vue 3 Composition API for all state:

`javascript

const currentScreen = ref('intro'); // intro/test/result

const answers = ref({});

const shuffledQuestions = ref([]);

const result = ref(null);

``

3.3 UX Optimizations

  • Shuffled questions on every test run
  • Real-time progress bar showing answered / total
  • Smooth scroll on screen transitions

IV. SEO Strategy

Structured meta tags, Open Graph, and JSON-LD schema are injected on mount to maximise discoverability.

V. Performance

  • Route-level code splitting via Vue Router lazy loading
  • Test data isolated in a separate 688-line module
  • Tailwind JIT for minimal CSS output

VI. Best Practices

1. Gradual UX flow: intro → test → result

2. Vue 3 Composition API for logic reuse

3. Euclidean distance: simple and effective similarity metric

4. Modular design: data, logic, and UI fully separated

VII. Future Roadmap

  • 📊 Shareable result cards
  • 📈 Test history saved locally
  • 🎨 Custom illustrations per personality type
  • 🤝 Compatibility analysis between two types

Conclusion

SBTI is both a fun personality tool and a showcase of modern frontend techniques. Whether you want to learn about yourself or build a similar quiz system, SBTI offers solid reference material.

Try it now: SBTI Test | Personality Gallery

---

References: Original author: Bilibili @蛆肉儿串儿 (UID: 417038183)
W

woshiit团队

woshiit AI Navigation · Original Content

More Articles

AI Tools

NüWa.skill: Distilling the Minds of Legends — Deep Conversations with Jobs & Musk via AI

8 min

Tech Basics

What is Base64 Encoding? Principles, Use Cases & Online Converter

7 min

Security

What is MD5? A Deep Dive into the MD5 Hashing Algorithm and Its Security

8 min

Tech Basics

The Complete Guide to URL Encoding: Why Chinese Characters Become %E4%B8%AD

6 min