April 20, 2026

Chinesische Spionin besucht ein deutsches Motion Capture Labor

 

Prolog 

Das Treffen fand in einem fensterlosen Raum im elften Stock eines unscheinbaren Gebäudes im Pekinger Stadtbezirk Haidian statt. Draußen flimmerte die Hitze über dem Asphalt, doch hier drin war die Luft so kalt und trocken, dass Mei Lins Haut leicht spannte.

Ihr gegenüber saß Direktor Zhang. Er trug keinen Anzug, sondern eine schlichte, dunkle Windjacke. Vor ihm lag eine dünne Mappe aus braunem Papier – keine digitalen Bildschirme, keine Spuren im Netz.

„Setzen Sie sich, Mei Lin“, sagte Zhang, ohne aufzusehen. „Sie haben Ihre Vorbereitungen für Heidelberg abgeschlossen?“

„Mein Deutsch ist fließend, meine medizinischen Zeugnisse sind im System der Universität hinterlegt. Ich bin bereit für die Infiltration“, antwortete sie ruhig. Sie war eine der besten „Sea Turtles“ des Dienstes – hochintelligent, unauffällig, perfekt angepasst.

Zhang schob die Mappe über den Tisch. Mei Lin öffnete sie und starrte auf ein unscharfes Foto, das durch ein Teleobjektiv aufgenommen worden war. Es zeigte ein unauffälliges Institutsgebäude hinter alten Bäumen.

„Das Institut für Biomechanik“, murmelte Mei Lin. „Ich dachte, mein Ziel seien die Patente für die neuen MRT-Kontrastmittel?“

Zhang schüttelte langsam den Kopf. „Das dachten wir auch. Aber unsere Quellen in der deutschen Industrie berichten von einer seltsamen Anomalie. Große Medizintechnik-Konzerne ziehen sich plötzlich aus der Entwicklung neuer Wirbelsäulen-Implantate zurück. Die Forschungsbudgets für künstliche Bandscheiben in Europa schrumpfen massiv.“

Mei Lin runzelte die Stirn. „Das ergibt keinen Sinn. Rückenprobleme sind die größte Volkskrankheit im Westen. Das ist ein Milliardenmarkt. Warum sollten sie das aufgeben?“

„Genau das ist Ihre Aufgabe herauszufinden“, sagte Zhang und lehnte sich vor. „Es gibt Gerüchte über ein Projekt in Heidelberg. Es läuft unter dem Radar der großen Publikationen. Keine Paper, keine öffentlichen Kongresse. Nur eine kleine Arbeitsgruppe unter einem gewissen Dr. Kämmerer. Unsere Aufklärung deutet darauf hin, dass sie dort etwas gefunden haben, das die gesamte Chirurgie überflüssig machen könnte.“

„Ein neues Medikament? Regenerative Stammzelltherapie?“

„Wir wissen es nicht“, gab Zhang offen zu. „Die Signale, die wir abgefangen haben, sind kryptisch. Sie sprechen von ‚dynamischer Architektur‘ und ‚binärer Stabilität‘. Es hat etwas mit Motion Capture zu tun – jener Technik, mit der sie in Hollywood diese Animationsfilme machen. Aber was haben Kameras und Sensoren mit der Heilung eines Bandscheibenvorfalls zu tun?“

Mei Lin betrachtete das Foto von Dr. Kämmerer. Ein Mann mit wirrem Haar und einer zerbeulten Kaffeetasse in der Hand. „Vielleicht geht es um Robotik? Assistenzsysteme für Chirurgen?“

„Möglich“, sagte Zhang. „Aber Kämmerer ist kein Chirurg. Er ist Biomechaniker. Das ist der blinde Fleck, Mei Lin. Die Deutschen scheinen das Problem aus einer Richtung anzugehen, die wir bisher ignoriert haben. In China operieren wir jedes Jahr Millionen von Wirbelsäulen. Wenn Kämmerer einen Weg gefunden hat, diese Schäden ohne Skalpell zu beheben – nur durch Daten und eine neue Form der Mechanik –, dann brauchen wir diese Technologie. Sie würde unser Gesundheitssystem um Jahrzehnte entlasten.“

„Was ist meine Priorität?“, fragte Mei Lin.

„Der Algorithmus“, antwortete Zhang präzise. „Die Hardware ist Standard – Kameras, Marker, Rechner. Das kann jeder kaufen. Aber die Software, die diese Bewegungen in Echtzeit analysiert und daraus eine medizinische Diagnose ableitet, die ein MRT schlägt... das ist der heilige Gral. Sie müssen tief in das Labor eindringen. Werden Sie Kämmerers Schatten. Lassen Sie ihn glauben, dass Sie die begabteste Studentin sind, die er je hatte.“

Mei Lin nickte. Sie spürte den Druck. Bisher waren ihre Aufträge klar definiert gewesen: Baupläne, chemische Formeln, Passwörter. Dieses Mal suchte sie nach einem Phantom – einer neuen Denkweise in der Medizin, die so radikal war, dass sie geheim gehalten wurde.

„Noch etwas“, fügte Zhang hinzu, während Mei Lin die Mappe schloss. „Seien Sie vorsichtig mit dem Begriff ‚Physiotherapie‘. Kämmerer hasst ihn anscheinend. Er nennt es ‚rekonstruktive Biomechanik‘. Wenn Sie dort sind, vergessen Sie alles, was Sie über klassische Medizin gelernt haben. Denken Sie wie eine Ingenieurin, die eine Maschine repariert.“

Mei Lin stand auf. Sie verbeugte sich leicht. „Ich werde die Quelle finden, Direktor. Wenn es eine Sprache gibt, die diese Maschinen sprechen, werde ich sie lernen.“

Zhang sah ihr nach, wie sie den Raum verließ. Er wusste, dass die Deutschen einen Vorsprung hatten, den sie nicht mit Geld, sondern mit jahrzehntelanger, stiller Forschung erkauft hatten. Er hoffte nur, dass Mei Lin rechtzeitig begreifen würde, was sie dort eigentlich sah – bevor die Deutschen beschlossen, ihr Wissen doch noch zu veröffentlichen und die Welt der Orthopädie für immer zu verändern.

Drei Tage später saß Mei Lin im Flugzeug nach Frankfurt. In ihrer Tasche lag ein Lehrbuch über menschliche Anatomie, aber in ihrem Kopf liefen bereits die Simulationen für die Platzierung von Infrarot-Markern ab. Sie wusste noch nicht, dass sie bald Zeugin einer medizinischen Revolution werden würde, die im Verborgenen eines Heidelberger Kellers stattfand. 

 

Im Labor 

Die Luft im Kellerlabor des Instituts für Biomechanik war kühl und roch nach Desinfektionsmittel und Elektrizität. An den Wänden hingen hochauflösende Infrarotkameras, deren rote Linsen wie die Augen kleiner Insekten im Halbdunkel leuchteten.

