OmegaSim Wiki

OmegaSim Wiki – die Idee dazu stammt von Gnen54. Hier stehen die offenen Artikel von Nutzer Luuke42 unter der Lizenz CC BY-SA 4.0.

Vibe-Coding

Stand dieses Artikels: OmegaSim 1.2.9 vom 26.10.2026 · Firmware des Autos: nicht bekannt (OmegaSim liest die Firmware-Version nicht aus)
Dieser Text wurde mithilfe von KI erstellt (Claude) und ist nicht in jedem Punkt von Menschen geprüft. Fehler bitte direkt verbessern oder auf der Diskussionsseite melden, siehe Mitmachen. Die öffentliche Fassung auf luuke42.github.io/omegasim kann älter sein als der hier beschriebene Stand.

Kategorie:Mit KI erstellt

Vibe-Coding (englisch, etwa „Programmieren nach Gefühl“) ist eine Arbeitsweise, bei der Software entsteht, indem ein Mensch in natürlicher Sprache beschreibt, was er haben will, ein KI-Sprachmodell den Quelltext schreibt und der Mensch das Ergebnis vor allem durch Ausprobieren beurteilt, statt jede Zeile selbst zu lesen. Der Begriff wurde Anfang 2025 von dem Informatiker Andrej Karpathy geprägt und hat sich seitdem für ein ganzes Spektrum von Arbeitsweisen eingebürgert, vom reinen „Wünschen und Ausprobieren“ bis zu KI-gestützter Entwicklung mit Tests und Prüfungen. OmegaSim ist auf diese Weise entstanden: Der Autor formuliert Wünsche und Fehlerberichte in Alltagssprache, KI-Assistenten (Claude) setzen sie im Code um, und abgesichert wird das Ergebnis durch Selbsttests, Messungen am Tisch mit echten Autos, Patchnotes und ein festes Versionsschema. Dieser Artikel beschreibt den Begriff neutral und zeigt, welche Spuren die Arbeitsweise im Quellcode hinterlassen hat.

Auf einen Blick

Merkmal Wert
Begriff vibe coding, geprägt Anfang 2025 (Andrej Karpathy)
Kern Beschreiben in natürlicher Sprache → KI schreibt Code → Mensch prüft durch Ausprobieren
Bei OmegaSim Wünsche des Autors, Umsetzung durch KI-Assistenten (Claude), Prüfung durch Selbsttest und Versuche am Tisch
Spuren im Code (Stand 26.10.2026) 832 Kommentare „BESTELLT:“ und 284 „GEMELDET:“ in src/
Absicherung 522 Selbsttests, Bauprüfungen in tools/build.py, WIP-Kennzeichnung (97 Etiketten im Markup), Patchnotes je Nebenversion, Version aus der Git-Historie
Regeln Anleitung für KIs, Mitmachen

Grundlagen

Abgrenzung

Karpathys ursprüngliche Beschreibung meinte ein Programmieren, bei dem man den erzeugten Code kaum noch ansieht und Fehlermeldungen einfach an das Modell zurückgibt. Im heutigen Sprachgebrauch reicht der Begriff weiter. Man kann drei Formen unterscheiden:

Form Wer schreibt den Code? Wie wird geprüft?
klassisch Mensch Lesen, Tests, Review
KI-gestützt KI schlägt vor, Mensch übernimmt Zeile für Zeile Mensch liest jede Änderung
Vibe-Coding im engeren Sinn KI Ausprobieren des Ergebnisses

OmegaSim liegt zwischen den beiden letzten: Der Autor beurteilt vor allem das Verhalten der App, aber die KI ist durch Projektregeln angehalten, Tests mitzuschreiben, Messwerte zu nennen und Unsicheres zu kennzeichnen.

Funktionsweise

