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.