Mei Lin rückte ihre Brille zurecht. Sie trug einen schlichten weißen Kittel, das Haar streng zum Knoten gebunden. In den Akten der Universität Heidelberg wurde sie als „Gaststudentin im 4. klinischen Semester“ geführt – eine fleißige „Sea Turtle“, eine Rückkehrerin, die im Ausland Wissen sammeln sollte. Doch Mei Lins eigentlicher Auftraggeber saß in einem schmucklosen Bürogebäude in Peking. Ihr Ziel: Die „Operation Wirbelwind“.

„Bereit für den nächsten Probanden, Mei?“ Dr. Kämmerer, ein zerzauster Typ Mitte fünfzig, tippte auf seinem Tablet.

„Natürlich, Herr Doktor“, antwortete Mei in perfektem, leicht akzentuiertem Deutsch.

Ein Patient betrat den Raum. Er war übersät mit reflektierenden Markern, die auf seine Wirbelsäule, sein Becken und seine Oberschenkel geklebt waren. Mei half ihm auf das Laufband, das von Kraftmessplatten umgeben war.

„Achten Sie auf das Display“, flüsterte Kämmerer. „Das ist das Herzstück. Wir nennen es das ‚Digitale Myo-Skelett-Modell‘. Es gibt weltweit keine Publikation dazu, weil die Algorithmen zur Echtzeit-Kompensation noch unter Verschluss stehen.“

Mei Lin blickte auf den Monitor. Während der Patient sich bewegte, sah sie kein Video, sondern ein hochkomplexes Drahtgittermodell seiner Wirbelsäule. Kleine rote Wolken um die Wirbelkörper L4 und L5 zeigten die Scherkräfte an. Aber das Sensationelle war die Muskeldarstellung: Die tiefen Multifidi wurden als transparente Fasern angezeigt, die bei jeder Bewegung ihre Farbe änderten.

„Sehen Sie das?“, fragte Kämmerer begeistert. „Das MRT zeigte einen massiven Vorfall. Jeder normale Chirurg würde sofort operieren. Aber unsere Motion-Capture-Analyse zeigt: Die Bandscheibe ist gar nicht das Problem. Die neuronale Ansteuerung des linken Multifidus setzt 200 Millisekunden zu spät ein. Das Segment ist instabil. Die Bandscheibe wird nur gequetscht, weil die Muskulatur schläft.“

Mei Lin schluckte. Sie begriff sofort die Tragweite. Wenn man diese Daten hatte, konnte man Operationen im Wert von Milliarden Euro durch gezieltes Training ersetzen. Ein gewaltiger ökonomischer Vorteil für jedes Gesundheitssystem.

„Und die Lösung ist... einfach nur Sport?“, fragte sie unschuldig.

„Nicht irgendein Sport, Mei. Wir nutzen die Daten, um den Patienten in eine computergesteuerte Back Extension zu setzen. Die Maschine leistet nur Widerstand, wenn die KI erkennt, dass genau diese tiefen Fasern rekrutiert werden. Wir kehren die fatty infiltration in sechs Wochen um. Wir heilen den Rücken durch reine Biomechanik.“

Kämmerer wandte sich kurz ab, um ein Kabel zu richten. Mei Lin nutzte die Sekunde. Ihre Brille war mehr als eine Sehhilfe; in den Bügel war eine Mikrokamera integriert. Mit einem fast unmerkbaren Druck auf den Bügel scannte sie die Quellcodes, die über den Monitor liefen, und die Live-Diagramme der Muskelaktivität.

Später am Abend saß Mei in ihrem kleinen Wohnheimzimmer. Das Fenster war gekippt, der Lärm der Stadt drang nur gedämpft herein. Sie öffnete ihr Laptop und startete eine scheinbar harmlose Musik-Software. Im Hintergrund öffnete sich jedoch ein Terminal.

Sie schloss ihre Brille per USB-C an. Die Daten flossen in den Puffer.

„Statusbericht S-7. Projekt Bravo-9/Biomechanik“, tippte sie in das verschlüsselte Chatfenster. „Durchbruch bestätigt. Die Deutschen haben die Lücke zwischen statischem MRT und dynamischer Funktion geschlossen. Algorithmus zur Erfassung der tiefen Rückenmuskulatur extrahiert. Heilungsrate ohne chirurgischen Eingriff bei fast 90 Prozent. Sende Paket 1 von 4.“

Der Ladebalken bewegte sich langsam. Mei Lin starrte auf den Bildschirm. Sie dachte an Dr. Kämmerer, der ihr heute Mittag stolz die Technik erklärt hatte. Er vertraute ihr. Er sah in ihr die Zukunft der Medizin.

Ein kurzes Signal ertönte. Übertragung abgeschlossen.

„Hervorragende Arbeit, Mei Lin“, erschien auf dem Schirm. „Das Ministerium wird die Daten sofort in die Pilotklinik nach Shenzhen übermitteln. Bleiben Sie am Projekt dran. Wir brauchen die Spezifikationen der Kraftmessplatten.“

Mei schloss das Programm und löschte die temporären Dateien mit einem sicheren Überschreib-Algorithmus. Sie trat ans Fenster und sah hinunter auf den Neckar. Sie war keine Medizinstudentin, die Leben rettete, zumindest nicht hier. Sie war ein Rädchen in einer globalen Maschinerie des Wissensdiebstahls.

Doch als sie sich am nächsten Morgen wieder ihren weißen Kittel überzog und die Universität betrat, war ihr Gesicht die perfekte Maske der Unschuld. Sie war Mei Lin, die fleißige Studentin, bereit, den nächsten blinden Fleck der westlichen Medizin für ihre Heimat zu beleuchten.

In Heidelberg ahnte niemand, dass die Zukunft der Rückentherapie bereits auf einem Server in Peking gelandet war, noch bevor das erste deutsche Paper dazu überhaupt geschrieben war.


April 19, 2026

Rethinking Artificial intelligence with buffers

In the past it was assumed that Artificial Intelligence is an algorithm, for example a recursive genetic algorithm which improves itself, or a mathematical optimization algorithm for model predictive control. Such a bias organizes the research into a certain direction and ignores possible alternatives.

The opposite bias is shown in the picture which consists of a buffer who connects two systems. There is no Turing machine anymore needed which executes an algorithm, but they are separate systems who are communicating with each other. The buffer is some sort of traffic router in a computer network and is the source of artificial intelligence. The router ensures that both systems are using the same protocol, namely grounded language.

Even if this definition is vague and nothing but a picture, it allows to treat artificial intelligence with a new perspective. Classical algorithm theory can be ignored and signal processing and linguistics becomes a greater importance. The goal is to use the buffer pattern as a starting point for all the future AI research, including robotics, computer vision and planning.

Artificial intelligence with oracle turing machines

 Classical turing machines are executing algorithms, therefor the artifical intelligence must be located within an algorithm. There is an extensive list available of all possible algorithm but none of them is providing AI.[1]

There are some algorithms available which are mentioned in the context of AI like automated planning, Mathematical optimization and neural networks, but its not possible to take one algorithm from the list and use it for robot control.