Wie eine Änderung an OmegaSim entsteht

  1. Wunsch oder Meldung: Der Autor schreibt in Alltagssprache, was er will oder was ihm aufgefallen ist, zum Beispiel: „Drift-Modus weg, Roh-Input-Modus ändern: wenn ich vom Gas gehe, dann nicht direkt auf 0, sondern nur sehr schnell (in 2 s), und beim Bremse-Drücken sofort. … Nenn den Modus RC.“
  2. Umsetzung: Ein KI-Assistent liest die betroffenen Dateien in src/, ändert sie und hält den Wunsch wörtlich als Kommentar „BESTELLT:“ an der Stelle fest, an der er umgesetzt ist.
  3. Kennzeichnung: Neue Funktionen bekommen sofort das Etikett „WIP“ oder „experimentell“, nicht erst auf Nachfrage.
  4. Selbsttest: Für die Änderung wird eine Prüfung mit stAdd(…) geschrieben, die mit denselben Funktionen rechnet wie die App und ein Maß ausgibt.
  5. Bau: tools/build.py setzt die Datei zusammen und prüft Verweise, Wörterbuch, Element-Kennungen und Klammern.
  6. Prüfung: Der Selbsttest läuft im Browser. Rot darf nur werden, was vorher schon rot war.
  7. Texte: Patchnotes werden ergänzt (Abschnitt je Nebenversion, mit englischer Übersetzung), neue Oberflächentexte in die Wörterbücher für Englisch und Spanisch eingetragen, Erklärungen in die ⓘ-Fenster der Optionen.
  8. Version und Commit: tools/bump_version.py setzt die Nummer, der Commit trägt den Hinweis auf die beteiligte KI.
  9. Versuch am Tisch: Alles, was echte Autos betrifft (Bluetooth, Latenz, Lesen der Streckenteile, Klang), prüft der Autor selbst mit den Autos. Was dabei auffällt, kommt als neue Meldung zurück in Schritt 1.

Spuren im Quellcode

