Chess engines passed human strength years ago, but they still don't play like humans. A grandmaster under clock pressure blunders in ways a club player on a hot streak never would. Conventional engines capture none of this. This paper proposes a personality x psyche decomposition to produce behavioral variability in chess play, drawing on patterns observed in human games. Personality is static -- a preset that pins down the engine's character. Psyche is dynamic -- a bounded scalar ψ_t \in [-100, +100], recomputed from five positional factors after every move. These two components feed into an audio-inspired signal chain (noise gate, compressor/expander, five-band equalizer, saturation limiter) that reshapes move probability distributions on the fly. The chain doesn't care what engine sits behind it: any system that outputs move probabilities will do. It needs no search and carries no state beyond ψ_t. I test the framework across 12,414 games against Maia2-1100, feeding it two probability sources that differ by ~2,800x in training data. Both show the same monotonic gradient in top-move agreement (~20-25 pp spread from stress to overconfidence), which tells us the behavioral variation comes from the signal chain, not from the model underneath. When the psyche runs overconfident, the chain mostly gets out of the way (66% agreement with vanilla Maia2). Under stress, the competitive score falls from 50.8% to 30.1%. The patterns are reminiscent of tilt and overconfidence as described in human play, but I should be upfront: this study includes no human-subject validation.
Figures & tables
Factor
Symbol
Domain
Description
Material
f1(b)
Z
∑pvpnpown−∑pvpnpopp , v=(1,3,3,5,9)
King safety
f2(b)
Z
Pawn shield minus enemy attackers in king’s 3×3 area
Mobility
f3(b)
Z
∣Lown∣−∣Lopp∣ (own only if in check)
Center ctrl
f4(b)
Z
Own minus opp. attackers of {d4,d5,e4,e5}
Vulnerability
f5(b)
Z≤0
−∣{s:own piece on s attacked}∣
Table 1: Positional factor definitions for psyche computation.
Figure 1: Psyche computation pipeline. Five positional factors are extracted from the board, weighted, and summed to produce a raw evaluation et , which is tanh-compressed to a target psyche ψ^t∈[−100,+100] .
Psyche state
Best
Good
Mild
Bad
Worst
Stress ( ψ=−100 )
0.80
1.30
1.00
1.40
1.20
Neutral ( ψ=0 )
1.30
1.20
1.00
0.70
0.50
Overconfident ( ψ=+100 )
1.00
1.00
1.00
1.00
1.00
Table 2: EQ band gains for the “human” personality preset across psyche states.
Figure 2: Signal chain parameters for the “human” personality preset as a function of psyche ψ . Gate threshold is scaled ×20 for visibility. The dynamics power α crosses unity at ψ=0 : below neutral it acts as an expander (flattening the distribution), above as a compressor (sharpening it). All parameters interpolate linearly between the three psyche anchors.
Figure 3: EQ band gains for the “human” personality preset at three psyche conditions, displayed as equalizer panels. Each dot is a band control point (Best, Good, Mild, Bad, Worst); the smooth interpolated curve and shaded fill show the gain deviation from the white unity baseline (above = boost; below = cut). Under stress ( ψ=−70 ), humps at “good” and “bad” shift weight toward adjacent tiers. At neutral ( ψ=0 ), a strong monotone preference ordering is imposed. At overconfidence ( ψ=+70 ), all deviations converge toward zero and the EQ becomes nearly flat.
Figure 4: Ailed system architecture. The move predictor fθ produces logits fed into the move selector; the psyche calculator computes the psyche state ψt from board position evaluations. Psyche state modulates all three output paths: move selection (signal chain), thinking mode (plan disruption), and study mode (skip probability and exploration quality). Dashed arrows indicate conditional paths.
Hyperparameter
Value
Vocabulary ∣V∣
4,547
Embedding dim d
512
Attention heads
8
Layers N
6
FFN dim
2,048
Max sequence length Lmax
300
Table 4: Move predictor hyperparameters.
Figure 5: Thinking mode lifecycle. A plan is generated when confidence exceeds the threshold, stored in a single-slot buffer, and executed only if the opponent’s actual move matches the prediction and the psyche disruption check passes.
Experiment
Condition
Games
W
D
L
Score
Avg Ply
A: Ailed-60k
Stress
667
22
79
566
9.2%
62
Neutral
667
36
60
571
9.9%
61
Overconfident
667
33
65
569
9.8%
61
B: Maia2+Psyche
Stress
667
123
155
389
30.1%
68
Neutral
667
95
402
170
44.4%
39
Overconfident
667
41
596
30
50.8%
16
Table 5: Match results across experiments and controls. Score is from the psyche-modulated side’s perspective against vanilla Maia2-1100. Controls use Maia2+Psyche (Experiment B’s base) with chain disabled.
Figure 6: Average psyche trajectories across 667 games per condition. Background shading marks the three psyche zones: light red ( ψ<−33 , stress), white ( ∣ψ∣≤33 , neutral), light blue ( ψ>33 , overconfident); dotted lines at ψ=±33 mark zone boundaries. Shaded curve areas show the psyche footprint relative to neutral. (a) Ailed-60k: all conditions converge toward ψ≈−100 by move 30; meaningful three-way separation is confined to the first ∼ 15 moves. (b) Maia2+Psyche: the stronger model sustains separation throughout—stress stabilises around −40 , neutral around −30 , and overconfident decays gradually from +80 without collapsing. The initial forced psyche is visible at move 0 in both panels.
Figure 7: Signal chain auto-tuning during a single stress game (Ailed-60k Game 502, ψ0=−80 , 54 moves, draw). (a) Psyche trajectory: forced stress ( −77 ) recovers through neutral into overconfidence (peak +73 at move 27), then collapses back to −98 as the position deteriorates. (b) EQ band gains shown as deviation from unity (positive = boost, negative = cut). At low ψ (moves 0–14), “good” is strongly boosted ( +0.28 ) while “worst” is cut ( −0.27 ), and “best” is suppressed—a diffuse selection profile. At the overconfident peak (move 27), all deviations shrink toward zero—the EQ becomes transparent. In the degradation phase (moves 30+), the pattern resembles the low- ψ opening. (c) Signal chain parameters track the psyche: dynamics power crosses unity at neutral (expander below, compressor above), gate opens under stress and tightens at confidence, saturation ceiling rises and falls with psyche.
Experiment
Condition
Moves
Entropy
Confidence
Top Agree%
A: Ailed-60k
Stress
20,612
1.610
0.459
37.1 [36.3, 37.9]
Neutral
20,086
1.639
0.466
45.9 [45.2, 46.6]
Overconfident
20,337
1.664
0.469
57.0 [56.4, 57.6]
B: Maia2+Psyche
Stress
22,606
1.612
0.497
41.2 [40.5, 41.9]
Neutral
12,901
1.542
0.529
51.8 [51.0, 52.6]
Overconfident
5,180
1.515
0.575
66.0 [65.0, 67.0]
Table 6: Signal chain behavioral metrics across conditions (per-game means; 95% bootstrap CI for controls). Moves = total modulated-side moves; “–” indicates move counts not recorded for control runs.
Figure 8: Top-move agreement by condition across both experiments (4,002 games). Both engines show the same monotonic gradient: stress reduces agreement (more deviation from model’s top pick), overconfidence increases it (near-deterministic selection). The gradient is steeper for Maia2+Psyche because its stronger model probabilities give the signal chain more concentrated input to work with.
Metric
Ailed-60k spread
Maia2+Psyche spread
Score
+0.6 pp (9.2 → 9.8)
+20.7 pp (30.1 → 50.8)
Top agree%
+19.9 pp (37.1 → 57.0)
+24.8 pp (41.2 → 66.0)
Confidence
+0.010 (0.459 → 0.469)
+0.078 (0.497 → 0.575)
Entropy
+0.054 (1.610 → 1.664)
−0.097 (1.612 → 1.515)
Table 7: Signal chain gradient comparison: stress → overconfident spread across engines.
Engine
Mode
Stress
Neutral
Overconf.
Spread
Score s → o
Ailed-60k
Full
37.1
45.9
57.0
19.9 pp
9.2–9.8%
Ailed-60k
Entropy-only
37.4
45.8
56.3
18.9 pp
10.0–5.5%
Ailed-60k
Fixed ( c=1 )
36.5
44.2
55.4
18.9 pp
10.2–9.0%
Maia2+Psyche
Full
41.2
51.8
66.0
24.8 pp
30.1–50.8%
Maia2+Psyche
Entropy-only
43.2
51.5
71.3
28.1 pp
25.8–52.0%
Maia2+Psyche
Fixed ( c=1 )
41.1
50.1
71.6
30.5 pp
27.8–50.5%
Table 8: Outcome predictor ablation: top-move agreement (%) and spread across confidence modes. Spread = overconfident − stress.
Configuration
Stress
Neutral
Overconf.
Spread
Full chain
41.9
60.1
76.6
34.7 pp
No gate
35.6
53.5
72.0
36.4 pp
No dynamics
54.1
61.7
68.4
14.3 pp
No EQ
44.3
62.5
74.9
30.6 pp
No saturation
48.3
64.7
78.2
29.9 pp
No gate + no dynamics
51.7
52.9
54.1
2.4 pp
Table 9: Stage-wise signal chain ablation: top-move agreement (%) by psyche zone (Maia2+Psyche, 334 games per zone per config). Flat control (667 games/zone) shown for reference. Spread = overconfident − stress.
Finding
Evidence
Ref.
Signal chain produces monotonic gradient
Top agree: 37–57% (A), 41–66% (B)
Section 7.2.4
Gradient is architecture-agnostic
∼ 20–25 pp spread for both engines
Section 7.2.5
Overconfident = near-transparent
66% Maia2 agree, 596/667 draws (B)
Section 7.2.1
Stress degrades competitive score
30.1% stress vs. 50.8% overconfident (B)
Section 7.2.1
Confidence tracks psyche state
Monotonic increase: 0.459 → 0.575
Section 7.2.4
Training data gap limits Ailed
9.2–9.9% score vs. 30–51% for Maia2+Psyche
Section 7.2.1
Table 10: Summary of key experimental findings from 12,414 games across four experiments.
Zone
Human CPL [95% CI]
Ailed CPL [95% CI]
Difference
Panic
64.9 [63.3, 66.5]
48.4 [39.6, 58.5]
+16.5
Stressed
96.8 [94.8, 98.9]
66.8 [55.7, 78.8]
+30.0
Neutral
76.8 [75.2, 78.4]
61.3 [53.2, 70.1]
+15.5
Confident
79.4 [77.9, 81.0]
65.0 [54.1, 77.5]
+14.4
Overconf
54.5 [53.4, 55.7]
58.2 [50.1, 67.6]
−3.7
Table 11: Mean centipawn loss per psyche zone: human 1100-ELO players (Lichess 2016, n=7,748 games, 25,000 moves/zone, Stockfish depth 8) vs. Ailed (2,001 experiment games, 300 moves/zone). Difference = Human − Ailed.