What is needed instead is an opposite computional model different from a turing machine called an oracle turing machine. Even if the mathematical background of such a Super Turing machine is very complex, the principle can be explained as a Turing machine which communicates with an external system. This ability to communicates allows to offloadwing Artificial intelligence.

For robotics application, an oracle turing machine is usally implemented as a teleoperated robot. The robot stops in front of an obstacle and asks the oracle what to do next. The oracle is the human operator who decides that the robot needs to move around the obstacle on the left pathway. This command is executed by the robot.

In contrast to a normal turing machine, an oracle turing machine doesn't process an algorithm but it communicates. Communication means to solve problem by asking someone else outside of the own system. The higher instance is better informated about the situation, a human operator is equipped with a powerful vision system and has a lot of knowledge to solve most robotics problems. Such kind of knowledge is hard to program into an algorithm, so the robot needs to ask the operator for help.

There is a detail problem available in oracle turing machines which is the communication protocol. The turing machine and the oracle need to established a shared communication protocol which allows them to receive and submit messages in a language. This language needs to be invented first.

[1] https://en.wikipedia.org/wiki/List_of_algorithms

Offloading of Artificial intelligence

 AI research in the past was mostly a failure. All the programming languages, projects, neural networks, expert systems and algorithms didn't work. Even if handbooks available like "Russel/norvig: AIMA" these books doesn't contain valuable information but they are collected wrongt theories.

To overcome all the chaos a new paradigm needed, which can be coined as Offloading of Artificial intelligence. The idea is to reduce the robot's control software to the minimum so that its only a receiver for external commands. And the intelligence, the vision system, the algorithms and so on are offloaded to an external entity which is a human operator. The human perceives the scene with its eyes, uses its domain knowledge, takes a decision and then presses a joystick. The signal is send to the robot who is moving the servo motor.

The main advantage of such a minimal robot is its simplicity. There is no need to implement advanced AI algorithms, or write complex software systems but the robot is no longer responsible for the task.

Such kind of teleoperated robot works with two important principles: a) existing theories from mathematics, computer science and psychology are no longer valid b) the only open question is how to design the human to robot communication interface.  For example the signals can be transmitted with a cable, wireless, with a joystick, with speech or with a text interface.

In classical robotics in the past, the bias was that the intelligence inside the robot. The robot consists of a microcntroller, the microcntroller runs a software, the software executes an algorithm and the algorithm consists of artificial inteliigence. In the new paradigm "offloading AI" the robot is reduced to a non thinking device similar to a RC car which receives commands from an external source, similar to a Super turing machine which recieves commands from the oracle. Such a mental short cut allows to explain what intelligence is: intelligence is a signal from the environment. Innstead of generating intelligence inside the robot, the robot needs to receive and interpret the signal.

Offloading intelligence means, that there is a physical distance between the source and the target. The source of intelligence is the human in one location, while the receiver is the robot in the other location. Between them there is a cable. Such a distributed robot system will create a new problem which is how to submit the signal from the source to the target. By answering this question its possible to get a better understanding of intelligence. It transforms a closed system into an open system. The attention gets moved away from the robot itself towards the cable between human and robot.



April 15, 2026

The failure of AI related programming language

The promise of 5th generation programming language was to formulate AI related problems on a higher abstraction level. Examples like Prolog, Domain specific language and robot control APIs were invented to simplify the programming. Unfurtunately the concept was never accepted in the reality. The reason is, that a programming language is targetted towards the internal behavior of a robot or a computer, and the internal system has no knowledge about the external world.

Let me give an example. Suppose a domain specific language for robot control is invented which consists of statements like:

robot.move()
robot.stop()
robot.chargebattery()
robot.robotpickup()

In theory this DSL sounds logical the problem is to parse such a language with a computer program. A statement like robot.move() can't be converted into low level actions. Its only a mock up without executable programming code. The reason has to do with the difference between internal structure of a system and external environment. The statement "robot.move()" makes only sense if there is a simulation in which the robot can move, rotate and stop. In a normal robot program written from scratch there is no such simulation available, but the memory aka the RAM of a computer program is empty.

Programming language for high level robot control doesn't work, because a programming language is the wrong tool for such a purpose. Programming language like C, Java, Rust or Python are great for technical implementation of ideas but they can't generate artificial intelligence. What is needed is not a programming language but a communication protocol similar to GUI interface. Typical examples for such an interface are the Maniac Mansion verbs shown on the bottom or the vocabulary of a text adventure. These interfaces are not realized as programming language but they are widgets on the screen created for human to machine interaction.

Of course, there is a need to write a computer program which checks if the user is moving the mouse over a verb and presses the button. But such kind of program can be formulated in classical programming language like C/C++ or Python, Because the task for the program is very low level and has to do with recognizing the mouse position and display text on the screen. These tasks have to do with computer programming the core sense because the program defines how to blit pixels to the screen and which sort of game loop is reacting to the user input.

Closed systems without symbol grounding

Before the advent of human to machine communication there was a different paradigm avaialble which is a closed sytem. A robot was imagined as a self-sufficient system which never receives or submits information to the environment but operates by its own logic realized in software and hardware. Typical questions for such a closed system are:

- how fast is the microcontroller in terms of RAM and Mhz
- which programming languages was used, e.g. Lisp, C/C++
- Is the microcntroller running with 5 Volt or 12 Volt
- how many lines of code has the robot control system
- which mathematical algorithm was implemented in the software
- what is the CPU consumption and the runtime of the algorithm
- is the robot using an inverse kinematics solver
- was a genetic algorithm used

These questions are asked from a classical computer science perspective which includes a mathematical, physical and computer based understanding of robotics. Its about the internal structure of a robot and ignores the environment of the system. Instead of analyzing the task e.g. a warehouse logistics problem or a kitchen cooking problem, the focus is put on the machine itself and their hard- and software.

The main property of a closed system is its inability to communicate with the environment. Its assumed that no information, energy or matter can pass between the robot and the outside world. Possible interaction like teleoperation are ignored or reframed as anti-pattern. For example a typical assumption was, that teleoperation is the opposite of automation and therefor its not needed in robotics.

Even if the robot is working by technical meaning the robot can't solve a certain complex problem because closed systems are only able to manage repeating tasks but fail in more complex applications. Artificial intelligence problems like robot control are exclusively complex task which requires a huge amount of communication from a system with its environment.

April 14, 2026

The success of Artificial Intelligence since 2020

 The acceptance of new technology is measured with the user count. In the 1980s expert systems and robotics was available but nobody was using it. These software and hardware was only known in dedicated AI labs.

In contrast large language models available since 2020 are used by large amount of users world wide. Here is a timeline with the estimated number of users:

2020, <1 million
2021, 5 million
2022, 120 million
2023, 500 million
2024, 1200 million
2025, 2100 million
2026, 3500 million

Symbol grounding and the art of communication

For decades from 1950 until 2010 it was an untold bias that Artificial Intelligence gets realized as a closed system. This bias was formulated in an explicit fashion by the artificial life community in the 1990s. A simulated ecosystem gets populated with cellular automata which are evolving by itself into more advanced creates. The goal was, that with more processing power and genetic algorithm it would be possible to create intelligent computer code.

