Seit Jahrzehnten gilt in der Informatik eine scheinbar unumstößliche Trennlinie: Auf der einen Seite steht klassische, imperative Software - deterministisch, exakt, voller Verzweigungen, aber für maschinelle Lernalgorithmen eine undurchdringliche Wand. Auf der anderen Seite stehen künstliche neuronale Netze - stochastisch, fehlertolerant, über Gradientenabstieg trainierbar, jedoch oft unberechenbare Näherungswerkzeuge. Der Software-Pionier Cheng Lou, früherer Kernentwickler von React bei Meta sowie Schöpfer von ReasonML und der Animationsbibliothek React Motion, hat nun ein Open-Source-Projekt veröffentlicht, das diese zwei Welten nahtlos ineinander verschmelzen lässt: Handwired.
Das Konzept klingt auf den ersten Blick paradox: Handwired verwandelt gewöhnlichen JavaScript-Code in ein neuronales Netz. Doch statt Millionen Parameter über gigantische Datenmengen mühsam zu trainieren, werden die Gewichte des Netzes direkt aus der Programmlogik analytisch konstruiert. Das Ergebnis ist ein mathematischer Tensor-Graph, der exakte Ergebnisse liefert, vollständig differenzierbar ist und ohne Grafikkarte direkt im Webbrowser ausgeführt werden kann.
Wie aus einer Wenn-Dann-Abfrage ein mathematisches Tensor-Netzwerk wird
Herkömmliche Computerprogramme bestehen im Kern aus Schleifen, Zuständen und Verzweigungen (if-else). In einem klassischen Prozessor springt der Befehlszeiger je nach Bedingung an unterschiedliche Speicheradressen. Neuronale Netze kennen solche Sprungbefehle hingegen nicht - sie verarbeiten Eingaben als Vektoren über Matrizenmultiplikationen und nichtlineare Aktivierungsfunktionen.
Lou löst diesen scheinbaren Widerspruch durch eine elegante mathematische Transformation. Wie er im README des GitHub-Repositories veranschaulicht, lässt sich jede Bedingung über die sogenannte ReLU-Funktion (Rectified Linear Unit, in JavaScript Math.max(0, x)) in eine stetige arithmetische Formel übersetzen:
Eine einfache Zuweisung wie const result = a > 4 ? 10 : 12; wird bei Handwired zu einem rein linearen Ausdruck. Für eine ganze Zahl a liefert der Term const above4 = Math.max(0, a - 4) - Math.max(0, a - 5); exakt den Wert 1, wenn a größer als 4 ist, und 0 für alle kleineren Werte. Das Gesamtergebnis berechnet sich anschließend über const result = above4 * 10 + (1 - above4) * 12;. Beide Pfade werden parallel berechnet und über die ReLU-Maske exakt gewichtet.
Indem Handwired Additionen, Multiplikationen und ReLU-Aktivierungen bündelt, wird der gesamte Kontrollfluss des Programms in eine einzige große Matrizenmultiplikation (Matmul) über 32-Bit-Gleitkommazahlen (FP32) überführt.
| Eigenschaft | Klassisches JavaScript | Handwired Neuronales Netz |
|---|---|---|
| Ausführung | Sequenzieller JIT-Compiler auf der CPU | Matrizenmultiplikation + ReGLU auf CPU oder WebGPU |
| Bedingungen | Sprungbefehle im Kontrollfluss (Branching) | Stetige ReLU-Arithmetik (beide Pfade berechnet und maskiert) |
| Gewichte | Keine Gewichte (starre Anweisungen) | 100 % manuell verdrahtet ("hand-wired"), 0 Trainingsschritte |
| Differenzierbarkeit | Nicht differenzierbar für Backpropagation | Voll differenzierbar: Gradienten fließen durch das gesamte UI |
| Hybrid-Lernen | Logik statisch im Quelltext fixiert | Ausgewählte Gewichte können zur Laufzeit nachtrainiert werden |
HandwiredOS: Ein Desktop-System mit 130 Schichten und null Trainingsschritten
Dass es sich bei dem Ansatz keineswegs um ein rein theoretisches Gedankenspiel handelt, beweist Lou mit drei funktionierenden Demonstrationen auf der Projektseite. Das Herzstück ist HandwiredOS: eine kleine Desktop-Umgebung, die vollständig in regulärem JavaScript geschrieben und anschließend durch Handwired in ein neuronales Netz kompiliert wurde.
Das System umfasst exakt 9.909 Gewichte und 130 Netzwerkschichten - bei exakt 0 Trainingsschritten. Obwohl die gesamte Zustandslogik über Tensoren berechnet wird, rendert das Betriebssystem in das Standard-DOM des Browsers. Es unterstützt Fensterverschiebungen per Drag-and-Drop, dynamische Fensterstapelung, komplexe Scroll-Listen sowie physikalische Federanimationen, wie man sie aus modernen Benutzeroberflächen kennt.
In einer zweiten Demo, der Learned Gallery, zeigt Lou das transformative Potenzial dieser Architektur: Entwickler können einzelne Gewichte des kompilierten Programms "auftauen" und zur Laufzeit mit echten Trainingsdaten im Browser feinjustieren. Wo klassische Software bei unvorhergesehenen Eingaben starr bleibt, lässt sich die handverdrahtete Logik fließend an neue Anforderungen anpassen.
Eine dritte Anwendung demonstriert die Skalierbarkeit: Ein in JavaScript verfasster Suchalgorithmus mit regulären Ausdrücken und JSON-Parsing wird in WebGPU-Shader übersetzt. Dank der automatischen Vektorisierung durchsucht der Code 100.000 JSON-Dokumente parallel in wenigen Millisekunden - ein Tempo, das mit traditionellem Single-Thread-Code im Browser unerreichbar wäre, wie auch frühere Analysen zur WebGPU-Performance im Browser unterstreichen.
Architektur im Detail
Exakte Schwellenwerte: Anders als herkömmliche neuronale Netze, die kontinuierliche Wahrscheinlichkeiten ausgeben, erzeugt Handwired über Vorzeichenkaskaden (Sign Cascades) und Integer-Bits exakte Entscheidungsbits. Ein Fenster ist entweder fokussiert oder nicht - Zwischenzustände wie 0,7 werden strikt vermieden.
Deterministische Zeitschritte: Ereignisse werden strikt an Zeitstempel gebunden. Dadurch verhält sich die Benutzeroberfläche bei 10 Hertz exakt identisch wie bei 120 Hertz, was lückenlose Session-Replays und automatisierte Tests ermöglicht.
Neuro-symbolische Fusion: Wenn Sprachmodelle direkt auf Software-Zustände zugreifen
Die weitreichendste Konsequenz von Handwired liegt in der Überbrückung der Kluft zu großen Sprachmodellen. Bisher müssen KI-Agenten Benutzeroberflächen mühsam über Bildschirmfotos (Vision-Modelle) oder unvollständige HTML-Bäume interpretieren, wie die Debatten um automatisierte Software-Dekompilierung zeigen.
Wenn eine Anwendung jedoch selbst als neuronales Netz vorliegt, kann sie direkt an bestehende Modelle wie GPT- oder Claude-Architekturen gekoppelt werden. Da der gesamte Ablauf differenzierbar ist, können Gradienten aus dem Sprachmodell durch die Benutzeroberfläche fließen. Lou wirft im Repository die Frage auf, was geschieht, wenn ein Modell wie nanoGPT nahtlos mit einer Benutzeroberfläche verbunden und Ende-zu-Ende trainiert wird: Ein neuronales Netz könnte dann nicht nur Texte verfassen, sondern gleichzeitig die Steuerung komplexer Softwarestrukturen auf Matrixebene erlernen.
Dennoch gibt es praktische Einschränkungen. Weil Verzweigungen über Maskierungen abgebildet werden, müssen im Tensor-Graph grundsätzlich alle Zweige einer Bedingung berechnet werden - ein spekulativer Mehraufwand an Rechenoperationen gegenüber klassischem Code, der ungenutzte Pfade einfach überspringt. Zudem müssen Fließkomma-Rundungen auf FP32-Grenzen akribisch kontrolliert werden, um Abweichungen bei komplexen Berechnungen auszuschließen.
🎯 Was das für die Praxis bedeutet
1. Software und KI wachsen architektonisch zusammen: Handwired zeigt, dass die Grenze zwischen symbolischem Programmcode und neuronalen Netzen künstlich ist. Deterministische Regeln lassen sich verlustfrei in Tensoren ausdrücken.
2. Massive Parallelisierung ohne Shader-Spezialwissen: Entwickler können Standard-JavaScript schreiben und von der extremen Rechenkraft moderner Grafikkarten via WebGPU profitieren, ohne Shader manuell in WGSL programmieren zu müssen.
3. Fundament für robuste Agenten-Schnittstellen: Für Unternehmen eröffnet die vollständige Differenzierbarkeit von Benutzeroberflächen neue Wege, um KI-Assistenten fehlerfrei mit komplexen internen Fachanwendungen zu verzahnen.


