Inside the network MTNN LIVE • WASM 2MB
Pick any player-season and peer inside the MTNN — a glass box, not a black box.
Seventeen stat families each run through their own residual tower, fuse into a 48-number fingerprint,
then decode into archetype, position, skill grades, and next-year forecasts.
Click a node, output row, or tower to probe: lock the line-of-sight trace, see family share across every head, and read signed feature pushes. Truthful flow W1380 H880 — every box measured, 1:1 input→tower, no hand-waving.
How MTNN actually works — 4 videos, Cam's Lab authentic style
Light paper #FFFEF7 + blueprint dots, 2px ink borders + 3px hard shadow, Okabe triple-encoded (color+shape+text). 17 families 120 feats
cat([x·m,m]) → 17× 160→32 LN GELU res×2 544+12 556→128→48 L2 cosine → heads 8/5/14/18. No glow, no overlap, 18px labels. W1380 truthful • 14.4s • 153KBPaper cards: Donor A + Donor B → fuse 48-d → nearest real L2. Code box
argmin ||f(A)⊕f(B)-f(real)||₂ high-contrast #111 on #FFFEF7 18.6:1 AAA. Okabe accents with ink outline. 10.7s • 99KB3-col grid of white ink cards with Okabe dots: volume 5 · play 12 · reb 5 · def 3 · eff 10 · shotmix 13 · bio 4 · tracking*13 · form*6 · market 4 · roster 5 · career 5 · comp 4 · team 5 · pedig 7 · playoffs 14 · honors 5 =120. Mask
m∈{0,1} ∅=pre-2013 tracking, pre-2015 form → 0 grad never imputed. No overlapping, 18px AAA. 7.4s • 102KBv̂ = v/||v||₂, ||v̂||₂=1 • cos = v̂·ŵ = cosθ • ink circle on paper, Okabe arrows with ink border, yellow arc #F0E442 with #111 text 14.3:1 AAA. 12,392 pts on sphere powers Chimera & Era Twin. 6.8s • 41KBLoading architecture… MTNN v4 baseline: 17×160→32 LN GELU ×2, 12-d season emb, 544+12=556→128→48 L2 ~224K. Era-honest σ per-season, Procrustes-aligned, RealMLP robust.
Loading story — who this player is across 30 seasons…
Compare mode off — toggle to diff two seasons signed Δ.
Data flow — truthful W1380 H880 • v4 baseline
Input mask m∈{0,1} • cat([x·m,m]) • 2 residual blocks per tower 160→32 LN GELU + skip • season 12-d concat • L2 embed 48-d • MLP heads 8/5/14/18. Hover any node for LN/GELU/skip math. Click to lock trace.
Loading signal summary — tower activations, family share per head, fusion weights…
Click an input, tower, or output to see exact numbers — this player-season's activations + grads.
Guess & grade — heads decode 48-d → game
Same MLP heads as rightmost column in flow. Click a row to lock trace back through network — see which family drove it.
● Archetype guess — 8 — shape+color+pattern encoded
■ Position guess — 5 — Okabe-Ito AAA
▲ Skill grades out of 100 — 18×(48→16→1)
◆ Next-season forecast — per 100 possessions
Layer budget: 17×2 blocks 544+12=556→128→48 L2 ~224K params — 57% in fusion hidden layer. Era-honest σ means 1996 and 2026 both 0=average of their season. Masked ∅ gives 0 grad cat([x·m,m]) so not-tracked eras never explain predictions. How we built this → | Lab pipeline → | Why eras drift →
What drove this prediction — signed grad × input • not causal
Bars = how much network prediction moves with this input for this player-season — signed sensitivity, not what caused it. Not tracked era = 0 grad via mask. Triple-encoded: shape+icon+text+pattern for AAA, Okabe-Ito palette. Methods →
Embedding map — 48 numbers rendered in 3D • cosine = similarity
Slow auto-rotate • drag to orbit • scroll to zoom • hover for name+archetype • orange=selected player — 12,392 points L2-normalized.
- Playmaking + Steals
- Scoring Volume
- Defense etc — JS fills rest
Loading nearby players — 48-d L2 cosine = similarity. Same space as Chimera scoring + Era Twin matching.
Shipped MTNN • glass boxmtnn_v4_phase_bmtime 1783623905 • 2.26MB • ~224K params • ONNX 549KB • WASM 2MBShow layer math + keep-or-revert
z-scored per season • mask m∈{0,1}h = cat([x·m, m]) → 2·d_in17 families: volume / playmaking / rebounding / defense / efficiency / shotmix / bio / tracking / form / market / roster / career / competition / team / pedigree / playoffs / honors. Masked ∅ = tracking pre-2013, form pre-2015, etc. → 0 grad, never guessed.
Linear 2d_in→160 LN GELU 160→32 LN + skip ×2 → 32-d per towerMath:
17×32=544. LN = LayerNorm per tower. GELU, not ReLU. Skip = residual add before 2nd LN. Era-honest: each feature σ from its own season.Truthful: MAX_INPUT_NODES 17, W1380, COLS 110/250/350/470/580/700/900/1010/1120/1250, 1:1 input→tower.
12-d learned lookup → concat 544+12=556 → 556→128 GELU LN → 128→48 → L2 norm~224K params total — 57% in fusion 556→128 (70K) + 128→48 (6K). Towers ~132K. Season emb 12-d = 30 seasons ×12 learned. L2 = unit sphere, cosine = similarity. ONNX WASM 2MB loads <300KB gz bundle (105KB measured: 88.4KB gz + 16KB vendor).
48-d L2-normalized cosine=similarity for Chimera & Era Twin.Heads MLP
48→64→k: Archetype 8 / Position 5 / Next profile 14 / Next pred 14. Skills 18×(48→16→1) scalar regression (free throw, rim pressure, 3PT volume/acc, boards, rim D, steal, playmaking, etc) 0-99 grades.Chimera = 48-d fuse of two embeds → nearest real among 12,392. Era Twin = Procrustes-aligned rotation R minimizing ||X1999 R - X2025||_F + cosine search cross-decade. No lineup/on-off data used anywhere.
Show raw mtnn_arch.json — reproducible
Loading mtnn_arch.json… v4_phase_b • 17 families 120 feats → 544+12=556→128→48 L2 ~224K • mtnn.onnx 549KB opset18 • mtnn_embeddings.f32 12,392×48 L2 • mtnn_heads.f32 • mtnn_map.json • season_norms.json per-season μ/σ for era-honest inversion • 12,392 seasons 1996-97→2025-26 MIN≥800.
How the model learned — MTNN training run
Loss, composite quality score, recall@10 and purity@20 across every epoch. The same glass-box model above, shown as a learning curve — the point where CQS clears the promote bar is when a new model ships.
Hill-climb log — keep-or-revert • truthful only
- 2026-07-11 v5 — Procrustes era align drift ↓18% • RealMLP robust scaling • vite 65 modules 300KB raw 88.4KB gz + vendor 16KB =105KB gz •
RᵀR=Ichained root frames for Era Twin - 2026-07-10 v4 — truthful flow W1380 H880 COLS 110-1120 1:1 input→tower cat box B1h/B1o/B2h/B2o season node fusion 18r L2 badge • MTNNFlow + ChimeraEquation only relevant videos • 17 families 120 feats • ~224K params • ONNX 549KB WASM 2MB
Doctrine: every number recomputable from stats.nba.com — no vibes. Stats filter MIN≥800. Per-100 possessions, not per-game. Missing eras masked ∅, never imputed. Verification harness V1-V4 gates deploy.