It should be mentioned that all the projects like cellular automaton, self evolving robots and computer simulation have failed. Its not possible to create intelligent structures this way. The reason for this failure wasn't recognized because it has to do with the untold bias of a closed system.

Cellular automaton are imagined as algorithm driven non communicative systems. They are not exchange matter, energy or information with the environment but they exist in a sandbox which acts as a impenetrable wall.

In contrast open system are able to exchange information, energy and matter with the environment. In case of robots this is equal to teleoperation. The robot receives a command from the operator and submits back status information. Such kind of information exchange was missing in artificial life projects and its the reason why the projects are a dead end.

in 1990 the Canadian cognitive scientist Stevan Harnad published a paper in which he introduces the grounding problem. Grounded language is important for communication systems, and such systems are always open systems. Instead of constructing a sandbox in which the AI can evolve by itself, there are communication layers between a robot and the environment which are described by symbols in a mini language.

Computer systems can be categorized into algorithm driven closed system, so called Turing machines, and communication driven open systems which are Choice Machines or interactive machines. The internet is a typical example for an open system based on the TCP/IP layered protocol. The same principle allows to create intelligent robots.

With this longer introduction its possible to explain why AI has failed in the past. The assumption was that intelligence is an algorithm which is running in a closed sytem. The improved understanding formulated by Harnad et. al. is that intelligence is communication needed for human to machine interaction.

Let us go back to cellular automaton and closed system because it allows to recognize a dead end in academic research. Cellular automaton were introduced by John von Neumann as demonstration for a self replicating system. A cellular automaton is a computer algorithm which is running on a 2d grid. The algorithm never communicates with the environment, its not a "Karel the robot" playground but a cellular automaton follows its own rule. The hope was that with the correct starting condition plus an evolutionary algorithm it would be possible to generate life within a computer, similar how biological life has evolved.

Stephen Wolfram has improved the idea into 1d cellular automaton which are working the same way like a Turing machine. His contribution was that such 1d automaton are described from a strict mathematical perspective. Such a rigid mathematical closed system is unable to communicate with the environment, therefor its the opposite of artificial intelligence in a modern understanding.

The good news is, that the Artificial life community has shown that their approach is a dead end. There is no need to explore the approach with more effort but the assumption itself of algorithms running inside a closed system can't generate intelligence. 


April 12, 2026

From turing machines to artificial intelligence

 A turing machine is a closed system which executes an internal algorithm but doesn't receives sensory data. This restriction allows to describe turing machines in an elegant mathematical fashion and makes it easy to implement turing machines in hardware. Unfurtunately, the inability of turing machines to receives external input for example from a human or an oracle, will prevent artificial intelligence because closed systems can only solve well definied routine problems but fail in advanced creative subjects.

Oracle turing machines or choice machines have the ability to process external information. Realizing such an advanced turing machine in software is surprisingly easy. A robot may stop on a junction and ask the human operator with a multiple choice drop down field what the robot should do next. The human operator can select "move left" or "move right". The selection of the human is submitted to the robot as external guidance and the robot can continoue his mission.

Such kind of robots are sometimes called an open system because the robot communicates with the environment. Instead of executing a predefined program the robot interacts with a higher instance. Such kind of interactive computing can't be described in classical algorithm terms anymore but the man to machine communication is at foremost a communication process from a sender to a receiver.

Modern artificial intelligence is dealing exclusively with open system which are able to communiate but not with closed system which can execute only a predefined algorithm. Open systems are more powerful but also harder to describe because of the mentioned communication language with the external world.




April 10, 2026

AI powered by natural language

An often asked question in the last 70 years of robotics research was: where is the AI located in a robot? It took around the year 2010 until researchers have answered this important question. The AI brain is located in natural language. A state of the art robot converts natural language into servo motor movements and has a access to large database with natural language commands. This allows the machine to think, take decisions and act.

The principle of realizing artificial intelligence with natural language was imagined before the year 2010 in projects like Televox robot (1929), SHRDLU (1968), Maniac Mansion game (1987) and Vitra visual translator (1987). The innovation which takes place after the year 2010 was, that AI was located only in English sentence but not in other potential sources like path planning algorithms, genetic algorithms, neural networks or expert systems.

The claim is that without natural language interface, its impossible to program a robot. Natural language is the only needed and most powerful tool to realize intelligent machines. There is no need to focus only on the English language because other human languages like German or French works also well. The only precondition is, that its a natural language with a large vocabulary to describe the reality in nouns, adjectives and verbs. Its not possible to use a programming language like Java or C++ for this purpose, but only natural language are powerful enough to grasp the environment of a robot.

Modern robotics after the year 2010 can be described as a semiotic interpretation engine which is able to use grounded language to convert high level symbols into low level motor actions. In other words, modern robotics doesn't work with algorithms or computer programs but the AI was realized with an advanced user interface similar to what is known from Maniac Mansion adventure game. The user interface on the bottom of the screen allows a human to machine interaction and this translation process can generate artificial intelligence.


April 09, 2026

Dataset for grounded language

 A DIKW pyramid consists of 4 layers for describing multiple abstraction level for a game state. In the context of a warehouse robot the following dataset is available.  The task for the neural network is to translate between the layers, this allows a human to machine communication. Human are expressing in full english sentences, while machines are measuring the environment in numerical sensor values.

[
  {
    "id": 1,
    "data": {"pos": [40, 10], "rgb_color": [255, 0, 0], "dist": 2.0, "trajectory": "traj3", "battery": 0.7},
    "information": ["box", "red", "kitchen", "entrance"],
    "knowledge": "Pick up the red box in kitchen room"
  },
  {
    "id": 2,
    "data": {"pos": [15, 5], "rgb_color": [0, 0, 255], "dist": 1.5, "trajectory": "traj1", "battery": 0.65},
    "information": ["box", "blue", "corridor", "obstacle"],
    "knowledge": "Move the blue box out of the corridor to clear the obstacle"
  },
  {
    "id": 3,
    "data": {"pos": [60, 30], "rgb_color": [255, 255, 0], "dist": 5.0, "trajectory": "traj_return", "battery": 0.15},
    "information": ["charging_station", "yellow", "dining_room", "low_battery"],
    "knowledge": "Aborting task: Return to dining room for immediate charging"
  },
  {
    "id": 4,
    "data": {"pos": [45, 12], "rgb_color": [100, 70, 20], "dist": 0.5, "trajectory": "none", "battery": 0.58},
    "information": ["obstacle", "brown", "kitchen", "entrance", "blocked"],
    "knowledge": "Wait for 10 seconds: Entrance is blocked by a moving obstacle"
  },
  {
    "id": 5,
    "data": {"pos": [10, 80], "rgb_color": [200, 200, 200], "dist": 10.0, "trajectory": "traj_search", "battery": 0.9},
    "information": ["room", "corridor", "empty", "pickup_zone"],
    "knowledge": "Scanning corridor: No items found in designated pickup zone"
  },
  {
    "id": 6,
    "data": {"pos": [33, 44], "rgb_color": [0, 255, 0], "dist": 0.1, "trajectory": "traj_dock", "battery": 0.5},
    "information": ["box", "green", "dining_room", "drop"],
    "knowledge": "Drop the green box at the delivery point in the dining room"
  },
  {
    "id": 7,
    "data": {"pos": [5, 5], "rgb_color": [255, 0, 0], "dist": 2.2, "trajectory": "traj_safety", "battery": 0.45},
    "information": ["hazard", "red", "corridor", "liquid_spill"],
    "knowledge": "External command: Avoid red marked area due to a spill in the corridor"
  },
  {
    "id": 8,
    "data": {"pos": [50, 50], "rgb_color": [255, 255, 255], "dist": 0.0, "trajectory": "none", "battery": 0.4},
    "information": ["inventory_list", "mismatch", "kitchen", "room"],
    "knowledge": "Import external data: Re-scan kitchen room to update missing inventory"
  }
]

Warum Python in der Spieleentwicklung Rust überlegen ist

 Die Rust Community behauptet eine Allzweck programmiersprache geschaffen zu haben die für alle Aufgaben von low level bis high level empfohlen wird. Und folglich ist es nur eine Frage der Zeit bis veraltete Programmiersprachen wie C++, Java oder Javascript durch Rust ersetzt werden.

Es gibt jedoch berechtigte Kritik an der Rust Sprache die kurz erläutert werden soll. Moderne Softwareentwicklung basiert zwingend auf der zuhilfenahme eines Large language models, und sei es nur um Fehler im Code zu finden. Der Nutzer postet ein Codesnippet in das LLM seiner Wahl und erhält anders als bei Stackoverflow unmittelbar die korrekte Antwort und muss nicht erst 2 Tage warten.

Large Language modelle sind zwar technisch in der Lage in jeder Programmiersprache den Code zu erstellen, aber ihre Datenbasis wurde mit einer unterschiedlichen Menge an Beispielcode gefüttert. Mainstreamsprache wie Python oder C# werden von LLMs am besten verstanden weil die Menge an Beispielcode von github und die Menge an Tutorials am größten ist. Die These lautet dass jene Programmiersprache die beste ist, die die größte Verbreitung hat, so ähnlich wie English die beste Weltsprache ist, weil es von den meisten Sprechern verwendet wird.

Rust fristet zahlenmäßig ein Nischendasein, es gibt zwar durchaus beispielcode bei github worin gezeigt wird, wie man ein Tetris spiel inkl. grafischer Oberfläche programmiert, für das selbe Problem gibt es in der Sprache jedoch hunderte oder sogar noch mehr Respositorien. Ein weiteres Problem bei Rust ist dass wegen der Neuheit sich die Syntax laufend ändert und die Sprache selber Gefahr läuft durch modernene Forks wie Rue ersetzt zu werden. Das mag hilfreich sein bei der Weiterentwicklung einer modernen Allzwecksprache die über einen eingebauten Memory checker verfügt, macht aber über Nacht den vorhandenen Sourcecode bedeutungslos und fragmentiert das Ökosystem weiter. Das kann bei Python und C# nicht passieren. Die Menge an Beispielcode ist riesig und wächst konstant.

Hier mal einige Zahlen.

- Anzahl Stackoverflow Fragen für Rust: 45k
- Anzahl Stackoverflow Fragen für Python: 2.2 Million

Automatisierung von Teleoperation in der Robotik

 Es gibt einen rationalen Grund warum ferngesteuerte Robotik über Jahrzehnte ein Schattendasein führte. Und zwar benötigt teleoperation einen menschlichen Bediener und lässt sich nicht automatisieren. Robotik versucht jedoch explizit Prozesse zu automatisieren ohne dass dafür menschliche Bediener nötig sind. Ergo wurde Teleoperation als Sackgasse definiert.

Seit ca. 2010 erlebten Ferngesteuerte Roboter ein Revival was auf ein besseres Verständnis für teilautonome Systeme zurückzuführen sind. Frühere Bedenken gegenüber ferngesteuerten Systemen konnten entkräftet werden. Teleoperation kann sehr wohl automatisiert werden und das soll kurz erläutert werden.

Angenommen ein ferngesteuerte Lagerroboter versteht einen Befehl wie "fahre in Raum B und bring mir die Box #4". Streng genommen handelt es sich nicht um einen autonomen roboter sondern wegen des Befehls ist es nur ein ferngesteuerter Roboter. Die Interaktion lässt sich aber mittels Script leit automatisieren. Im SCript steht folgende Sequenz:

1. "fahre in Raum B und bring mir die Box #4"
2. "fahre in Raum A und bring mir die Box #2"
3. "fahre in Raum B und bring mir die Box #8"
4. "fahre in Raum D und bring mir die Box #12"
5. "fahre in Raum C und bring mir die Box #1"

Nach Ausführung dieser Sequenz hat der Roboter ohne weitere Interaktion immerhin 5 unterschiedliche Boxen von verschiedenen Standorten geholt. Er war dazu mehrere Minuten im Einsatz und verhielt sich fast wie ein autonomes System. Wenn die Kopmmandos auf einer hohen Abstraktionsebene formuliert werden, wie im obigen Beispiel zu sehen, ist es keine klassische Joystick Teleoperation mehr sondern solche Systeme haben starke Ähnlichkeit mit autonomer Roboter.

Zwar erhält der Roboter technisch gesehen Befehle von einem menschlichen Bediener, denkt also nicht selber, nur kann die o.g. Befehlssystsem auch in einem SCript oder Makro gespeichert sein, es wird also gar kein menschlicher Bediener benötigt sondern der mensch erstellt einmalig ein Script und damit wird der Roboter autonom.

Die Frage ist weniger ob ein System autonom, teilautonom oder ferngesteuert funktioniort sondern die eigentliche Frage ist auf welchem Abstraktionslevel die Fernsteuerung erfolgt. Wenn über einen joystick lowlevel steuersignale gesendet werden sind diese tatsächlich nur schwer zu scripten. Man kann die Joystick kommandos nicht aufzeichnen und erneut abspielen weil der Roboter in einer anderen Ausgangsposition startet. Wenn jedoch die fernsteuerung mittels text interface erfolgt lassen sich die kommandos leicht aufnehmen und erneut einsetzen. Es lassen sich sogar Programme schreiben, um die Scripte automatisiert zu erzeugen.

Moderne Ferngesteuerte Robotik ab ca. 2010 versucht primär über Text interfaces ein hohes Abstraktionsniveau zu erreichen bei der Mensch maschine Kommunikation. Damit kommt man dem Ziel einer künstlichen Intelligenz sehr nahe.

April 08, 2026

Twelve-tone music on a student party


 

The need for human to robot communication

Layered communication with a DIKW pyramid solves a simple problem: how human can submit commands to a robot. For example the human operator submits "bring me the red box" to the robot and the robot will fetch the box.

The unsolved question is why such a human to robot interaction is needed? In the classical understanding of AI until the 2000s, such kind of pattern was interpreted as a dead end. Artificial intelligence was described as autonomous system which doesn't need to communicate with humans. If a robot doesn't communicates with humans the robot is described as a closed system which is able to run a computer program written in C or runs a neural network algorithm but the robot isn't using human language because there is no need for doing so.

Grounded language realized in AI systems like SHRDLU (1968), Vitra (1987) and M.I.T. Ripley robot (2003) is only needed if human to machine interaction is intended. A possible explanation for this paradigm shift has to do with the weakness of closed AI systems. Existing attempts to build autonomous robots have failed because closed systems are overwhelmed by a complex environment. Even if the robot's software consists of 100k lines of code in the C/C++ language this code won't match to a warehouse robot task because ambiguity and vague goals. Classical computer programming language are working only in a predicted environment like sorting an array or showing pixels on a monitor. Computer programs are the internal language of machines but the code can't store the knowledge for robots task.

Before the advent of human to machine interaction there was another available to build more powerful software for robots based on ontologies. Instead of storing the world knowledge in computer code the goal was to capture knowledge in a Cyc like mental map. Unfortunately, this concept has failed too. Even OWL ontologies are not powerful enough to store domain knowledge. Only teleoperation matches to high complexity. A teleoperated robot arm can do any demanding task including dexterous grasping and novel trajectories never seen before.

During teleoperation the AI problem gets outsourced from the robot itself towards an external source which is the human operator. The teleoperation interface allows a man to machine interaction which translates the external knowledge into robot movements.

April 07, 2026

Introduction to the Rust Programming Language: Safety, Speed, and Sovereignty

 The landscape of systems programming is undergoing a generational shift. For decades, C and C++ were the undisputed kings of performance, but they carried a heavy burden: memory unsafety. Most Common Vulnerabilities and Exposures (CVEs) in modern software are caused by memory leaks and "use-after-free" errors in legacy C/C++ code. Enter Rust, a language designed to provide the performance of C with the safety guarantees of a managed language.
Origins and Philosophy

Rust was created by Graydon Hoare (who also contributed significantly to the development of Apple’s Swift). Because of this shared lineage, developers often notice a familiar, modern syntax between the two languages. Unlike languages that rely on a Garbage Collector (GC)—a process that periodically scans and removes unused memory—Rust introduces a revolutionary Ownership Model.

In C, developers must manually manage memory using malloc and free, often relying on external tools like Valgrind to hunt down leaks. C++ improved this with smart pointers, but Rust takes it a step further at the compiler level.
The Power of Ownership

The heart of Rust is its ownership system, governed by three strict rules:

    Each value in memory has a variable that’s called its owner.

    There can only be one owner at a time.

    When the owner goes out of scope, the value is automatically dropped (cleared from memory).

This prevents memory leaks and ensures that a "use-after-free" error is physically impossible to compile. This level of safety is why giants like Microsoft are planning to transition significantly to Rust by 2030, and why even the Linux Kernel has begun integrating Rust code (currently sitting at roughly 0.3%).
Ecosystem and Tooling

