diff --git a/src/bqn/nn.bqn b/src/bqn/nn.bqn
index 6b15b50..e282fe0 100644
--- a/src/bqn/nn.bqn
+++ b/src/bqn/nn.bqn
@@ -4,19 +4,20 @@ M ← +˝∘×⎉1‿∞
Minn ← {rt‿ly𝕊dat:
A‿DA ← ⟨1÷1+⋆∘-, ⊢×1⊸-⟩
- BP ← {fs‿ts‿we𝕊𝕩:
- do ← <(-⟜ts×DA)⊑hx‿tx ← 1(↑⋈↓)⌽𝕩
- (fs<⊸∾tx)×⌜˜¨⌽do∾do{d𝕊w‿z: z DA⊸×d M˜⍉w}`⋈¨´tx⋈˜1↓we
+ BP ← {fs‿ts‿we𝕊𝕩:
+ do ← <(-⟜ts×DA)⊑⊑hx‿tx ← ¯1(↑⋈↓)𝕩
+ (fs<⊸∾tx)×⌜˜¨do∾˜do⊸({d𝕊w‿z: z DA⊸×d M˜⍉w}`)⌾⌽tx⋈¨˜1↓we
}
- FP ← {z𝕊b‿we: we‿z⋄A¨b+we M z}`⟜(⋈¨´)
- E ⇐ FP{⊢´𝕩𝔽 dat{𝕨𝕊bi‿we: fs‿ts ← 𝕨(↑⋈↓)˜⊑ly
- bi⋈we-rt× fs‿ts‿we BP fs<⊸FP𝕩}˝˜(U⚇1-⟜1∘≠⋈·<∘⌽˘2⊸↕)ly}
+ FP ← {z𝕊b‿we: A¨b+we M z}`⟜(⋈¨´)
+ nn ← dat{𝕨𝕊bi‿we: fs‿ts ← 𝕨(↑⋈↓)˜⊑ly
+ bi⋈we-rt× fs‿ts‿we BP fs<⊸FP𝕩}˝˜(U⚇1-⟜1∘≠⋈·<∘⌽˘2⊸↕)ly
+ E ⇐ ⊢´<⊸FP⟜nn
}
-n‿ri‿rf‿dr ← 10‿2.8‿4‿0.1
-≠td ← ∾{𝕩∾˘2↕𝕩(⊣×1⊸-×⊢)⍟(↕n)•rand.Range 0}¨↕∘⌈⌾((ri+dr×⊢)⁼)rf
+n‿e‿ri‿rf‿dr ← 200‿300‿2.8‿4‿0.1
+pd ← ∾{𝕩∾˘⊏⍉2↕𝕩(⊣×1⊸-×⊢)⍟(↕⌊3÷˜n)•rand.Range 0}¨↕∘⌈⌾((ri+0.01×⊢)⁼)rf
+@⊣td ← ∾⍟(e-1)˜∾{𝕩∾˘2↕𝕩(⊣×1⊸-×⊢)⍟(↕n)•rand.Range 0}¨↕∘⌈⌾((ri+dr×⊢)⁼)rf
-lm ← 0.01‿⟨2, 5, 1⟩ Minn td
-≡lm.E 2.85
+lm ← 0.001‿⟨2, 300, 1⟩ Minn td
-)r Setplot "scatter" ⋄ •Out¨ Plot´ m {ns←≠⊑𝕨 ⋄ (>𝕨)⋈˜∘‿ns⥊ns/𝕩} r
+)r Setplot "scatter" ⋄ •Out¨ Plot˝⍉(⊑∾lm.E)˘pd
diff --git a/src/nn.org b/src/nn.org
index cd75d70..9825ffd 100644
--- a/src/nn.org
+++ b/src/nn.org
@@ -1,5 +1,5 @@
# -*- eval: (face-remap-add-relative 'default '(:family "BQN386 Unicode" :height 180)); -*-
-#+TITLE: The miniaturist's neural network (WIP)
+#+TITLE: The miniaturist's neural network
#+HTML_HEAD:
#+HTML_HEAD:
#+HTML_HEAD: