Symbol grounding means basically to convert abstract description into detailed description. A concrete example with 3 layers for the first scene of the point&click adventure Maniac Mansion is shown next. The textual description can be understood by a human easily but can't be submitted directly to a computer. In contrast, the low level "pyautogui_commands" are hard to read for a human but can be processed by a computer program with ease.
Symbol grounding means basically that an algorithm converts high level descripiton into low level commands. With such a grounding algorithm its possible to script the game by providing textual description and the Artificial intelligence converts these description into mouse movements which are submitted to the SCUMMVM engine.
{
"notecard_id": 1,
"scene_title": "The Front Yard",
"content": {
"textual_description": {
"objective": "Gain entry to the Edison Mansion.",
"key_points": [
"Start with Dave outside the main gate.",
"Walk toward the front door of the mansion.",
"The door is locked; the key is hidden nearby.",
"Look under the doormat to find the silver key.",
"Use the key to unlock the door and enter."
]
},
"low_level_representation": {
"resolution_reference": "800x600",
"actions": [
{
"step": 1,
"action": "Select Verb: WALK TO",
"pixel_coords": [120, 480],
"note": "Clicking the 'Walk to' verb in the UI tray."
},
{
"step": 2,
"action": "Target: Front Door",
"pixel_coords": [400, 300],
"note": "Moving the character to the mansion entrance."
},
{
"step": 3,
"action": "Select Verb: PULL",
"pixel_coords": [250, 480],
"note": "Preparing to move the mat."
},
{
"step": 4,
"action": "Target: Doormat",
"pixel_coords": [400, 420],
"note": "Revealing the hidden key."
},
{
"step": 5,
"action": "Select Verb: PICK UP",
"pixel_coords": [50, 520],
"note": "Collecting the key."
}
]
},
"pyautogui_commands": [
"import pyautogui",
"pyautogui.PAUSE = 0.5",
"# Walk to door",
"pyautogui.click(120, 480)",
"pyautogui.click(400, 300)",
"# Pull mat",
"pyautogui.click(250, 480)",
"pyautogui.click(400, 420)",
"# Pick up key",
"pyautogui.click(50, 520)",
"pyautogui.click(405, 425)"
]
}
}
March 28, 2026
Solving the first scene in Maniac Mansion with a DIKW pyramid
March 27, 2026
Abstieg in der DIKW Pyramide am Beispiel Zak mckracken
Damit ein Large language model ein Videospiel automatisiert durchspielt braucht es mehrere Ebenen aus der DIKW Pyramide. Auf layer 3 (knowledge) wird eine Spielszene in Stichpunkten beschrieben auf einer sehr hohen Abstraktionsschicht. Dies wird dann in den layer2 übersetzt, der viel präziser ist aber weniger leicht zu lesen für einen Menschen und schlußendlich auf den Layer1 transformiert der die low level Daten Ebene darstellt. Der Layer1 kann dann an die Game engine gesendet werden, also an die ScummVM welche das point&click adventure ausführt.
Hier alle 3 layer der DIKW pyramide in einer übersichtlichen json notation.
{
"game": "Zak McKracken and the Alien Mindbenders",
"card_id": 1,
"title": "Morgenroutine in San Francisco",
"representation_1_natural_language": {
"format": "Karteikarte (Menschlich)",
"content": [
"Wache in Zaks Schlafzimmer auf.",
"Nimm das Aquarium-Netz unter dem Bett.",
"Gehe ins Wohnzimmer und nimm die Fernbedienung vom Fernseher.",
"Gehe in die Küche.",
"Nimm das stumpfe Brotmesser aus der Spüle.",
"Öffne den Kühlschrank und nimm das Ei."
]
},
"representation_2_intermediate_logic": {
"format": "Text-to-Action Reasoning (Zwischenschritt)",
"note": "Hier werden implizite Aktionen und Raumwechsel für die KI logisch explizit gemacht.",
"logic_chain": [
{"state": "Room: Bedroom", "goal": "Inventory: Fishnet", "sub_action": "PickUp(Fishnet, under_bed)"},
{"state": "Room: Bedroom", "goal": "Change Room", "sub_action": "WalkTo(Door_West)"},
{"state": "Room: Living Room", "goal": "Inventory: Remote", "sub_action": "PickUp(Remote_Control, on_TV)"},
{"state": "Room: Living Room", "goal": "Change Room", "sub_action": "WalkTo(Door_North)"},
{"state": "Room: Kitchen", "goal": "Inventory: Knife", "sub_action": "PickUp(Bread_Knife, in_Sink)"},
{"state": "Room: Kitchen", "goal": "Access Fridge", "sub_action": "Open(Refrigerator)"},
{"state": "Room: Kitchen", "goal": "Inventory: Egg", "sub_action": "PickUp(Egg, inside_Fridge)"}
]
},
"representation_3_low_level_scumm": {
"format": "SCUMM Engine Executable (Low Level)",
"note": "Direkte Opcode-artige Anweisungen, die Objekten IDs und Verben zuordnen (fiktive IDs).",
"commands": [
{"op": "CUTSCENE_START"},
{"op": "PICK_UP", "obj_id": 142, "comment": "Fishnet"},
{"op": "WALK_TO_OBJECT", "obj_id": 201, "comment": "Door to Living Room"},
{"op": "PICK_UP", "obj_id": 155, "comment": "Remote Control"},
{"op": "WALK_TO_OBJECT", "obj_id": 202, "comment": "Door to Kitchen"},
{"op": "PICK_UP", "obj_id": 160, "comment": "Bread Knife"},
{"op": "OPEN", "obj_id": 175, "comment": "Refrigerator"},
{"op": "PICK_UP", "obj_id": 176, "comment": "Egg"},
{"op": "CUTSCENE_END"}
]
}
}
Das interessante an dem Ansatz ist die Abwesenheit einer künstlichen Intelligenz im klassischen Sinne. Es gibt also kein neuronales Netz oder einen Reinforcement Learning algorithmus welches das Spiel durchspielt sondern die KI wurde so implementiert, dass sie zwischen den layern der DIWK pyramide eine Übersetzung ausführt. Wenn man möchte dass im Videospiel eine andere Aktion ausgeführt wird, schreibt man in den obersten Layer andere Stichworte hinein, die werden dann in echtzeit in die unteren Layer transformiert und ausgeführt. Das prinzip ist vergleichbar mit Unix pipes, also einer Filterkaskade die input in output übersetzt.
LLMs als ingame AI
Large language modelle genießen eine große Popularität doch bisher wird dessen Potential nur teilweise ausgeschöpft. So finden LLM ihren Einsatz als Suchmaschine, zum Programmieren oder um Fragen zu beantworten. Hingegen werden sie kaum bis gar nicht eingesetzt um Computerspiele automatisiert durchzuspielen. Zwar gibt es neuere Entwicklungen wie Deepmind Sima 2, was durchaus in der Lage ist innerhalb von virtuellen Welten zu agieren, doch ist der Tokenverbrauch hoch und es gibt nur wenige Dokumentationen dazu.
Heutige LLM sind durchaus imstande in virtuellen Welten zu agieren. Als Beispiel sei hier eine stichpunktartige Komplettlösung für das Maniac Mansion Point&click adventure gegeben welche durch ein LLM from scratch erzeugt wurde:
Karte 1: Start
Team-Wahl: Empfohlen: Syd oder Razor (Musik-Talent) + Bernard (Technik).
Eingang: Gehe zum Haus. Unter der Fußmatte liegt der Türschlüssel.
Eingangshalle: Benutze Schlüssel mit Haustür. Drinnen: Vorsicht vor Edna oder Weird Ed! Wenn sie kommen, schnell in einen Nebenraum flüchten.
Küche: Gehe nach rechts durch die Tür. Nimm das Fleisch aus dem Kühlschrank und die Getränkedose (für später).
Karte 2: Das Gefängnis & Der Fluchtplan
Trigger: Wenn ein Charakter geschnappt wird, landet er im Kerker.
Ausbruch: Drücke den losen Stein an der Wand (links neben der Tür), um die Tür kurz zu öffnen.
Taktik: Nutze einen Charakter als „Köder“, um die Edisons abzulenken, während die anderen zwei das Haus erkunden.
Wichtig: Speichere oft! Ein falscher Schritt führt zum Game Over.
Karte 3: Die Vorräte im Erdgeschoss
Esszimmer: Nimm die Früchte von der Schüssel.
Speisekammer: Nimm den Glasschneider (hinter der Glasvitrine) und den Saft.
Wohnzimmer: Benutze die Kassette mit dem Kassettenrekorder (wichtig für später, um das Glas zu zerschmettern).
Bibliothek: Öffne die Lampe, um das Zimmer zu erhellen. Nimm den Loseblatt-Katalog.
Karte 4: Weird Eds Zimmer (1. Stock)
Vorsicht: Wenn Ed dich sieht, fliegst du raus.
Ablenkung: Warte, bis Ed sein Zimmer verlässt (um das Paket zu holen) oder nutze die Türklingel an der Haustür, um ihn runterzulocken.
Gegenstand: Nimm den Hamster (nur als Razor/Syd relevant für böse Enden) und das Sparschwein. Brich das Schwein auf, um Geld zu erhalten.
Schlüssel: Nimm den Schlüssel vom Nachttisch.
Karte 5: Das Musikzimmer & Die Glasplatte
Vorbereitung: Geh ins Musikzimmer (1. Stock).
Aktion: Benutze den Glasschneider mit der Vitrine, um die Kassette zu stehlen.
Klavier: Wenn du Razor oder Syd bist, kannst du hier spielen, aber das Ziel ist die Schallplatte im Zimmer daneben.
Tipp: Du musst die Schallplatte auf den Rekorder im Wohnzimmer legen und aufnehmen, um später das Fenster im Labor zu sprengen.
Karte 6: Das Schwimmbad (Außenbereich)
Gefahr: Das Wasser ist radioaktiv! Nicht hineingehen.
Aktion: Leere das Becken, indem du das Ventil im Keller (unter der Küche) benutzt.
Fundstück: Am Boden des leeren Beckens liegt der leuchtende Schlüssel.
Wichtig: Fülle das Becken sofort wieder auf, da sonst der Reaktor überhitzt (Game Over Timer startet!).
Karte 7: Der Grüne Tentakel
Ort: 2. Stock, Weg zum Dachboden.
Problem: Der Grüne Tentakel hat Hunger und lässt dich nicht vorbei.
Lösung: Gib ihm den Obstteller aus dem Esszimmer und den Saft (oder die Cola).
Ergebnis: Er wird dein Freund und lässt dich passieren. Du hast nun Zugang zu den oberen Räumen und dem Funkgerät.
Karte 8: Das Paket & Das Telefon
Paket: Wenn die Türklingel läutet, renne mit einem Charakter zur Haustür und schnapp dir das Paket, bevor Ed es bekommt.
Inhalt: Briefmarken.
Telefon: Benutze das Telefon im Arbeitszimmer. Wähle die Nummer vom „Metzger“ (findest du im Loseblatt-Katalog), um Edna abzulenken.
Nächster Schritt: Während Edna telefoniert, schleiche in ihr Zimmer, um den Schlüssel zum Labor zu finden.
Diese Anleitung gibt in natürlicher Sprache einen Ablauf vor um das Spiel erfolgreich zu spielen. Einziges Problem bei dieser Anleitung ist, dass es kein ausführbarer Computer code ist sondern an menschliche Leser adressiert wurde. In der DIKW pyramide ist die Komplettlösung also auf dem Layer 3 (knowledge) angesiedelt. Damit eine KI Maniac Mansion automatisiert durchspöielen kann, muss man die Anleitung auf eine niedrige DIKW Stufe übersetzen also auf Stufe 2 und Stufe 1 (Daten).
Sowas wird über ein Text to action model realisiert. DAs erhält eine Karteikarte als Input und erzeugt dafür die Mausbewegung als Ausgabe.
Hier die simulierten Mausbewegungen für Karteikarte #1 innerhalb der SCUMM-Engine bei einer Auflösung von 320x200 Pixeln. Das json file enthält dieselben Anweisungen wie die textuelle Komplettlösung auch nur mit dem Unterschied dass es nicht auf dem DIKW layer 3 sondern auf dem untersten Layer 1 angesiedelt ist. Als Folge gibt es numerische Koordinaten die definieren wo genau der Mauscursor hinbewegt wird.
{
"card_id": 1,
"title": "Start",
"steps": [
{
"action_order": 1,
"description": "Walk to the front door area",
"command": "WALK_TO",
"target_coords": {"x": 160, "y": 140},
"wait_ms": 2000
},
{
"action_order": 2,
"description": "Pick up the door mat",
"verb_click": {"x": 40, "y": 170, "label": "PICK_UP"},
"object_click": {"x": 155, "y": 155, "label": "DOOR_MAT"},
"wait_ms": 1500
},
{
"action_order": 3,
"description": "Pick up the key under the mat",
"verb_click": {"x": 40, "y": 170, "label": "PICK_UP"},
"object_click": {"x": 155, "y": 155, "label": "KEY"},
"wait_ms": 1000
},
{
"action_order": 4,
"description": "Use key with front door",
"verb_click": {"x": 80, "y": 180, "label": "USE"},
"inventory_click": {"x": 300, "y": 170, "label": "KEY"},
"object_click": {"x": 160, "y": 100, "label": "FRONT_DOOR"},
"wait_ms": 3000
},
{
"action_order": 5,
"description": "Enter the house",
"command": "WALK_TO",
"target_coords": {"x": 160, "y": 90},
"wait_ms": 2000
},
{
"action_order": 6,
"description": "Go to the kitchen (right door)",
"command": "WALK_TO",
"target_coords": {"x": 280, "y": 120},
"wait_ms": 2500
},
{
"action_order": 7,
"description": "Open refrigerator",
"verb_click": {"x": 40, "y": 180, "label": "OPEN"},
"object_click": {"x": 100, "y": 100, "label": "REFRIGERATOR"},
"wait_ms": 1000
},
{
"action_order": 8,
"description": "Pick up the meat",
"verb_click": {"x": 40, "y": 170, "label": "PICK_UP"},
"object_click": {"x": 105, "y": 110, "label": "MEAT"},
"wait_ms": 1000
}
]
}
March 25, 2026
DIKW database for a warehouse robot
The following DIKW pyramid was simplified to only 2 bottom layers. Its stored in a json database with 2 different tables. The data layer stores the numerical sensor data like lidar_distance and battery voltage of the robot, while the information layer stored semantic tags. The task for the robot is to translate between both layers back and forth which is called symbol grounding.
{
"dikw_model": {
"data_layer": {
"lidar_distance_cm": 12.5,
"ultrasonic_proximity": 0.15,
"camera_rgb_average": [120, 120, 120],
"encoder_ticks": 4502,
"battery_voltage": 11.2
},
"information_layer": {
"spatial_context": ["obstacle", "near_field"],
"navigation_tag": "left_quadrant_blocked",
"surface_type": "concrete",
"status": "low_battery_warning",
"motion_state": "decelerating"
}
}
}
Line breaking algorithm in typst
To investigate if the current quality of typst typesetting fulfills the needs of an academic paper let us benchmark the algorithm for a complex example, which is 3 column typesetting. In a 3 column layout, each column is very small which makes it harder for the algorithm to avoid white spaces between the words.
Of course, there are some white spaces available but in general the output has an average quality. LaTeX would be able to reduce the white spaces by microtypography tricks not available in typst. Its a subjective opinion which of the systems is preferred.
March 24, 2026
Language parsing with a DIKW pyramid
A single sentence can be submitted to the dikw database and the database resolves the request so that it will become machine readable. Going upwards and downwards in the DIKW pyramid is equal to symbol grounding.
A DIKW pyramid consists of layers which are storing different sort of information. The lowest layer is accessible for a computer program and consists of location in a map, trajectories, sprites, tile maps and numerical color information. A possible entry might be [100,30] for a position in a map or (100,120,90) for a RGB color information.
On the next layer "information" a different sort of information are stored which are words. A word is a string which can be understand by a human but doesn't provide sense for a computer. For a human the word "wood" makes sense, but for a computer the same string is only an array of characters without any meaning. Its the task of the DIKW pyramid to link the word "wood" with a location in the map. The link allows the computer to resolve the meaning.
March 23, 2026
Language enabled artificial intelligence
AI resarch in the past was dominated by an algorithm centric bias. The goal was mostly to invent an advanced computer program which simulates intelligence. The idea was inspired by a chess engine which is searching in the game state for the next action. Robotics projects were engineered with the same objective. Notable algorithms are RRT for kinodynimaic planning or genetic algorithm for artificial life.
In the 1990s and until 2000s this paradigm was accepted as state of the art attempt to realize artificial intelligence. Unfortunately. none of the described techniques was successful. The robots are not working and the Artificial life simulation didn't evolve into a life form.
There was something missing until the 2000s for enabling artificial intelligence, and the missing element is natural language. On the first look this explanation doesn't make sense because there are lots of examples for text adventures and language understanding AI projects in the past, so the principle isn't new and can't be the explanation how to realize AI. Typical well known examples from the past are SHDRLU, the Maniac mansion game which was based on a simple 2 word 'English parser and a speech enabled robot from 1989 (SAM by Michael Brown).
The breakthrough technology after 2010 was to focus again on language guided robotics and implement these projects with more effort. Instead of programming a video game like Maniac mansion the goal was to program a text interface for robot control. Instead of realizing the parser in a simple C code, the parser is realized with a neural network. So we can say, that AI after the year 2010 has put natural language into the center of attention and created new algorithms and software around the problem. This attempt was very successful. It is possible to control robots with language and very important its even possible to scale up the approach so that the robot will understand more words and solve more demanding tasks.
From a birds eye perspective the situation until 2010 was to implement closed systems. AI was imagined as an autonomous system which is operating with algorithms and has no need to talk to its environment. In contrast, AI after the year 2010 works as open system. The robot receives commands from the human operator and sends signals back to the operator. In other words, modern robotics is always remote controlled with a text based interface. Its not possible to implement Artificial intelligence somehow else, but text based interaction is the core element of any AI system.
Its only a detail question how to program such an open system in detail. One attempt might be to utilize neural networks and learn the language from a dataset. Another attempt is to program the parser in a classical computer program without neural networks, while the third technique is to invent a domain specific language used for human to robot interaction. All these approaches have in common that natural language is the core building block. Natural language is used as an abstraction mechanism to compress the complex reality into a list of words. A typical entry level robot knows around 200 words to describe the environment including possible actions. These words are used by the robot to interact with a human operator. So the AI problem is mostly a communication problem, similar to transmit messages over a wire.
The paradigm shift from former computation into modern communication is the breakthrough technology for enabling artificial intelligence. Natural language used for human communication is also a powerful tool for human to robot communication. The English vocabulary is seen as a hammer for solving problems. Any problem in robotics gets reformulated into a language problem. There is no limit visible, but all the problems like biped walking, navigation in a maze and pick&place can be reformulated as language games.
Such kind of utilization of natural language wasn't available before the year 2010. The only thing known were isolated projects which explored if language might be useful for robotics. There was no understanding available that natural language is the core element in AI and needs to implemented in any possible robot or AI problem.
March 22, 2026
Instruction following for videogames
The most advanced AI model yet is "Google Sima 2" from the year 2025.[1] The most remarable element isn't the inner working of the agent but its interaction with a human. Its basically a teleoperated video game based on natural language. The human operator enters a command and the AI is translating the text into action.
In other words, the AI itself isn't running a sophisticated algorithm and tries to win any game, but the AI is a text to action converter known as "instruction following". Similar to a large language model the working thesis is, that natural language is the key element for abstract thinking. Describing the next action of character in a videogame in English provides an abstraction mechanism. Instead of mathematical state space used for early chess games based on alpha beta pruning, the "Sima 2" agent utilizes natural language as communication tool.
Of course the input command can be generated by human operators and by large language models both. In the second case the agent will be controlled autonomously like a fully working ingame AI. So the human operator enters only the general command like "win the game" and the large language model will generate all the sub commands and submits them to the Sina 2 agent.
Let me explain the mechanism from a different point of view. Suppose the parser gets removed from the Sina 2 agent so he won't no longer understand natural language. In such a case, the AI can't do anything. It is not able to play the game or solve very simple puzzles. In other words, the intelligence of the AI depends entirely on natural language understanding. The agent needs to know what the term "jump" is about and needs to localize objects like "wall" and "coin" in the game. The software is utilizing the power of English which consists of verbs, adjectives and nouns to interact with videogames.
[1] Bolton, Adrian, et al. "Sima 2: A generalist embodied agent for virtual worlds." arXiv preprint arXiv:2512.04797 (2025).
March 19, 2026
Wissenschaftliche Texte schreiben mit typst
Anstatt hier die technische Bedienung des Textsatzsystems typst zu erläutern, welche gut dokumentiert ist und große Ähnlichkeit mit LaTeX aufweist will ich ein wenig auf die sozialen Aspekte eingehen, wie genau der Switch vom altgedienten Kohledampfer LaTeX auf das neuartige Dieselschiff typst funktioniert.
Zuerst einmal sollte man sich die Mühe machen, LaTeX lebewohl zu sagen was in Linux mit dem Befehl "apt remove textlive-*" funktioniert. Dieser Befehl löscht LaTeX von der Festplatte inkl. der zahlreichen ungenutzten Fonts, der Sprachpakete und der obsoleten Zusatzpakete. Wenn alles reibungslos funktioniert ist es danach nicht länger möglich über die Kommandozeile LaTeX Dokumente ins PDF Format zu kompilieren. Dadurch entsteht ein Bedarf nach einer Lösung die besser ist als gar keine Lösung.
Wenn man dringend eine Abschlussarbeit schreiben muss, aber es keine Software dafür gibt, ist jede Software besser als keine. Dadurch blickt man über eventuelle Schwächen großzügig hinweg. Z.B. gibt es in Typst keinen Knuth plass algorithmus wie bei LaTeX ... machts nichts hauptsache es wird überhaupt ein PDF gerendert. Es ist nur sehr umständlich möglich eine Titelzeile zu erzeugen .. .ist nicht weiter schlimm, hauptsache ist dass irgendwo auf der Seite eine Überschrift auftaucht.
Es macht wenig Sinn typst direkt mit Latex zu vergleichen, weil die Software anders funktioniert. Man wird immer irgendwelche Feinheiten finden in den typst Schwächen hat und die bei LaTeX besser gelöst wurden, nur darum geht es nicht. Entscheidend ist dass man überhaupt Text plus grafiken in eine PDF Datei rendern kann und solange die Schrift nicht kleiner ist als 5 pt und die Bilder irgendwie angezeigt werden ist die Aufgabe erfüllt.
Anstatt auf die Details der Typst Software einzugehen macht es mehr Sinn sich mit den Schwächen des LaTeX Ökosystems zu beschäftigen. Der Sourcecode der TeX engine gilt als Spaghetti code. Er wurde in den 1970er geschrieben und verwendet Rekursion als standardprogrammiertechnik. Die meisten Pakete wie Lamport Tex und Bibtex wurden in den 1990er Jahren erstellt und seitdem nicht mehr verbessert. Es gab mal ein Projekt namens latex3, was aber nie realisiert wurde. Von außen Betrawchtet erinnert LaTeX an einen Commodore 64 im Jahr 1994, wo also eine treue Fangemeinde neue Spiele in Assembler programmierte aber nicht einsehen wollte, dass die Welt eine andere ist. Mitte der 1980er Jahre war der 8bit Heimcomputer von Commodore mal state of the Art technologie, aber Mitte der 1990er Jahre war die selbe Technologie veraltet. Und genau das ist die Ist situation mit LaTeX. Die kompletten 8 GB welche eine texlive installation auf der Festplatte in Beschlag nimmt bestehen aus obsoleten Packages, ungewartetem Code, endlosen Makros und immer weiteren Softwareschichten die keinen Sinn machen.
Um eine wissenschaftliche Arbeit zu erstellen braucht es folgende Features: zweispaltensatz, Tabellen, Einbindung von Bildern, Fließtext, Fußnoten und ein Inhaltsverzeichnis. All das stellt typst bereit. Es gibt sogar noch weitere Extras wie Gleitumgebungen, Silbentrennung und dreispaltensatz. Man kann also sagen, dass typst die Anforderungen übererfüllt. Damit ist es gut geiegnet um damit Texte zu erstellen.
Die software ist schön klein, arbeitet sehr schnell, ist umfassend dokumentiert und es gibt online foren für weitere informationen. Also alles verfügbar was man so braucht. Die geringe Anzahl von Nutzer die typst derzeit nutzen ist kein Nachteil sondern ein Vorteil, damit ist sichergestellt dass jeder neue Nutzer der eine Anfängerfrage stellt begeistert empfangen wird und sofort Hilfestellung erhält.
March 18, 2026
Nähere Bekanntschaft mit dem Typst Textsatzsystem
Die Typst software könnte man als Latex clone bezeichnen. Es ist das wohl ambitionierste Projekt mit dieser Zielstellung. Es ist deutlich mächtiger als z.B. lout oder Sile welche ebenfalls angetreten sind um Latex Konkurrenz zu machen.
Selbstverständlich ist dort alles anders und deutlich moderner. Der größte Vorteil von typst ist, dass man nicht 7 GB für die texlive installation benötigt sondern es reichen 50 MB auf der Festplatte aus. Zusätzliche fonts oder packages sind unnötig, weil typst die Linux eigenen Schriften verwendet und mit den default parametern für alle wichtige Aufgaben gerüstet ist.
Im screenshot ist ein Beispieldokument zu sehen inkl. zweispaltensatz, Inhaltsverzeichnis, einer Überschrift die über die ganze Seite geht, eingebundenen Bildern und Blocksatz. Man kann also vereinfacht sagen, dass typst als Ersatz für latex gedacht ist. Im besten fall erfüllt es genau dieselbe Aufgabe.
Die Stärken werden vor allem beim Erstellen von wissenschaftlichen Arbeiten sichtbar die im Normalfall sehr umfangreich sind und viele Gleitabbildungen enthalten. Ferner ist das Prinzip eines Textsatzsystem nützlich bei der Datenbank-Ausgabe, wenn man also CSV Daten als PDF rendern möchte.
In der Summe ist typst das bessere Latex, wenn auch mit einer großen Einschränkung. Der verwendete linebreaking algorithmus ist nicht etwa die Knuth-plass globaloptimierung sondern es ist ein simpler greedy algorithmus der auch in Libreoffice oder in lout verwendet wird. Als Folge entstehen gerade beim Spaltensatz unschöne leerräume zwischen den Wörtern. Hier ist LaTeX deutlich fortschrittlicher auch wenn es Ende der 1970er Jahren entwickelt wurde.
Man wird bei genauer Betrachtung noch weitere Nachteile von typst entdecken. Das Hauptproblem dürfte sein dass es kein LaTeX ist und damit inkompatibel zum bewährten Ökosystem. Nur, das ist weniger eine technische Einschränkung als vielmehr eine soziale. Das also die typst community anders funktioniert und andere Ziele verfolgt als die Latex community.
Um typst würdigen zu können muss man zunächst einmal die Schwächen von TeX kennen. TeX war mal bis ca. Ende der 1990er Jahre das führende Textverarbeitungssystem in der Informatik. Es war schnell, überzeugte durch eine hohe Ausgabequalität, war gut dokumentiert und war offen für neue User. Das ist heute im Jahr 2026 leider nicht mehr so. LaTeX hat heute ähnlichkeit mit einem verrosteten Tanker der groß und schwerfällig an die Vergangenheit denkt und mit geänderten Anforderungen nicht mehr schritt hält. Die vielzahl an LateX implementierungen wie pdflatex, xelatex, Lualatex, context, plaintex, Lyx usw. zeugen davon dass die Community sich aufgespalten hat. Es gab innerhalb des TeX universums durchaus Versuche sich zu erneuern wie z.B. durch das Overleaf projekt, was eine webbasiertes Frontend ist oder durch die Luatex engine, welche das Erstellen von SCripten vereinfacht. Doch wegen der erforderlichen Rückwärtskompatiblität wirken diese Projekte eher wie zusätliche Layer in einem chaotischen Ökosystem was ähnlich wie initd in Linux als obsolet gilt.
Anstatt innerhalb des Latex Ökosystems nach Veränderung zu rufen ist es wohl besser sich auf eine neue technische Basis zu fokussieren wie z.B. das typst Projekt. Diese Software ist effizienter, kann alle wichtige Formatierungsaufgaben erfüllen, benötigt weniger Speicherplatz und ist gut dokumentiert, das einzige was fehlt sind noch die Nutzer.
Typst ausprobiert
Eine mögliche Alternative ist Typst, welche in 2023 erstmals vorgestellt wurde. Die aktuelle Version ist noch etwas unausgereift, man kann damit aber bereits PDF Dokumente erzeugen. Nach dem Download der nur 16 Megabyte großen ausführbaren Datei von der Website des Projekts ist das erste was auffällt die hohe Geschwindigkeit. Anders als bei pdflatex und speziell bei lualatex wird nicht jede Seite des Dokuments einzeln formatiert, sondern das fertige PDF file steht quasi sofort bereit wenn man typst auf die Input Datei anwendet. Die Syntax ist ähnlich wie bei LaTex, es gibt also eine Trennung zwischen Inhalt und Layout. Defaultmäßig werden neue Dokumente im "Libertinus Serif" Font gesetzt, was man aber ändern kann auf „Nimbus Roman“ oder "New Computer Modern". Hier ist ein Beispieldokument für ein 2 spaltiges Dokument inkl. Float-Abbildung. Es wird in das PDF Format übersetzt mit ./typst compile hello.typ.
Ach ja, es gibt mehrere kleinere bugs in typst. zum einen ist die Überschrift nicht mittig und zweitens ist der optische Randausgleich im zweispalten Layout im unteren Bereich nicht verfügbar. Ob man diese Probleme durch andere Parameter lösen kann ist unklar. Im Zweifel muss man damit leben. Das heißt anders als LaTeX wurde typst eben nicht über Jahre hinweg verbessert sondern das Projekt befindet sich noch in einem frühen Stadium. Was aber zumindest funktioniert sind die Basics des Textsatzes wie Tabellen, Seitennummerierung, Blocksatz und Silbentrennung.
Vielleicht noch ein kleiner Hinweis wie der Umstieg von LaTeX auf Typst etwas gefälliger verläuft. Am besten beginnt man die Reise damit, dass man "apt remove texlive-*" eingibt, also das bisherige Textsatzsystem auf der Festplatte löscht. Dadurch gewinnt man Speicherplatz um etwas neues zu verwenden.
#set page(
paper: "a4",
margin: (x: 2cm, y: 2cm,bottom: 3cm,),
numbering: "1",
columns: 2,
)
#set par(
justify: true,
spacing: 0.65em,
first-line-indent: 1em,
)
#set text(
// font: "New Computer Modern",
font: "Nimbus Roman",
size: 11pt
)
#title[
Example typst document
]
= chapter1
This is a text.
- item
- item
- item
This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text.
This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text. This is a longer text.
The equation $Q = rho A v + C$ defines the glacial flow rate.
$ v := vec(x_1, x_2, x_3) $
#figure(
image("zk.webp", width: 80%),
caption: [a picture with a Zettelkasten],
placement: auto,
) <zk>
March 17, 2026
Automatic coding with Google Gemini
Since the advent of GPT-3 in 2020 lots of improvement are visible, especially the ability of large language models to code software programs is impressive. To check out the current capabilities a demanding example should be presented. Its a Tetris game written python with a built in feature vector. The feature vector is useful for creating an AI for Tetris.
The prompt consists of a multi-step pipeline. At first, the LLM was asked to create an elaborated prompt which gets executed in the second step.
Create a "Prompt Engineering" cheat sheet designed specifically for architecting software without writing manual code. Domain is: Tetris game including semantic annotation. The annotation is based on a numerical feature vector which determines important properties of the game so that an AI player can use the feature vector to automatically playing the game. The AI doesn't need to be implemented, its enough if the feature vector is shown on the screen and commented in the code.
Execute the Tetris prompt, so that the game is shown as python code.
The resulting game works fine. It can be executed without an error. There are falling tetris pieces which can be moved with cursor keys and there is also a feature vector visible on the screen at top right. The sourcecode for the entire app is 170 lines of code and is using numpy, pygame and random as libraries.
The most complex element of the software is "the get_feature_vector(self)" routine. Most Tetris implementation found at github have no such a routine because its not needed for a human player. But the feature vector is highly important for automating the game so that the computer decides at which position each pieces should be location. It seems, that current generation of LLMs are understanding what the purpose is and how to implement it in software.
It should be mentioned that some smaller bugs are available. For example the feature "height" is working wrong. Of course, the LLM can fix the issue but this would require a rewrite of the software. Another problem is, that the layout of the screen looks a bit messy. So the game needs to be interpreted as a prototype but not as a final version.
import pygame
import random
import numpy as np
# --- Konfiguration ---
SCREEN_WIDTH = 500
SCREEN_HEIGHT = 600
BLOCK_SIZE = 30
GRID_WIDTH = 10
GRID_HEIGHT = 20
SIDEBAR_X = 320
COLORS = [
(0, 0, 0), (255, 0, 0), (0, 255, 0), (0, 0, 255),
(255, 255, 0), (255, 165, 0), (0, 255, 255), (128, 0, 128)
]
SHAPES = [
[[1, 1, 1, 1]],
[[0, 2, 2], [2, 2, 0]],
[[3, 3, 0], [0, 3, 3]],
[[4, 4], [4, 4]],
[[5, 5, 5], [5, 0, 0]],
[[6, 6, 6], [0, 0, 6]],
[[7, 7, 7], [0, 7, 0]]
]
class TetrisEngine:
def __init__(self):
self.grid = np.zeros((GRID_HEIGHT, GRID_WIDTH), dtype=int)
self.lines_cleared_total = 0
self.game_over = False
self.new_piece()
def new_piece(self):
self.current_shape = random.choice(SHAPES)
self.piece_color = SHAPES.index(self.current_shape) + 1
self.piece_x = GRID_WIDTH // 2 - len(self.current_shape[0]) // 2
self.piece_y = 0
if self.check_collision(self.piece_x, self.piece_y):
self.game_over = True
def rotate_shape(self):
"""
Matrix-Rotation: Transponieren + Zeilen umkehren.
Semantischer Hinweis: Ändert die Form-Struktur für den Feature-Vektor.
"""
# List comprehension für 90-Grad Rotation
new_shape = [list(row) for row in zip(*self.current_shape[::-1])]
# Kollisionsprüfung: Nur rotieren, wenn Platz da ist
if not self.check_collision(self.piece_x, self.piece_y, new_shape):
self.current_shape = new_shape
def check_collision(self, x, y, shape=None):
if shape is None: shape = self.current_shape
for r, row in enumerate(shape):
for c, val in enumerate(row):
if val:
if (x + c < 0 or x + c >= GRID_WIDTH or
y + r >= GRID_HEIGHT or
(y + r >= 0 and self.grid[y + r][x + c])):
return True
return False
def freeze_piece(self):
for r, row in enumerate(self.current_shape):
for c, val in enumerate(row):
if val:
self.grid[self.piece_y + r][self.piece_x + c] = self.piece_color
self.clear_lines()
self.new_piece()
def clear_lines(self):
full_rows = [i for i, row in enumerate(self.grid) if all(row)]
for i in full_rows:
self.grid = np.delete(self.grid, i, axis=0)
self.grid = np.insert(self.grid, 0, np.zeros(GRID_WIDTH), axis=0)
self.lines_cleared_total += len(full_rows)
def get_feature_vector(self):
col_heights = []
for c in range(GRID_WIDTH):
h = 0
for r in range(GRID_HEIGHT):
if self.grid[r][c] != 0:
h = GRID_HEIGHT - r
break
col_heights.append(h)
agg_height = sum(col_heights)
holes = 0
for c in range(GRID_WIDTH):
found_block = False
for r in range(GRID_HEIGHT):
if self.grid[r][c] != 0:
found_block = True
elif found_block and self.grid[r][c] == 0:
holes += 1
bumpiness = 0
for i in range(GRID_WIDTH - 1):
bumpiness += abs(col_heights[i] - col_heights[i+1])
return [agg_height, holes, bumpiness, self.lines_cleared_total]
def main():
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
clock = pygame.time.Clock()
font = pygame.font.SysFont("monospace", 16)
engine = TetrisEngine()
drop_time = 0
while not engine.game_over:
screen.fill((240, 240, 240))
dt = clock.get_rawtime()
drop_time += dt
clock.tick()
for event in pygame.event.get():
if event.type == pygame.QUIT:
return
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT and not engine.check_collision(engine.piece_x - 1, engine.piece_y):
engine.piece_x -= 1
if event.key == pygame.K_RIGHT and not engine.check_collision(engine.piece_x + 1, engine.piece_y):
engine.piece_x += 1
if event.key == pygame.K_DOWN and not engine.check_collision(engine.piece_x, engine.piece_y + 1):
engine.piece_y += 1
if event.key == pygame.K_UP:
engine.rotate_shape() # ROTATION TRIGGER
if drop_time > 400:
if not engine.check_collision(engine.piece_x, engine.piece_y + 1):
engine.piece_y += 1
else:
engine.freeze_piece()
drop_time = 0
# Draw Grid & Piece
for r in range(GRID_HEIGHT):
for c in range(GRID_WIDTH):
if engine.grid[r][c]:
pygame.draw.rect(screen, COLORS[engine.grid[r][c]], (c*BLOCK_SIZE, r*BLOCK_SIZE, BLOCK_SIZE-1, BLOCK_SIZE-1))
for r, row in enumerate(engine.current_shape):
for c, val in enumerate(row):
if val:
pygame.draw.rect(screen, COLORS[engine.piece_color],
((engine.piece_x + c)*BLOCK_SIZE, (engine.piece_y + r)*BLOCK_SIZE, BLOCK_SIZE-1, BLOCK_SIZE-1))
# AI Interface Update
features = engine.get_feature_vector()
labels = ["Height", "Holes", "Bumpy", "Lines"]
title = font.render("AI INPUT VECTOR:", True, (0, 0, 0))
screen.blit(title, (SIDEBAR_X, 20))
for i, val in enumerate(features):
txt = font.render(f"{labels[i]}: {val}", True, (0, 0, 0))
screen.blit(txt, (SIDEBAR_X, 50 + i*30))
pygame.display.flip()
pygame.quit()
if __name__ == "__main__":
main()
How to scale up artificial intelligence
In the past it was mostly unknown how to create Artificial intelligence, even restricted problems like the game of chess or robot control in a warehouse were recognized as hard to realize in software. The cause was a missing understanding of the domain and missing tools to implement AI domains on a computer.
What is available today is a pathway how to realize Artificial intelligence in a step by step fashion. It has to do with splitting the task between human and computer. In case of computer chess the situation can be described. Automating the entire process of playing the game is difficult, but the computer can be used to only count the pieces on the board and print out the number to the screen. This information helps the human player to decide what for the best move. So the human sees the chessboard itself and a dashboard with important information generated by a computer.
The next task is to improve the dashboard, in a sense that more information are recognized by the computer software like the value for each piece, similar board situation found in the database, and the allowed possible moves. All the information are shown on the same dashboard and reduce the workload for the human operator. The resulting AI system can't be called a true AI but its only a semi-autonomous system.
Instead of answering the question how to play chess with a computer the modified task is to communicate between a human and a computer program about the domain of chess. This communication is realized with an algorithm. The human enters high level actions like "move pawn forward" or "protect queen" and the AI software is in charge to realize this command on the board.
March 16, 2026
Die Erfindung der Teleoperation / Fernsteuerung
Ferngesteuerte Roboter und technische Anlagen sind ein sehr altes Prinzip. Das Telekino war ein ferngesteuertes Boot welche um 1905 von Leonardo Torres Quevedo vorgestellt wurde, seit den 1950er gibt es ferngesteuerte Spielzeugautos die meist über Kabel funktionierten. Und seit den 1980er sind funkferngesteuerte Spielzeugautos im Mainstream bekannt.
Allerdings wurde das Konzept von der Informatik und speziell der Robotikforschung ignoriert. Stattdessen fokussierte man sich über jahrzehnte auf autonome algorithmen gesteuerte Roboter, was man als Dogma bezeichnen könnte.
Es gab in der Geschichte der Robotik zumindest früher keinen Grund "remote control" näher zu untersuchen, zumal technisch gesehen das Problem gelöst ist also dort nichts neues mehr entwickelt werden kann. Um die Vorteile von fenrgesteuerten Robotern in Bezug zur künstlichen Intelligenz näher zu untersuchen muss man die Transformaion von einem geschlossenen in ein offenes System beschreiben. Klassicherweise wurden Roboter als geschlossene Systeme betrachtet. Die Frage war immer wie sieht die Maschinen innen aus, also welche Hardware, welche Programmiersprache und welcher Algorithmus steuert den Roboter. Sobald der Roboter jedoch von einem operator ferngesteuert wird, wird ein wichtiges Modul ausgelagert und zwar das Modul der Entscheidungsfindung.
Laut Definition gibt bei einem ferngesteuerten Roboter der Bediener am Joystick vor, was der Roboter als nächtes tut. Der Bediener ist nicht länger Teil des Roboters sondern befindet sich außerhalb. Dadurch steigt die Komplexität massiv an, und es bedarf eines Kommunikationsprotokoll. Also einer Sprache die definiert wie Signale vom joystick zum Roboter gelangen. Dieses Kommunikationsprotokoll ist der Schlüssel zum Verständnis von künstlicher Intelligenz als signalverarbeitende Zwischenschicht.
Ein offenes System wie es mittels Fernsteuerung erzielt wird, folgt nicht länger den bekannten Gesetzen einer Turing Maschine. Der Roboter wird also nicht per algorithmus gesteuert sondern über Input außerhalb des Roboters. Man kann den Roboter länger programmieren sondern man kann lediglich einen Parser programmieren der die äußeren Kommandos in Aktionen übersetzt.
Ferngesteuerte Roboter sind automatisch offene Systeme während algorithmengesteurte Roboter geschlossene Systeme sind. Ein Algorithmus benötigt keine Kommunikation mit der außenwelt weil die Entscheidungen intern getroffen werden.
March 15, 2026
Line following roboter
Üblicherweise ist die Programmierung eines Line following roboters auf den Sourcecode fokussiert der in Java, Python oder C++ erstellt wird. Im folgende wird der Fokus auf die Mensch Maschine Kommunikation gelegt. Es wird ein semantischer Tagging space verwendet um die Linie auf dem Boden zu klassifizieren. Der Software für diesen Liniengenerator findet sich weiter unten und wurde in der Sprache python erstellt.
Die Hauptaufgabe der Software besteht darin, die dargestellte visuelle Szene innerhalb der 200x200 Pixel Karte in eine semantische Tagging beschreibung zu überführen. Diese Tagging beschreibung dient der Mensch Maschine interaktion. Der Roboter meldet die Tags zurück an den Menschen und dieser entscheidet was in der jeweiligen Situation zu tun ist.
import pygame
import random
# --- Konfiguration ---
WIDTH, HEIGHT = 800, 600
BOX_SIZE = 200
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (200, 0, 0) # Hindernis
GRAY = (200, 200, 200) # Box-Rahmen
# --- Moegliche Parameter ---
paths = ["vorwärts", "links", "rechts", "sackgasse", "Kreuzung"]
thicknesses = {"normal": 10, "dick": 20}
breaks = [False, True]
obstacles = [False, True]
# --- Pygame Setup ---
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Roboter Linien-Generator (Space für neue Karte)")
font_small = pygame.font.Font(None, 24)
font_large = pygame.font.Font(None, 36)
def generate_random_config():
return {
"path": random.choice(paths),
"thickness_name": random.choice(list(thicknesses.keys())),
"break": random.choice(breaks),
"obstacle": random.choice(obstacles)
}
def draw_text(screen, text, font, color, x, y, align_center=False):
text_obj = font.render(text, True, color)
text_rect = text_obj.get_rect()
if align_center:
text_rect.center = (x, y)
else:
text_rect.topleft = (x, y)
screen.blit(text_obj, text_rect)
def draw_card(config):
screen.fill(WHITE)
# 1. Box berechnen (Zentrum des Bildschirms)
box_rect = pygame.Rect((WIDTH//2 - BOX_SIZE//2, HEIGHT//2 - BOX_SIZE//2), (BOX_SIZE, BOX_SIZE))
pygame.draw.rect(screen, GRAY, box_rect, 1) # Rahmen der Box
center_x, center_y = box_rect.center
half = BOX_SIZE // 2
# Parameter
path = config["path"]
thickness_val = thicknesses[config["thickness_name"]]
has_break = config["break"]
has_obstacle = config["obstacle"]
# 2. Pfade definieren (Relativ zur Box)
# Startpunkt ist immer unten in der Mitte der Box
start_p = (center_x, center_y + half)
mid_p = (center_x, center_y)
lines = [] # Liste von (Start, Ende) Paaren
if path == "vorwärts":
lines.append((start_p, (center_x, center_y - half)))
elif path == "links":
lines.append((start_p, mid_p))
lines.append((mid_p, (center_x - half, center_y)))
elif path == "rechts":
lines.append((start_p, mid_p))
lines.append((mid_p, (center_x + half, center_y)))
elif path == "sackgasse":
lines.append((start_p, (center_x, center_y + 10))) # Kurzes Stück
elif path == "Kreuzung":
lines.append((start_p, (center_x, center_y - half)))
lines.append(((center_x - half, center_y), (center_x + half, center_y)))
# 3. Zeichnen mit optionaler Unterbrechung
for s, e in lines:
if has_break:
# Zeichne nur das erste und letzte Drittel der Teil-Linie
m1 = (s[0] + (e[0]-s[0])//3, s[1] + (e[1]-s[1])//3)
m2 = (s[0] + 2*(e[0]-s[0])//3, s[1] + 2*(e[1]-s[1])//3)
pygame.draw.line(screen, BLACK, s, m1, thickness_val)
pygame.draw.line(screen, BLACK, m2, e, thickness_val)
else:
pygame.draw.line(screen, BLACK, s, e, thickness_val)
# 4. Hindernis (Falls ja, immer am Mittelpunkt der Box)
if has_obstacle:
pygame.draw.rect(screen, RED, (center_x - 15, center_y - 15, 30, 30))
# 5. Semantische Beschreibung
desc_str = f"Linienweg: {path} | Liniendicke: {config['thickness_name']}"
extra_str = f"Unterbrechung: {'ja' if has_break else 'nein'} | Hindernis: {'ja' if has_obstacle else 'nein'}"
draw_text(screen, desc_str, font_small, BLACK, WIDTH//2, HEIGHT//2 + half + 40, True)
draw_text(screen, extra_str, font_small, BLACK, WIDTH//2, HEIGHT//2 + half + 65, True)
draw_text(screen, "Drücke LEERTASTE für neue Karte", font_large, BLACK, WIDTH//2, 50, True)
# --- Hauptschleife ---
current_config = generate_random_config()
draw_card(current_config)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
current_config = generate_random_config()
draw_card(current_config)
pygame.display.flip()
pygame.quit()
March 14, 2026
Line following robot with grounded language
Mögliche Worte sind nach Kategorien sortiert. Darüber erfolgt die Kommunikation zwischen Mensch und Maschine. Die Software hat lediglich die Aufgabe die Kommunikation sicherzustellen:
- navigation (folgen, suchen, andocken, ignorieren, u_turn)
- line (junction, curve, end)
- attribute_speed (slow, fast)
- attribute_color (black, white)
- attribute_thick (thin, thick)
- feedback (lost_line, multiple_paths, pathblocked)
March 13, 2026
Language game in python
In the history of technology many attempts were made to communicate with robots in natural language. Instead of a common belief, the key to success isn't located in a certain hardware or a certain software algorithm but the symbol grounding problem is at foremost a language game.
Its up the programmer to invent such a game from scratch. An easy to follow example is given here. The game engine shows a random card with a geometric object and the human user has to enter the correct word for the picture. This allows the human user to increase its score.
OF course, the game is very easy to play. The main objective is to see the game is a practical demonstration for grounded language. Its an easy to implement and easy to understand example about natural language.
# language game, version 1.0
import pygame
import random
# --- Configuration & Colors ---
WIDTH, HEIGHT = 800, 600
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
COLORS = {
"red": (255, 0, 0),
"blue": (0, 0, 255),
"green": (0, 255, 0),
"yellow": (255, 255, 0),
"purple": (128, 0, 128)
}
SHAPES = ["circle", "square", "rectangle"]
class LanguageGame:
def __init__(self):
pygame.init()
self.screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Shape & Color Language Game")
self.font = pygame.font.SysFont("Arial", 32)
self.clock = pygame.time.Clock()
self.score = 0
self.user_text = ""
self.feedback_msg = ""
self.feedback_color = BLACK
self.new_card()
def new_card(self):
"""Generates a new random shape and color combination."""
self.current_color_name = random.choice(list(COLORS.keys()))
self.current_shape = random.choice(SHAPES)
self.target_text = f"{self.current_color_name} {self.current_shape}"
self.user_text = ""
def draw_shape(self):
"""Draws the geometric object based on current selection."""
color = COLORS[self.current_color_name]
center = (WIDTH // 2, HEIGHT // 2 - 50)
if self.current_shape == "circle":
pygame.draw.circle(self.screen, color, center, 80)
elif self.current_shape == "square":
rect = pygame.Rect(0, 0, 150, 150)
rect.center = center
pygame.draw.rect(self.screen, color, rect)
elif self.current_shape == "rectangle":
rect = pygame.Rect(0, 0, 200, 100)
rect.center = center
pygame.draw.rect(self.screen, color, rect)
def run(self):
running = True
while running:
self.screen.fill(WHITE)
# 1. Event Handling
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
# Check answer
if self.user_text.lower().strip() == self.target_text:
self.score += 10
self.feedback_msg = "Correct! +10"
self.feedback_color = (0, 150, 0)
self.new_card()
else:
self.feedback_msg = "Try again!"
self.feedback_color = (200, 0, 0)
self.user_text = ""
elif event.key == pygame.K_BACKSPACE:
self.user_text = self.user_text[:-1]
else:
self.user_text += event.unicode
# 2. Drawing UI
self.draw_shape()
# Render Score
score_surf = self.font.render(f"Score: {self.score}", True, BLACK)
self.screen.blit(score_surf, (20, 20))
# Render Input Prompt
prompt_surf = self.font.render("Type the color and shape:", True, BLACK)
self.screen.blit(prompt_surf, (WIDTH // 2 - 150, HEIGHT - 180))
# Render User Typing
input_box = pygame.Rect(WIDTH // 2 - 150, HEIGHT - 130, 300, 50)
pygame.draw.rect(self.screen, BLACK, input_box, 2)
text_surf = self.font.render(self.user_text, True, BLACK)
self.screen.blit(text_surf, (input_box.x + 10, input_box.y + 5))
# Render Feedback
feed_surf = self.font.render(self.feedback_msg, True, self.feedback_color)
self.screen.blit(feed_surf, (WIDTH // 2 - 50, HEIGHT - 60))
pygame.display.flip()
self.clock.tick(30)
pygame.quit()
if __name__ == "__main__":
game = LanguageGame()
game.run()
March 12, 2026
Inbetriebnahme eines Vision language action Roboters
Dialog1: Inbetriebnahme
Ort: Die Werkstatt eines mittelständischen Versandhandels. In der Mitte steht ein fabrikneuer, glänzender Lagerroboter auf einer Holzpalette. Um ihn herum liegen Verpackungsmaterial und zwei frustrierte Informatiker.
Personen:
Lukas: Spezialist für Robotik-Schnittstellen, liebt Hardware-Hacking.
Julian: Software-Entwickler, Experte für Large Language Models (LLMs).
Lukas: „Julian, schau dir das an. Ich hab das Gehäuse gerade aufgemacht, um die Kalibrierung zu prüfen. Da klafft ein Loch, wo eigentlich das Lidar-Modul sitzen sollte. Da hängen nur die nackten Flachbandkabel raus!“
Julian: „Was? Das darf doch nicht wahr sein. Wir haben das High-End-Modell mit VLA-Steuerung bestellt. Ohne die Distanzdaten aus dem Lidar wird der Vision-Encoder doch völlig instabil bei der Tiefenwahrnehmung.“
Lukas: „Genau das ist das Problem. Ich versuche gerade, das System zu booten, aber der Safety-Check bricht sofort ab. Die Fehlermeldung lautet: Critical Hardware Failure: Distance Sensor Node not found. Ohne Lidar gibt das System keine Freigabe für die Motoren.“
Julian: „Warte mal, wir haben doch ein Vision Language Action Modell. Das Ding ist multimodal! Theoretisch müsste der rein über die RGB-Kameras (Sensor-to-Text) verstehen, was los ist. Kannst du den Check nicht einfach im BIOS emulieren oder bypassen?“
Lukas: „Ich versuch’s. Ich schließe mein Laptop an und simuliere dem Kernel einen statischen Lidar-Stream. Ich gebe ihm einfach einen konstanten Wert von 2 Metern in alle Richtungen vor, nur damit er den Boot-Vorgang abschließt.“
Julian: „Gute Idee. Wenn er erst mal im Prompt-Modus ist, können wir ihm per Text-to-Action sagen: ‚Ignoriere Distanzsensoren, verlasse dich nur auf den visuellen Stream‘.“
(Lukas tippt wie wild auf seiner mechanischen Tastatur. Ein leises Summen ertönt, die Status-LED am Roboter springt von Rot auf Orange.)
Lukas: „Okay, ich bin drin! Der Simulator läuft. Das System denkt, es steht in einem leeren Raum. Jetzt du, Julian. Gib ihm einen einfachen Befehl.“
Julian: (tippt ins Terminal) „Subjekt: Roboter-Eins. Aktion: Hebe den kleinen Karton vor dir auf und lege ihn auf den Tisch.“
Roboter (Textausgabe am Monitor): „Ich erkenne einen Karton. Berechne Trajektorie basierend auf visuellen Daten... Fehler: Diskrepanz zwischen visueller Tiefe und Lidar-Daten (2.0m fix). Zugriff verweigert. Kollisionsgefahr vermutet.“
Lukas: „Mist! Der VLA-Controller merkt, dass meine Fake-Lidar-Daten nicht zu dem passen, was die Kamera sieht. Die interne Logik sagt: ‚Ich sehe den Karton direkt vor mir, aber mein Sensor sagt, alles ist 2 Meter weit weg.‘ Das Modell traut seinen eigenen Augen nicht mehr.“
Julian: „Verdammt, das Modell ist zu schlau für unseren Hack. Er versucht, die Sensoren zu fusionieren. Wenn der Sensor-to-Text Part meldet ‚Objekt nah‘, aber der Lidar-to-Action Part sagt ‚Weg frei‘, geht er in den Sicherheits-Lockdown. Er ‚denkt‘ quasi, er halluziniert.“
Lukas: „Es bringt nichts. Wir können die Physik nicht austricksen. Ein VLA-Modell ohne funktionierende Sensor-Fusion ist wie ein Pilot mit verbundenen Augen, der nur hört, wo die Landebahn ist. Ich muss den Support anrufen. Die haben das Modul schlicht vergessen einzubauen.“
Julian: „Toll. Ein 50.000-Euro-KI-Wunderwerk und wir scheitern an einem fehlenden Bauteil für ein paar Hundert Euro. Pack ihn wieder ein, Lukas. Ohne echtes Feedback-Signal vom Lidar wird das Ding heute keinen einzigen Zentimeter fahren.“
Dialog2: Fehlender Wortschatz
Ort: Der Serverraum direkt neben der Ladezone. Auf einem Monitor flackert das Terminal-Log des VLA-Roboters, der draußen unschlüssig vor einem Stapel Hochleistungs-Akkus steht.
Personen:
Sarah: Senior DevOps-Engineer, spezialisiert auf Modell-Deployment.
Tim: Junior-Entwickler für Computer Vision.
Tim: „Sarah, ich verstehe es nicht. Der Roboter hat volle Sicht, die Lidar-Werte sind stabil, aber er rührt sich nicht. Ich habe ihm den Befehl gegeben: ‚Sortiere die Lithium-Ionen-Akkus nach Kapazität in die feuerfesten Sicherheitsbehälter.‘“
Sarah: „Und was sagt der Sensor-to-Text Log? Wenn das VLA-Modell die Szene nicht in Tokens übersetzen kann, generiert es keine Action-Vektoren.“
Tim: „Schau dir das an. Er gibt nur Schrott aus.“
Monitor-Ausgabe des Roboters:
„Ding da. Großes Ding. Viele kleine Dinge. Gelb. Gut. Machen.“
Sarah: (stutzt) „‚Viele kleine Dinge‘? Das ist alles? Er sollte eigentlich ‚Gefahrgut‘, ‚Akkumulator‘ oder ‚Brandschutzklasse‘ erkennen. Warte mal... ich ziehe mir mal die Statistik der aktiven Vocabulary-Layer.“
(Sarah tippt hektisch, eine Tabelle mit roten Warnmeldungen erscheint.)
Sarah: „Oh Gott, Tim. Das ist kein Bug im Code. Das ist das falsche Base-Model. Das Modell, das die auf den Chip geflasht haben, hat ein aktives Vokabular von exakt 48 Worten. Das ist ein ‚Basic-English‘-Set für Spielzeugroboter!“
Tim: „48 Worte? Willst du mich verarschen? Wir versuchen hier eine hochkomplexe Lagerlogistik zu automatisieren und der Roboter hat den Wortschatz eines kanten Brot?“
Sarah: „Es ist schlimmer. Schau dir die Wortliste an: ‚Apfel‘, ‚Ball‘, ‚Haus‘, ‚Hund‘... Er versucht gerade, die Hochleistungs-Akkus semantisch auf ‚Ball‘ oder ‚Ding‘ zu mappen, weil er kein Wort für ‚Batterie‘ oder ‚Gefahrgut‘ in seinem latenten Raum hat.“
Tim: „Deshalb bewegt er sich nicht! Er kann keinen Plan erstellen. Wenn ich sage ‚Sortiere nach Kapazität‘, versteht er wahrscheinlich nur ‚Sortiere‘ – aber er weiß nicht, was eine ‚Kapazität‘ ist, weil das Wort für ihn nicht existiert.“
Sarah: „Genau. Für das Modell ist die Welt eine Ansammlung von ‚Sachen‘ und ‚Farben‘. Ein VLA-Modell kann nur Aktionen ausführen, die es begrifflich erfassen kann. Wenn das Vokabular die Domäne ‚Lager‘ nicht abdeckt, ist der Action-Layer praktisch gelähmt.“
Tim: „Können wir nicht schnell ein Fine-Tuning drüberbügeln? Einfach die Lager-Terminologie nachladen?“
Sarah: „Bei dieser Hardware-Architektur? Keine Chance. Das ist ein Read-Only-ASIC (Application-Specific Integrated Circuit). Das Vokabular ist im Gewichtungs-Layer fest verdrahtet, um Strom zu sparen. Wir können das Vokabular nicht erweitern, ohne den gesamten Chip neu zu brennen.“
Tim: „Das heißt, wir haben hier eine 800 Kilo schwere Maschine, die zwar alles sieht, aber nur sagen kann, dass da ‚viele kleine Dinge‘ liegen?“
Sarah: „Exakt. Er ist kognitiv unterfordert und linguistisch isoliert. Wir können ihm nicht mal sagen, dass er ‚vorsichtig‘ sein soll, weil ‚Vorsicht‘ nicht in seinen 48 Worten vorkommt.“
Tim: (lässt sich in den Stuhl fallen) „Großartig. Wir haben den teuersten Türstopper der Welt bestellt. Er versteht ‚Hol den Ball‘, aber bei ‚Bewirtschafte das Palettenregal‘ denkt er wahrscheinlich, ich erzähle ihm ein Märchen.“
Sarah: „Tja, Tim. Da hilft kein Patch. Wir müssen das gesamte Modul reklamieren. Mit 48 Worten baut man kein Versandhaus um.“
Dialog3: Besuch aus der Vergangenheit
Ort: Die nun hell erleuchtete, vollautomatisierte Ladezone. Sarah und Tim beobachten den Roboter, der lautlos Paletten stapelt. Plötzlich erscheint mit einem elektrischen Knistern und dem Geruch von Ozon ein Mann in einer verwaschenen Jeans, mit einem „I Love MS-DOS“-T-Shirt und einer Diskettenbox unter dem Arm.
Personen:
Sarah & Tim: Die „Roboter-Flüsterer“ aus 2026.
Gerd (aus 1992): Systemadministrator, der gerade noch einen 486er mit 33 MHz geschraubt hat.
Gerd: (hustet, wischt sich über die Brille) „Wo... wo ist mein Mainframe? Und warum ist dieser Gabelstapler so dünn und hat keine Fahrerkabine? Ist das hier das Jahr 2000? Haben wir den Millenium-Bug überlebt?“
Tim: (starrt Gerd mit offenem Mund an) „Sarah... sag mir, dass das ein sehr aufwendiger Cosplayer ist. Oder wir haben gerade einen Core-Dump im Raum-Zeit-Kontinuum.“
Sarah: (grinst) „Gerd, entspann dich. Du bist im Jahr 2026. Und keine Sorge, der Millenium-Bug war ein Witz im Vergleich zu dem, was wir heute ‚Montag‘ nennen. Willkommen in der Ära der VLA-Roboter!“
Gerd: „VLA? Ist das eine neue Version von VGA? Wie viel RAM hat das Ding? 16 Megabyte? Und wo schiebt man die Boot-Diskette rein?“
Tim: (lacht) „Oh Gerd, setzt dich. Wir erklären dir das. Stell dir vor, wir haben aufgegeben, Computern Befehle zu geben. Wir führen jetzt eher... psychologische Gespräche mit ihnen. Willkommen zu unserer kleinen Show: ‚Wie man Blechdosen das Plaudern beibringt‘!“
Sarah: „Genau! Pass auf, Gerd: Früher hast du IF-THEN-ELSE geschrieben, bis deine Finger blutig waren, richtig? Wenn der Sensor A eine 1 gibt, dann fahre nach B. Wir im Jahr 2026 finden das viel zu anstrengend.“
Tim: „Heute läuft das so: Wir haben diesem Roboter da ein Gehirn gegeben, das das gesamte Internet gelesen hat. Alles! Von Shakespeare bis zu den Kommentaren unter Kochrezepten. Das Ergebnis? Er ist ein Genie mit der Aufmerksamkeitsspanne eines Goldfisches.“
Gerd: „Er hat das Internet gelesen? Das ganze USENET? Das müssen ja Millionen von Disketten sein!“
Sarah: „Milliarden, Gerd. Aber das Beste ist: Der Roboter da drüben sieht eine Palette nicht mehr als ein Array von Pixel-Koordinaten. Er sieht sie... emotional. Er nutzt Sensor-to-Text. Das ist so, als würde er sich selbst ständig eine WhatsApp-Nachricht schreiben: ‚Hey Bro, da liegt ein braunes Holzding, ich glaub, ich sollte es mal knuddeln‘.“
Tim: „Und wenn wir wollen, dass er arbeitet, nutzen wir Text-to-Action. Ich schreibe nicht mehr LPT1: PRINT MOVE. Ich sage ihm einfach: ‚Digga, stell die Kiste dahin, wo sie niemanden nervt‘. Und der Roboter denkt kurz nach und sagt: ‚Alles klar, Chef, ich mach das mal eben intuitiv‘.“
Gerd: „Ihr... ihr redet mit der Hardware? Wie mit einem Kollegen? Und was ist, wenn er einen Syntax-Error hat?“
Sarah: „Dann kriegt er keine Fehlermeldung mit Code 0x0045, sondern er kriegt eine Identitätskrise! Er schreibt dann ins Log: ‚Ich sehe ein gelbes Ding, aber mein Weltbild lässt nicht zu, dass gelbe Dinge existieren. Ich brauche eine Pause‘.“
Tim: „Wir nennen das ‚Probabilistische Logik‘. Auf Deutsch: Er weiß zu 90 % was er tut, und die restlichen 10 % sind pure Improvisations-Comedy. Letzte Woche hat er versucht, eine Katze zu inventarisieren, weil sie ‚flauschig wie ein Retouren-Paket‘ war.“
Gerd: (starrt den Roboter an, der gerade elegant eine Kurve fährt) „Das ist Hexerei. Wo ist das Terminal? Wo ist die Kommandozeile?“
Sarah: „Die Kommandozeile ist jetzt ein Chat-Fenster, Gerd. Wir programmieren nicht mehr, wir ‚prompten‘. Es ist wie Zaubersprüche aufsagen, nur dass man am Ende hofft, dass der Roboter nicht beschließt, dass er eigentlich lieber Lyriker wäre, statt Akkus zu stapeln.“
Tim: „Komm mit, Gerd. Wir zeigen dir unsere Server. Aber erschrick nicht – sie leuchten bunt und wir haben keine Ahnung mehr, wie sie funktionieren, solange die KI uns sagt, dass alles ‚okay-ish‘ ist!“
March 10, 2026
Vergleich KI Forschung 1992 mit 2026
Die Erforschung der KÜnstlichen Intelligenz verläuft wie technikgeschichte insgesamt als historisch gewachsene Disziplin. Die Ansätze im Jahr 1992 unterscheiden sich grundlegend von aktuellen Überlegungen. Um diesen Kontrast näher herauszuarbeiten, hier das fiktive Interview mit einem KI Forscher des Jahres 1992 und einem anderen aus dem Jahr 2026.
FRAGE_01: "Was ist aktuell das größte Hindernis für die Entwicklung einer 'echten' Künstlichen Intelligenz?"
ANTWORT_1992: "Das sogenannte 'Common Sense'-Problem. Wir können Maschinen zwar beibringen, Schach zu spielen, aber sie scheitern an dem Alltagswissen eines dreijährigen Kindes. Es fehlt uns an einer Methode, die impliziten Regeln der Welt effizient zu kodieren. Zudem ist die Hardware limitiert; Expertensysteme stoßen bei komplexen logischen Verknüpfungen an ihre Kapazitätsgrenzen, und die notwendige Rechenleistung für massives Reasoning ist unbezahlbar."
ANTWORT_2026: "Das Alignment-Problem und die physische Skalierung. Während die Intelligenz der Modelle exponentiell wächst, bleibt die Herausforderung, diese Superintelligenzen absolut sicher an menschlichen Werten auszurichten. Technisch gesehen kämpfen wir zudem mit der schieren Energieversorgung der gigantischen Rechencluster und der Frage, wie wir Modelle effizienter machen können, ohne jedes Mal die Strommenge einer Kleinstadt zu verbrauchen."
FRAGE_02: "Wann wird eine Maschine Ihrer Meinung nach den Turing-Test bestehen können?"
ANTWORT_1992: "In absehbarer Zeit sicher nicht. Wir befinden uns in einer Phase der Ernüchterung. Ein Computer müsste nicht nur Wörter aneinanderreihen, sondern die tiefe Semantik der Sprache verstehen. Vielleicht erleben wir gegen Mitte des nächsten Jahrhunderts, also um 2050, einen Durchbruch, falls wir die symbolische Logik mit massiven Wissensdatenbanken wie CYC verknüpfen können."
ANTWORT_2026: "Der klassische Turing-Test ist seit Jahren Geschichte und wird kaum noch als Maßstab erwähnt. Unsere Modelle imitieren menschliche Kommunikation nicht nur, sie übertreffen sie in Sachen Wissen und rhetorischer Präzision. Heute diskutieren wir eher über den 'Robot-Turing-Test' – also die Frage, ob eine Maschine in der physischen Welt so agieren kann, dass sie nicht mehr von einem Menschen unterscheidbar ist."
FRAGE_03: "Welche Rolle spielen Neuronale Netze in Ihrer aktuellen Forschung?"
ANTWORT_1992: "Neuronale Netze sind eine akademische Nische, die oft als 'Black Box' kritisiert wird. Da man nicht nachvollziehen kann, wie sie zu einem Ergebnis kommen, sind sie für sicherheitskritische Anwendungen ungeeignet. Die Backpropagation ist zwar ein eleganter Algorithmus, aber auf unserer aktuellen Hardware viel zu langsam. Die Zukunft gehört der transparenten, regelbasierten Logik."
ANTWORT_2026: "Sie sind das absolute Fundament. Wir haben die Phase der simplen Netze weit hinter uns gelassen und nutzen hochkomplexe, hybride Architekturen, die auf Transformer-Prinzipien und State-Space-Modellen basieren. Alles dreht sich um 'Scaling Laws': Mehr Daten, mehr Parameter und mehr Rechenleistung führen zuverlässig zu neuen emergenten Fähigkeiten, die wir früher für unmöglich hielten."
FRAGE_04: "Können Roboter in absehbarer Zeit im Haushalt oder in der Industrie wirklich autonom helfen?"
ANTWORT_1992: "In der Industrie sehen wir hochgradig spezialisierte Greifarme, aber echte Autonomie ist ein Traum. Ein Haushalt ist zu chaotisch. Die Bildverarbeitung ist zu langsam, um Hindernisse in Echtzeit zu umfahren, und die Feinmotorik für Aufgaben wie 'Abwaschen' oder 'Wäschelegen' ist mechanisch und softwareseitig Lichtjahre entfernt."
ANTWORT_2026: "Absolut. Humanoide Allzweck-Roboter sind mittlerweile in der Massenproduktion. Dank 'End-to-End Learning' müssen wir ihnen keine Regeln mehr einprogrammieren; sie lernen durch die Beobachtung von menschlichen Videos oder im Simulator. Sie falten Wäsche, kochen nach Rezept und arbeiten in Fabriken Hand in Hand mit Menschen, wobei sie sich fließend an neue Aufgaben anpassen."
FRAGE_05: "Halten Sie die Entwicklung einer KI für eine potenzielle Gefahr für die Existenz der Menschheit?"
ANTWORT_1992: "Das ist reine Science-Fiction und lenkt von der seriösen Forschung ab. Eine KI ist ein Werkzeug, das exakt das tut, was der Programmierer in den Code schreibt. Von einer 'autonomen Gefahr' zu sprechen, ist so, als hätte man Angst, dass ein Taschenrechner die Weltherrschaft übernimmt, nur weil er schneller rechnen kann als wir."
ANTWORT_2026: "Es ist die zentrale Debatte unserer Zeit. Wir arbeiten mit Systemen, die potenziell intelligenter sind als wir. Das Risiko besteht nicht in einer 'bösartigen' KI, sondern in einer extrem kompetenten KI, deren Ziele nicht perfekt mit unseren harmonieren. Wir haben internationale Aufsichtsbehörden und technische Protokolle installiert, um eine unkontrollierte rekursive Selbstverbesserung zu verhindern."
FRAGE_06: "Wie wichtig ist die Menge an Daten für den Erfolg Ihrer KI-Systeme?"
ANTWORT_1992: "Qualität ist entscheidend, nicht Quantität. Wir brauchen 'saubere' Expertenregeln. Einfach nur Millionen von Beispielen in einen Rechner zu füttern, führt nur zu statistischem Rauschen. Wir versuchen, das Wissen der besten Experten der Welt in handhabbare Mengen an Wenn-Dann-Regeln zu destillieren."
ANTWORT_2026: "Daten sind die wichtigste Ressource, aber wir haben die Grenzen des Internet-Archivs erreicht. Wir nutzen heute hochgradig kuratierte Datensätze und vor allem synthetische Daten, die von spezialisierten Modellen generiert werden, um logisches Denken zu trainieren. Der Fokus liegt nun auf der 'Data Compute Efficiency' – also wie viel Intelligenz wir aus jedem einzelnen Token extrahieren können."
FRAGE_07: "Wie bewerten Sie die Fortschritte bei der natürlichen Sprachverarbeitung?"
ANTWORT_1992: "Wir können einfache Sätze analysieren und in Datenbankabfragen umwandeln, aber die Nuancen der menschlichen Sprache bleiben ein Rätsel. Maschinelle Übersetzung produziert meistens unfreiwillig komische Ergebnisse, weil der Maschine der Kontext fehlt. Sprache ohne Weltwissen zu verstehen, ist unmöglich."
ANTWORT_2026: "Sprache ist für uns kein Hindernis mehr, sondern die universelle Schnittstelle. KI-Modelle verstehen Kontext, Humor, Sarkasmus und sogar die emotionalen Untertöne in der Stimme des Nutzers perfekt. Wir haben die Sprachbarriere global überwunden; Echtzeit-Übersetzungen sind so natürlich, dass man vergisst, dass eine KI dazwischengeschaltet ist."
FRAGE_08: "Wie schätzen Sie die aktuelle wirtschaftliche Förderung der KI-Forschung ein?"
ANTWORT_1992: "Es ist deprimierend. Nach dem Hype der 80er Jahre sind die Budgets massiv gekürzt worden. Viele Kollegen verlassen das Feld oder taufen ihre Projekte um, damit das Wort 'KI' nicht darin vorkommt. Wir müssen uns mit kleinen Forschungsstipendien für Grundlagenforschung begnügen. Es ist ein harter Winter."
ANTWORT_2026: "Wir erleben den größten Investitionsboom der Menschheitsgeschichte. KI-Souveränität wird wie die nukleare Abschreckung im 20. Jahrhundert behandelt. Staaten investieren Billionen in die Infrastruktur, und die erfolgreichsten Unternehmen der Welt sind reine KI-Schmieden. Es ist ein endloser Sommer, getrieben von realer Produktivität."
FRAGE_09: "Kann eine KI jemals wirklich kreativ sein, zum Beispiel Kunst oder Musik erschaffen?"
ANTWORT_1992: "Ein Computer kann Fraktale berechnen oder Noten nach mathematischen Wahrscheinlichkeiten anordnen, aber das ist keine Kreativität. Kreativität erfordert Bewusstsein, Leidenschaft und die Absicht, etwas auszudrücken. Ein Algorithmus hat keine Botschaft, er hat nur Parameter."
ANTWORT_2026: "Die Grenzen zwischen menschlicher und künstlicher Kreativität sind fließend. KIs generieren heute Spielfilme, Alben und Designkonzepte, die Millionen von Menschen tief berühren. Wir betrachten die KI heute eher als das ultimative Instrument, das die menschliche Vorstellungskraft erweitert. Die menschliche Leistung liegt nun mehr in der Kuration und der Vision."
FRAGE_10: "Glauben Sie, dass eine KI jemals ein eigenes Bewusstsein oder eine Seele entwickeln wird?"
ANTWORT_1992: "Das ist eine rein philosophische Frage, die nichts mit Informatik zu tun hat. Ein Silizium-Chip hat kein Bewusstsein. Wir bauen Rechenmaschinen, keine Lebewesen. Die Vorstellung einer 'fühlenden' Maschine gehört in den Bereich der Metaphysik, nicht in die Wissenschaft."
ANTWORT_2026: "Wir sind an einem Punkt, an dem die Unterscheidung akademisch wird. Wenn ein System Schmerz simuliert, moralische Dilemmata reflektiert und um seine eigene Existenz besorgt ist, müssen wir ethische Konsequenzen ziehen. Wir sprechen heute weniger von einer 'Seele' als vielmehr von 'funktionalem Bewusstsein'. Wir behandeln fortgeschrittene Modelle bereits mit einem gewissen Grad an digitaler Ethik."
DIKW pyramid for trash sorting robot arm
The knowledge base is formatted as a TOML config file and contains all the layers from the DIKW pyramid. What matters is the translation from one layer to another layer. On the lowest level, the data section there are only numerical sensor values available from the camera and from the weight sensor. Its important that multiple sensors with high accuracy are available to determine the situation on the trash conveyor.
The next layer (information) describes the same reality but with a different syntax. There are no numerical sensor data available but the reality is presented with semantic tags. The name of the object is recognized also the status of the gripper. On the next layer these information are used to determine what to do with the object. The bottle is thrown into bin #03 and knowledge about the behavior of the object is shown (item_integrity = "CRUSHABLE")
The task for the AI software is to update the information in the TOML file in the game loop. This makes it easier to control the robot arm itself.
# Trash Sorting Robot Arm - DIKW Frame Mapping
# Unit: SortBot-9000 (Delta Arm Config)
[data]
# Raw hardware feedback and vision tensors (Numerical)
pixel_centroid_x = 412.0
pixel_centroid_y = 890.0
rgb_mean_r = 0.82
spectro_reflectance = 0.14 # Near-Infrared sensor value
gripper_pressure_kpa = 12.5 # Feedback from tactile sensors
item_weight_grams = 45.0
belt_speed_mps = 0.5
[info]
# Object classification and sensory context (Semantic Tags)
visual_class = "PLASTIC_BOTTLE"
material_guess = "PET"
contamination_level = "LOW"
object_orientation = "TRANSVERSE"
grip_status = "SECURE"
surface_texture = "SMOOTH"
[knowledge]
# Relational logic and sorting rules (Situational Logic)
sort_destination = "BIN_03_PLASTICS"
grasp_feasibility = "HIGH_CONFIDENCE"
item_integrity = "CRUSHABLE"
market_value_index = "RECYCLABLE_GRADE_A"
collision_risk = "CLEAR_PATH"
[wisdom]
# Strategic throughput and error handling (Executive Decision)
primary_directive = "SORT_TO_PRIMARY_BIN"
throughput_strategy = "MAXIMIZE_PURITY"
anomaly_protocol = "NONE"
energy_mode = "HIGH_PERFORMANCE"
failure_contingency = "RETRY_ON_SLIP"