The developer experience in Rust is centered around Cargo, its highly praised build system and package manager.

    Project Initialization: Use cargo init --bin to start a new project.

    Dependency Management: Simply edit the Cargo.toml file to add a "crate" (Rust's term for a library).

    Execution: Run cargo run to compile and launch your application.

Rust is also being used to build entire operating systems, such as Redox OS. Redox is a Unix-like OS written entirely in Rust, featuring its own display server called Orbital and supporting the NetSurf browser.
Learning Through Graphics and Games

Many developers find that the best way to master Rust's strict compiler is through visual projects. The Piston engine is a long-standing choice for game development, but for those seeking simplicity, Macroquad is an excellent library for 2D/3D graphics.

Developer Note: If you encounter errors like "floating point arithmetic is not allowed in constant functions" while using Macroquad on Linux Mint, ensure your compiler is up to date by running rustup update stable.
References and Further Reading

- From C# to Rust: A 42-Day Challenge https://woodruff.dev/from-c-to-rust-a-42-day-developer-challenge/
- Microsoft: Rust to Replace C/C++ by 2030 https://www.martinsfeld.de/blog/microsoft-rust-ersetzt-c-cpp-2030/
- Game Development in Rust with Macroquad https://mq.agical.se/
- The Rust Programming Language (Official Book) https://doc.rust-lang.org/book/
    
  

Grounded language in robotics

The symbol grounding problem and especially the detail of grounded language is a very new subject in computer science. It needs to be explained because its the key element of artificial intelligence. As an introductory example a warehouse robot has stored a json file:

{
  "knowledge": "pick up the red box in kitchen room",
  "information": [box, obstacle, entrance, room, pickup, drop, red, blue, yellow, kitchen, corridor, dining room],
  "data": [pos=(40,10), rgb_color=(100,70,20), dist=20, trajectory=traj3, direction=(40,10), battery=0.7],
}


This json file shows 3 of 4 layers from a DIKW pyramid. It is the current situation of the robot also known as the game state. According to the DIKW pyramid, this current situation is stored in different layers which have a different abstraction. The lowest data layer stores numerical information gathered from hardware sensors. While the information layer stores the vocabulary and the knowledge layer stores a concrete instruction.

The main task of the robots artificial intelligence is to translate between these layers. The human enters a command and the robot understands the command because its translated into the low level data layer. This translation process is called grounded language.

In contrast to former natural language processing (NLP) the goal is not to check the grammar of the input instruction e.g. to verify that the word "room" is a noun or that "red" is an adjective. So the question is not what language is by itself, but the problem has to do with converting from high level abstraction towards low level abstraction in the DIKW layers.

April 05, 2026

Annotating a warehouse robot

The table shows a simple warehouse game played in a 1d corridor. The robot R has to reach the target T and charge its battery at the Start S. Implementing such a mini game is usually realized with an array for storing the position of the objects.

What makes the simulation more demanding is the introduction of grounded language in the form of [tags]. These tags are used to describe the situation on a semantic level. In a DIKW pyramid, the 1d ascii corridor might be the data level, while the tags are the information level. 

1D ASCII CorridorAnnotation with [Tags]
[S R . . . . . T][at_start] [near_station] [status_idle] [path_clear]
[. S . R . . . T][moving_east] [leaving_station] [battery_optimal]
[. S . . R . . T][moving_east] [mid_corridor] [calculating_distance]
[. S . . . R . T][near_target] [decelerating] [scanning_area]
[. S . . . . R T][at_target] [loading_process] [task_active]
[. S . . . . T R][target_passed] [reversing] [adjusting_position]
[. S . . . R . T][moving_west] [returning_to_base] [low_battery_warning]
[R S . . . . . T][docking] [at_station] [recharging] [task_complete]

April 04, 2026

A closer look into the Rust programming language

 Rust is a very new programming language available since 2015. The main problem with Rust is, that its harder to learn than C/C++. Let us describe the situation in detail.

Before the invention of the Rust language, the programming world was divided into beginners languages like Python and Java on the one hand and expert languages like C++, Haskel and Assembly.

A programming language like Python is called a beginner language because its interpreted but not compiled, because there are no datatypes and because the code is easy to read. The disadvantege of Python is well known but for creating prototypes Python is perhaps the best programming language ever invented.

Creating production ready code was mostly done in C++ which is a very efficient language but is hard to write. Rust can be seen as twice as complicated as C++ because it introduces many new concepts and is very different from existing languages like go, java or C#.

The main reason why Rust has become popular is because its newer than the C++ standard. It doesn't provide endless amount of outdated principles but was designed from scratch for productive tasks. So its soem sort of rewrite of the D Language which was also started as a C++ replacement.

In contrast to former C++ replacements like nim, golang and objective c, the Rust language has become more popular. It seems that the demanding learning curve results into efficient software projects which can compete and outperform C++.

The main reason why Rust hasn't replaced C++ yet is because its very new and different, Programmers have to unlearn former knowledge and start from scratch which is a huge obstacle. 


April 03, 2026

The long history of artificial intelligence

Historians are introducing Artificial intelligence with the fact that the subject was researched for over 50 years without much effort. This makes AI research to the most unsuccesful sciences. In contrast to other disciplines like mathematics, physics or psychology its completely unclear what AI is about and how to make computer smart. A closer look into the facts will show that the situation is more dramatic, because AI was researched since 70 years because the Dartmouth conference on AI was held in 1956.

Despite lots of robotics project and a huge amount of published papers there is little or no progress available. Before the advent of chatgpt in Nov 2022, the subject was nearly unknown in public awareness. What was available instead was classical computer science in the form of PCs, the internet and modern gadgets like the iphone. In contrast, the goal of building intelligent machinery was perceived as impossible to realize.

One possible explanation why AI research from the last 70 years is perceived as a dead end is because there are no logic bricks available which are building on each other. Of course many dedicated robotics software frameworks and AI programming languages were created but none of them are perceived as important. There is no such thing available like the x86 hardware standard for AI or the Unix specification which allows other programmers to build on top of the standard new application. Instead the common AI project in the past was started by a few researchers who have written some code and discussed the results in a conference paper and other researchers have read the paper and decided that the outcome makes no sense so they started their own project from scratch.

There is one exception from this rule available which is responsible to the emergence of Artificial intelligence since the year 2010. So called deep learning datasets have become the standard in AI research. A dataset is a table with annotated information, like motion capture data, picture database and more recently multimodal dataset with question answer pairs. These datasets have evolved from simple table with 2000 entries up to larger table created by different researchers in a multi year effort. A certain dataset formulates a puzzle which has to be solved by a neural network. The network has the obligation to interpolate missing data and reproduce existing question answer pairs. For example the neural network is feed with a walking sequence of a human and the neural network recognizes that the left foot is in front of the right foot.

In contrast to the mentioned endless amount of AI libraries and AI algorithm, the dataset principle is surprisingly stable. Dataset were used in the year 2000, in 2010, in 2020 and are also relevant for the future. The assumption is, that datasets are a fundamental building blocks in creating intelligent machines.

In modern understanding an AI dataset acts as a benchmark to score a machine learning algorithm. The ability to score an algorithm transforms AI research from alchemy into a scientific disciplines. Instead of arguing from a philosophical standpoint if machines can think, the question is what the numerical score in a benchmark is. Such a fact can be compared against each other and allows to determine a direction for future research. 



April 02, 2026

Rückblick auf das Vitra Projekt SFB 314

Deutschland gilt in der KI Szene als rückständig, innovationsfeindlich und dominiert von philosophischen Debatten anstatt technischer Projekte. Es gibt jedoch davon durchaus Ausnahmen wie das Vitra Projekt was im Jahr 1987 von Wolfgang Wahlster durchgeführt wurde. Vitra steht für "visual translator" und war ein Großforschungsprojekt im Umfang von 50 Mio DM was erstmalig Bilderkennung und Sprache kombinierte. Technisch wurde es auf VAX Minicomputern und Symbolics Workstations realisiert.

Aus heutiger Sicht würde man Vitra als "Vision language model (VLM)" definieren, nur das es damals nicht mit neuronalen Netzen arbeitete, sondern mit händisch erstelltem Lisp Sourcecode. Ähnlich wie die Zuse Z3 aus dem Jahr 1941 war das Vitra Projekt konkurrenzfähig oder sogar leicht überlegen der US amerikanischen Spitzenforschung.

Die Hauptkritikpunkt an Vitra war, dass es zu teuer war. Man verwendete Großrechner um in Echtzeit Videobilder zu analysieren. Auch die Lisp Programmiersprache war ein Kostenfaktor, weil man Spezialisten benötigte, die Lisp programmieren können. Dieses Konzept, bestehend aus VAX Rechnern, Lisp und Livekameras, kann man nicht hochskalieren zu noch mehr Komplexität, sondern Vitra war eine Art von Dinosaurier, der eine Sackgasse darstellte.

Aus heutiger Sicht würde man viel kleinere Forschungsprojekte durchführen. Man würde nicht Lisp sondern Python wählen und man würde keine Videobilder von Kameras parsen sondern lediglich Screenshots von Videospielen analysieren. Damit könnte der Aufwand zur Realisierung auf ein Bruchteil gesenkt werden.


April 01, 2026

Mülltrennung als Computerspiel

Hier ist ein Lernspiel für Jung und Alt bei dem es um Mülltrennung geht. Der Spieler muss mittels drag&drop mögliche Items in die korrekte Tonne werfen. Viel Vergnügen.

import pygame
import random

# Initialisierung
pygame.init()

# Fenster-Einstellungen
WIDTH, HEIGHT = 900, 650 # Etwas breiter für die 5. Tonne
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Müll-Profi: Jetzt auch mit Glas!")

# Farben
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
BLUE = (0, 102, 204)    # Papier
YELLOW = (255, 204, 0)  # Verpackung
BROWN = (102, 51, 0)    # Bio
GRAY = (50, 50, 50)     # Restmüll
DARK_GREEN = (0, 100, 0) # Glas
LIGHT_GREEN = (0, 255, 0) # Feedback Richtig
RED = (255, 0, 0)       # Feedback Falsch

# Schriftarten
font = pygame.font.SysFont("Arial", 22, bold=True)
title_font = pygame.font.SysFont("Arial", 36, bold=True)

# Erweiterte Müll-Daten (Insgesamt 22 Items)
# Erweiterte Müll-Daten (Jetzt insgesamt 42 Items!)
WASTE_ITEMS = {
    # PAPIER (Blau) - Nur sauberes Papier!
    "Zeitungen": BLUE, "Karton": BLUE, "Schulheft": BLUE, "Prospekte": BLUE,
    "Briefumschlag": BLUE, "Eierkarton": BLUE, "Mehltüte (leer)": BLUE, "Geschenkpapier": BLUE,
    
    # GELBER SACK / TONNE (Gelb) - Verpackungen aus Plastik, Metall, Verbundstoff
    "Getränkedose": YELLOW, "Plastetüte": YELLOW, "Joghurtbecher": YELLOW, 
    "Milchtüte": YELLOW, "Alufolie": YELLOW, "Shampooflasche": YELLOW,
    "Konservendose": YELLOW, "Butterfolie": YELLOW, "Kronkorken": YELLOW,
    "Styropor": YELLOW, "Chipsdose": YELLOW,
    
    # BIO (Braun) - Organisches
    "Apfelrest": BROWN, "Bananenschale": BROWN, "Kaffeesatz": BROWN, 
    "Eierschalen": BROWN, "Rasenschnitt": BROWN, "Teebeutel": BROWN,
    "Orangenschale": BROWN, "Kartoffelschalen": BROWN, "Welke Blumen": BROWN,
    
    # RESTMÜLL (Grau) - Alles Verschmutzte oder Nicht-Verwertbare
    "Zahnbürste": GRAY, "Windel": GRAY, "Staubsaugerbeutel": GRAY, 
    "Asche": GRAY, "Zigarette": GRAY, "Pizzakarton (fettig)": GRAY,
    "Backpapier": GRAY, "Kaugummi": GRAY, "Putzlappen": GRAY,
    "Katzenstreu": GRAY, "Alte Fotos": GRAY,
    
    # GLAS (Grün) - Behälterglas (kein Trinkglas/Fensterglas!)
    "Weinflasche": DARK_GREEN, "Marmeladenglas": DARK_GREEN, "Senfglas": DARK_GREEN,
    "Ölflasche (Glas)": DARK_GREEN, "Parfümflakon": DARK_GREEN
}

class Bin:
    def __init__(self, color, x, label):
        self.rect = pygame.Rect(x, HEIGHT - 160, 140, 140)
        self.color = color
        self.label = label

class DraggableItem:
    def __init__(self, text, target_color):
        self.text = text
        self.target_color = target_color
        self.reset_position()
        self.dragging = False
        
    def reset_position(self):
        self.rect = pygame.Rect(WIDTH // 2 - 75, 180, 150, 45)

# 5 Tonnen erstellen
bins = [
    Bin(BLUE, 30, "Papier"),
    Bin(YELLOW, 200, "Gelber Sack"),
    Bin(BROWN, 375, "Bio"),
    Bin(DARK_GREEN, 550, "Glas"),
    Bin(GRAY, 725, "Restmüll")
]

# Spiel-Variablen
score = 0
feedback_text = "Zieh das Wort in die richtige Tonne!"
feedback_color = BLACK

def get_new_item():
    name = random.choice(list(WASTE_ITEMS.keys()))
    return DraggableItem(name, WASTE_ITEMS[name])

current_item = get_new_item()

running = True
while running:
    screen.fill((240, 240, 240)) # Hellgrauer Hintergrund
    
    # UI Zeichnen
    title = title_font.render("Müll-Sortier-Station", True, BLACK)
    screen.blit(title, (WIDTH//2 - title.get_width()//2, 30))
    
    score_display = font.render(f"Punkte: {score}", True, BLACK)
    screen.blit(score_display, (30, 30))

    # Tonnen zeichnen
    for b in bins:
        pygame.draw.rect(screen, b.color, b.rect, border_radius=8)
        # Beschriftung der Tonne
        txt_color = WHITE if b.color != YELLOW else BLACK
        txt = font.render(b.label, True, txt_color)
        screen.blit(txt, (b.rect.centerx - txt.get_width()//2, b.rect.y + 55))

    # Aktuelles Item zeichnen
    if not current_item.dragging: # Schatten-Effekt wenn nicht gezogen
        pygame.draw.rect(screen, (200, 200, 200), current_item.rect.move(3, 3), border_radius=10)
    
    pygame.draw.rect(screen, WHITE, current_item.rect, border_radius=10)
    pygame.draw.rect(screen, BLACK, current_item.rect, 3, border_radius=10)
    item_txt = font.render(current_item.text, True, BLACK)
    screen.blit(item_txt, (current_item.rect.centerx - item_txt.get_width()//2, current_item.rect.y + 10))

    # Feedback
    f_txt = font.render(feedback_text, True, feedback_color)
    screen.blit(f_txt, (WIDTH//2 - f_txt.get_width()//2, 120))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
            
        elif event.type == pygame.MOUSEBUTTONDOWN:
            if current_item.rect.collidepoint(event.pos):
                current_item.dragging = True
                mouse_x, mouse_y = event.pos
                offset_x = current_item.rect.x - mouse_x
                offset_y = current_item.rect.y - mouse_y

        elif event.type == pygame.MOUSEBUTTONUP:
            if current_item.dragging:
                current_item.dragging = False
                hit_bin = False
                for b in bins:
                    if current_item.rect.colliderect(b.rect):
                        if b.color == current_item.target_color:
                            score += 10
                            feedback_text = f"Richtig! {current_item.text} gehört in {b.label}."
                            feedback_color = LIGHT_GREEN
                        else:
                            score -= 5
                            feedback_text = f"Falsch! {current_item.text} ist kein {b.label}!"
                            feedback_color = RED
                        
                        current_item = get_new_item()
                        hit_bin = True
                        break
                
                if not hit_bin:
                    current_item.reset_position()

        elif event.type == pygame.MOUSEMOTION:
            if current_item.dragging:
                mouse_x, mouse_y = event.pos
                current_item.rect.x = mouse_x + offset_x
                current_item.rect.y = mouse_y + offset_y

    pygame.display.flip()

pygame.quit()
 

AI without programming

Computer science is mostly organized around programming languages. There are imperative languages like C, there are object oriented language like Java and there are modern languages like Python. A common strategy was to implement artificial intelligence in a programming language. The reason is, that a computer which is running a program is the most powerful and often the only tool available in computer science. So the assumption was, that this workflow can be adapted towards artificial intelligence.

Unfortunately, this concept doesn't work in reality. Even many AI related projects were implemented in C++ and lots of industrial robots were programmed in a robot programming language the concept of implementing AI in a programming language is a dead end. Even high level languages like Python doesn't provide the needed elements or libraries needed for making a computer smart. A computer program will run only in a predefined fashion which is the opposite of adaptive systems which are able to solve complex tasks.

The answer to the challenge is to avoid programming languages at all and imagine Artificial intelligence in a non computer science perspective. Instead of asking how to implement AI on a computer the new question is who can humans communicate with robots. This question goes beyond software engineering but it asks for protocols similar to TCP/IP. Implementing a communication protocol in C or in Python is only a detail problem and can be ignored in most AI related projects.

The computer shouldn't be described as a computational machine but as a message transceiver. There are incoming messages from a human and there are outgoing messages back to the human. Artificial intelligence means to formalize this process with a protocol, with a vocabulary and with a grammar. This task can't be described in classical software paradigm but it has to do with protocol design and inventing a domain specific language.

Let me give an example. Suppose the goal is to create a warehouse robot. Such a robot will needed a list of nouns like "obstacle, path, battery, box, barcode" and the robot will need a list of verbs like "stop, forward, rotate, scan, grasp". These nouns and verbs can be combined into sentences and some adjectives may help to communicate in difficult situations. Computer science and especially software engineering is the wrong discipline to describe the robot's vocabulary but it has more in common with linguistics not related to computing anymore.