Views
No views yet

| Metric | Value |
|---|---|
| Eval word accuracy | 10.7% (over 30K vocabulary) |
| Train word accuracy | 16.9% |
| Train/eval gap | 1.6x (best generalization of all versions) |
| Longest coherent output | "she started to play together again" (6 words) |
| Parameters | 35.4M |
| Model size | 68 MB |
| Grid | 16×16×16 = 4,096 cells |
| Cell dimension | 256 |
| Training | 16 epochs, ~10.7h on NVIDIA B200 |
"the" + _ → nouns/adjectives (correct category)
"the big" + _ → nouns ("dog", "house", "girl")
"the dog" + _ → verbs ("was", "ran", "had")
"she wanted" + _ → "to" (infinitive structure)"she started to play together again"
"the little girl wanted to play with her parents"
"he said that he was very happy"
"in the morning she went to the garden"INPUT (face z=0) THINKING (interior) OUTPUT (face z=15)
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Tokens are │ →→→ │ 3D waves │ →→→ │ Prediction │
│ injected │ waves │ propagate │ waves │ is read │
│ into skin │ │ N steps │ │ from pole │
└─────────────┘ └─────────────┘ └─────────────┘

1import torch
2import torch.nn.functional as F
3import json
4from model import NCA3D_Fatigue
5
6# Load dictionary
7word2num = {k: int(v) for k, v in json.load(open("word_dictionary_30k.json")).items()}
8num2word = {v: k for k, v in word2num.items()}
9
10# Load model
11model = NCA3D_Fatigue()
12model.load_state_dict(torch.load("model_phase4c_v5_fatigue_best.pt", map_location="cpu"))
13model.eval()
14
15# Predict next word
16context = ["the", "little", "girl"]
17ids = [word2num[w] for w in context]
18with torch.no_grad():
19 logits = model(torch.tensor([ids]), n_steps=15)
20 pred_id = logits.argmax(-1).item()
21 print(f"'{' '.join(context)}' → '{num2word.get(pred_id, '?')}'")
22
23# Generate a sequence
24from inference import generate
25print(generate(model, word2num, num2word, ["she", "wanted", "to"], max_words=8))Component Shape Params
────────────────────────────────────────────────────────────────────
word_embed Embedding(30006, 384) 11.5M
embed_proj Linear(384, 256) 98K
pos_embed Embedding(52, 256) 13K
init_state (1, 256, 16, 16, 16) 1.05M
trans1.conv1 (dilated) Conv3d(256→512, k=3³) 3.5M
trans1.conv2 (dilated) Conv3d(512→256, k=3³) 3.5M
trans2.dw_conv (dilated) Conv3d(256→256, k=3³, groups) 6.9K
trans2.pw_conv Conv3d(256→256, k=1) 65K
gate_conv Conv3d(256→256, k=1) 65K
norm (GroupNorm) 32 groups, 256 ch 512
out_proj 256→512→30006 15.6M
────────────────────────────────────────────────────────────────────
TOTAL ~35.4M| Phase | What | Result |
|---|---|---|
| 1 | Arithmetic (8³ grid, 499K params) | 98.4% on unseen data |
| 2A | 15 semantic relations | 98.2% test, 87.5% generalization |
| 2B | 100 semantic relations | 73.4% test (85.5% without "similar") |
| 2B-v3 | 184 relations (grammar + semantics) | 93.5% overall |
| 3B | Q&A from relations | 85% direct, 75% novel |
| 3C | Transitive reasoning | 52.5% holdout, 83.3% novel chains |
| 4 | Language as arithmetic | 50.2% char accuracy, grammar emerges |
| 4B | Multi-step loss | 55.4% char accuracy |
| 4C-v1→v4 | Word embeddings, dilated conv, 30K vocab | Incremental improvements |
| 4C-v5 | Synaptic fatigue + intensive training | 10.7% eval, 6+ word coherence |
1@misc{quintela2026nca3d,
2 title={NCA 3D Brain: Neural Cellular Automata for Language Processing},
3 author={Cristian Quintela},
4 year={2026},
5 url={https://huggingface.co/killking69/nca3d-brain-v5}
6}