Die Arbeitsweise lässt sich im Code nachzählen. Gezählt am 26.10.2026 mit grep -o "BESTELLT" src/*.js src/*.html | wc -l und entsprechend:

Markierung Bedeutung Anzahl in src/
BESTELLT: wörtlich zitierter Wunsch des Autors 832 (davon 140 in 00-index.head.html, der Rest in den JavaScript-Dateien)
GEMELDET: wörtlich zitierte Fehlermeldung aus dem Gebrauch 284

Dazu kommen 39 „BESTELLT“ in tools/ und 5 im Java-Code der Android-Hülle. Am häufigsten sind sie in 90-ghosts.js (NPCs, Garage) und 70-race.js (Rennen). Weil das Repository weiter wächst, ändern sich die Zahlen mit jedem Push.

Typisch ist, dass der Kommentar nicht nur den Wunsch zitiert, sondern auch den Grund der Lösung und frühere Irrwege nennt, oft mit Messwerten. Ein Beispiel aus src/20-protocol.js zum RC-Modus:

// v1.1.3 BESTELLT: "RC-Modus: linker Trigger soll auf 0 runterbremsen. Wenn
// Geschwindigkeit = 0 und ich nochmal druecke, dann rueckwaerts fahren. Lenkwinkel
// nie begrenzen." Vorher bremste der erste Druck fest RC_BREMS_MS (600 ms) lang -
// aus voller Fahrt zu kurz, aus langsamer Fahrt zu lang. Jetzt fuehrt rcGas eine
// GESCHAETZTE Geschwindigkeit mit (das Auto meldet keine) ...
const RC_AUSLAUF_MS = 2000, RC_STEHT_MS = 150, RC_BREMS_VOLL_MS = 700,
      RC_V_AUF_S = 0.5, RC_V_AB_S = 0.8;

Aus dem Satz „wenn ich vom Gas gehe, dann … in 2 s“ ist die Konstante RC_AUSLAUF_MS = 2000 geworden; aus „Wenn Geschwindigkeit = 0 und ich nochmal drücke, dann rückwärts“ eine kleine Zustandsmaschine, die eine geschätzte Geschwindigkeit mitführt, weil das Auto seine Geschwindigkeit nicht meldet.

Die Commits tragen den Hinweis „Co-Authored-By: Claude …“: Von den 71 Commits, die seit dem letzten Zusammenfassen der Historie (19.10.2026) im Repository stehen, sind es 37. Von den übrigen 34 sind 21 automatische Aktualisierungen der Challenges-Bestenliste durch GitHub Actions; der Rest sind Zusammenführungen und Commits ohne diesen Hinweis, deren Entstehung aus dem Repository nicht hervorgeht. Auch die Wiki-Artikel tragen über die Vorlage Stand den Hinweis „mithilfe von KI erstellt“.

Absicherung

Mittel Was es abfängt Wo
Selbsttest (522 Prüfungen) dass eine Änderung etwas Bestehendes bricht; jede Zeile nennt ihr Maß src/95-selftest.js, Entwickler → Selbsttest
Bauprüfungen Syntaxfehler, die die ganze App leer lassen (Klammern, verwaistes Wörterbuch), fehlende Dateien, Zugriffe auf nicht vorhandene Elemente tools/build.py
Versuche am Tisch alles, was nur mit echten Autos sichtbar wird Mitschnitte des Bluetooth-Verkehrs, Messzeile Funk-Rundlauf, Code-Sonde
WIP-Etikett dass Unfertiges als fertig gilt <span class="wip-tag"> im Markup
Patchnotes dass Nutzer nicht wissen, was sich geändert hat Optionen → Patchnotes, je Nebenversion ein Abschnitt
Versionsschema dass Fehlerberichte keiner Fassung zugeordnet werden können tools/bump_version.py, Nummer unten auf dem Startbildschirm
Dokumentation der Messungen dass Annahmen als Fakten gelten CARRERA_HYBRID.md

Regeln, die sich bewährt haben

Die Regeln stehen ausführlich in der Anleitung für KIs. Aus dem Code und der Projektgeschichte lassen sich diese Gründe ablesen:

Chancen und Risiken

Chancen

Risiken

Beispiele

Von der Meldung zur Messung: Eingabeverzögerung

  1. Gemeldet: „Mit zwei Ghosts gibt es eine leichte Eingabeverzögerung, lässt sich die Berechnung beschleunigen?“
  2. Die naheliegende Antwort (Rechnung optimieren) wurde nicht umgesetzt, sondern gemessen: Ein Takt kostet 0,3 ms ohne und 0,4 ms mit zwei NPCs, unter 2 % des 45-ms-Budgets.
  3. Die Ursache lag im Schreibweg: Ein laufender Schreibvorgang ließ den nächsten Befehl ersatzlos ausfallen. Eine Messreihe zeigte, dass eine Millisekunde über dem Takt die Befehlsrate halbierte.
  4. Die Lösung (neuestes Paket merken, Tiefe eins) ist seit 0.5.8 im Code und mit einer Tabelle in CARRERA_HYBRID.md belegt.[2]

Von der Meldung zur Regel: Funklast

  1. Gemeldet: „Mit einem NPC klappt es gut“, mit mehreren halten Autos nicht und das eigene Auto reagiert nicht.
  2. Messung in der App: Über einen Bluetooth-Adapter gingen rund 110 Pakete je Sekunde; OmegaBle zählte in einer Sitzung rund 4000 geschriebene, 2400 wiederholte und 1200 verworfene Pakete.
  3. Umsetzung in 1.1.24: Die NPCs teilen sich ein Budget von etwa 30 Paketen je Sekunde.
  4. Daraus wurde eine Arbeitsregel: Bei Fehlern mit mehreren NPCs zuerst an Funklast denken und messen.

Grenzen und bekannte Probleme

Versionsgeschichte

Version Änderung an der Arbeitsweise
August 2026 Protokoll aus Mitschnitten entschlüsselt; Messungen werden in CARRERA_HYBRID.md dokumentiert
früh Aufteilung der Quelle in src/, Bau mit tools/build.py; Selbsttest mit zunächst dreizehn Messungen
nach 0.5.38 Version, Service Worker und Bau in einem Schritt (bump_version.py)
1.0 (12.10.2026) Versionsschema 1.<Woche>.<Push>; Patchnotes je Nebenversion
26.10.2026 Wiki mit KI-Artikeln, Vorlage Stand und Anleitung für KIs

Einzelnachweise

  1. ↑ src/20-protocol.js, Kommentar „Byte 14 Bit 7 und Bit 5“
  2. ↑ CARRERA_HYBRID.md, Abschnitt „Der Steuerweg“

Siehe auch

Quellen im Code

Kategorie:OmegaSim Kategorie:Grundlagen Kategorie:Mitmachen