PRE-PRINT • arXiv:2603.05352 • March 2026
Ailed: A Psyche-Driven Chess Engine with Dynamic Emotional Modulation
Diego Armando Resendez Prado • Independent Researcher
I just built a psyche-driven chess engine — and published my first research paper about it. Ailed is a chess engine with something no chess engine has ever had: an emotional state that actually changes how it plays.
Let me walk you through it.
The Starting Point: Why We Need a Psyche-Driven Chess Engine
Chess engines are insanely strong. Stockfish, Leela, AlphaZero — they left humans behind a long time ago. But here’s the thing: they don’t play like humans. A grandmaster under clock pressure blunders in ways a club player on a hot streak never would. A player who just lost a tough game comes back tilted. Someone on a winning streak starts taking risks that make no positional sense.
Stress, overconfidence, tilt — these are real things that shape how we play chess, and no engine captures any of it.
What if the engine’s mistakes weren’t random noise, but patterns that responded to what’s happening in the game?
That was my starting point. Not making engines weaker — but making their imperfections meaningful.
The Psyche
I gave my engine — Ailed — an internal emotional state called the psyche. It’s a single number from −100 (stressed out) to +100 (overconfident). After every move, five factors from the board position push it around:
Material Balance
Are we up or down in pieces? Losing a queen tanks the psyche. Winning material boosts it.
King Safety
Is our king tucked behind pawns or exposed? An exposed king pushes psyche toward stress.
Pieces Under Attack
How many of our pieces are being threatened right now? More threats = more stress.
Center Control
Do we control the key squares (d4, d5, e4, e5)? Owning the center builds confidence.
Mobility
How many legal moves do we have? More options = calmer psyche. Fewer options = panic.
Getting checked? That’s a flat −50 penalty to the psyche. Because nobody likes being in check.
Between sessions, the psyche decays 20% back toward neutral — like sleeping off a bad day. Half-life of about 4 days. It creates a feedback loop: bad positions → stress → worse play → worse positions. And the reverse — good positions build confidence, but too much confidence makes you reckless. That’s basically how tilt works in real life.
Stress Zone (ψ < −33)
Open gate, flat distribution, scattered EQ. The engine considers too many moves, plays erratically, makes mistakes under pressure.
Neutral Zone (|ψ| ≤ 33)
Balanced chain — moderate gate, unity dynamics, standard EQ. The engine plays its natural game without emotional interference.
Overconfident Zone (ψ > +33)
Tight gate, compressed distribution, risk-seeking EQ. The engine narrows its focus and explores creative lines over safe ones.
The Signal Chain: What Makes This a Psyche-Driven Chess Engine
Here’s the part I’m most proud of. The analogy hit me one day staring at guitar pedals: shaping a probability distribution over chess moves isn’t that different from running audio through effects. So I built a literal signal chain — four stages, each one controlled by the psyche:
SIGNAL CHAIN
Model Logits → ⬤ Noise Gate → ⬤ Dynamics → ⬤ EQ → ⬤ Saturation → Move
Noise Gate
Silences moves below a psyche-dependent threshold. Stress opens the gate wide — weak moves leak through. Overconfidence tightens it — only the strongest survive.
Dynamics
Reshapes the probability spread with a power-law transform. Stress flattens the distribution — the engine considers too many options. Overconfidence sharpens it — zeroes in on fewer candidates. This is mathematically equivalent to temperature scaling, but dynamically coupled to psyche.
Equalizer (5-band)
Moves ranked into five bands: best, good, mild, bad, worst. Each band gets a gain multiplier based on psyche. Under stress, mid-tier moves get boosted — scattered attention. Under overconfidence, “good” alternatives get boosted — modeling creative risk-taking over safe defaults.
Saturation
Caps the maximum probability of any single move, keeping some randomness even at peak confidence. The engine never becomes fully deterministic — there’s always a little chaos.
Every parameter is a function of psyche. The psyche is a function of board position. The board changes because of the moves. It’s a closed loop — this psyche-driven chess engine creates its own emotional trajectory as the game unfolds.
Engine-agnostic: The signal chain doesn’t care what engine is underneath. Any system that outputs move probabilities can be wrapped in it — it’s middleware.
Personality Presets
Since the whole thing came from an audio analogy, I named the personality presets after music genres. Personality defines who the engine is. Psyche defines how that personality reacts under pressure. They’re orthogonal.
| Preset | Character | Play Style |
|---|---|---|
| 🎻 Classical | Disciplined | Tight gate, sharp dynamics — methodical and precise |
| 🎸 Rock | Bold | V-shaped EQ, goes for it without overthinking |
| 🎷 Jazz | Creative | Avoids the obvious move, heavy saturation — the contrarian |
| 🤘 Metal | Chaotic | Boosts even weak moves — will try anything |
| 🧑 Human | Realistic | Stress-sensitive, tilts like a real person (default) |
Results: Testing the Psyche-Driven Chess Engine Across 22,419 Games
I tested this across 22,419 games in six experiments against Maia2 at three ELO levels.
EXPERIMENT B — Maia2+Psyche vs. Vanilla Maia2-1100 (667 games per condition)
| Condition | Wins | Draws | Losses | Score |
|---|---|---|---|---|
| 😰 Stress (ψ₀ = −80) | 123 | 155 | 389 | 30.1% |
| 😐 Neutral (ψ₀ = 0) | 95 | 402 | 170 | 44.4% |
| 😎 Overconfident (ψ₀ = +80) | 41 | 596 | 30 | 50.8% |
Static temperature scaling produces <2.5 pp of behavioral spread.
The contribution comes from the dynamic coupling, not the transform itself.
Psyche-coupled signal chain produces 34.7 pp.
That’s a 14× amplification.
1.89
Cohen’s d effect size
(0.8 = “large”)
22,419
Total games tested
across 6 experiments
23.7M
Parameter transformer
trained in 32 min on Apple M-series
The signal chain works on both Ailed’s own transformer and on Maia2, producing the same qualitative gradient — it really is engine-agnostic. Against a stronger opponent (Maia2 at 1500 ELO), the gradient still holds: 25.5% under stress rising to 40.9% under overconfidence.
Honest limitation: This paper validates the mechanism — that the signal chain produces controllable, measurable behavioral differences. What it doesn’t validate yet is whether humans actually perceive these as emotionally meaningful. That’s the next study.
Beyond Move Selection
The psyche also drives two cognitive extensions:
Thinking Mode
A lookahead planner that builds multi-move plans. At maximum stress (ψ = −100), there’s an 80% chance the engine abandons the plan mid-execution — like a tilted player who panics and plays something random. At maximum overconfidence, plans become rigid.
Study Mode
Post-game analysis where quality degrades at psyche extremes. Stress produces noisy, scattered analysis. Overconfidence produces narrow analysis that misses important alternatives. The engine literally studies worse when it’s emotional.
There’s also a progressive learning loop: play → study → retrain → play. The engine keeps learning from its own games over time. If you’re curious about the tech stack behind my other projects, check out my other posts.
Watch It Play
Here’s a real game from Lichess — ailedbot vs bananarama3000, 103 moves. The bot won on time as white. Step through the moves and see the kind of chess this psyche-driven chess engine produces:
What’s Next
Ailed is deployed as a Lichess bot playing real games right now. The paper is on arXiv, and I’m working on expanding the system further. There’s more in the works, but I’ll share when it’s ready.
If you’re interested in the intersection of emotion modeling and game AI — or if you just want to challenge a chess engine that might tilt on you — check it out. I’d genuinely love to hear feedback.

Leave a Comment