November 01, 2026

Wordcraft an AI generated software clone

 Open Source software is known since the mid 1980s. During this time, computer enthusiasts have reprogrammed Unix software in C. Many new programs and entire operating systems are available as open source and there are dedicated conferences of the FOSS community.

Open Source has many advantages over commercial software because Open Source programs are available as source code and they are distributed free of charge. The shared similarity to commercial software is, that human programmers are needed to create the code. Especially for larger projects like Office, or photo editing software this bottleneck is a serious problem.

Since a while there is a revolution available for the software industry triggered by large language models specialized for writing software. One of the newly created programs is Wordcraft which is Word clone and it is running on Windows, Mac and Linux. The original Word program consists of a large codebase and is only available for Windows, while the Wordcraft clone was written in Rust and runs even in the webbrowser.

It seems, that with the correct prompt and a recent AI tool its possible to clone software. A human programmer defines the goal, while the AI writes the code. This allows to bypass the slow development of human written software which is around 10 lines of code per day and programmer.[1]

Computers until the year 2022 were able to copy the software itself, a zip file which holds a software can be send from one computer to another in a minute. This allows to distribute open source software very fast. The bottleneck was to create new software. If someone likes to start a new open source project, he need a months upto years until the software was written and tested. The duration can be reduced by increasing the amount of programmers but its hard to coordinate these teams.

With the advent of vibe coding the former bottleneck can be solved partly. Similar to a neural networks which can generate photos from scratch, a large language model is useful to generate computer code from scratch. There is no need for a software team anymore, but software can be created by a single text prompt which gets executed in minutes.

Its pretty easy to predict the outcome of this technology. The amount of vibe coded software at github will grow exponentially. Every programmer who has in idea can program an entire software with the help of Artificial intelligence and publish the result online. Such kind of revolution will question existing commercial software and open source software both. The new boundary is between human written code and AI generated code.

Lets take a look into the project. The screenshot was taken in Linuxmint and shows the help screen. It gives the information who created the software, Claude Opus, and how many lines of code were needed in Rust, 

In a short text, a word document was created and converted into a pdf document. Also the word document was opened with Libreoffice. All the operations are working. It seems, that the wordcraft project is a very powerful clone of the original software.

Its interesting to take a look into the github page of wordcraft because it documents the rapid changelog. From the Linux kernel is known, that a huge amount of commits is added to the project, so a new kernel gets released every 2 months. In case of the wordcraft project the frequency is much higher. The version shown in th former screenshot is 0.7.0 from Oct 14, 2026. The current latest version is 0.13.2 with lots of improvements. 

The duration between both releases was only 2 weeks. No human programming team is able to improve the software in such short amount of time. The only explanation why the software is changing so fast, is:
a) the software version 1.0 was written already and the shown version at github is outdated
or b) the version 1.0 doesn't exist yet and an artificial intelligence is improving the software on a daily basis

Its not clear how the software was made. What is known for sure is that there is no other Wordprocessing available written in Rust with such a high amount of features. Calling the project a Word clone is an understatement.


Sources
[1] Brooks, Frederick P.:The Mythical Man-Month, 1975


Vocabulary game for a warehouse robot

Grounded language can be demonstrated with a vocabulary game. The game engien prsents a camera picture and a human has to enter the correct word. In case of a warehouse robot game, such a quiz consists of a BNF grammar which holds only the possible words, and a picture which contains all the possible objects and actions.

BNF Grammar

<word>    ::= <objects> | <actions>

<objects> ::= "wall" | "door" | "charging station" | "human obstacle" | "box" | "shelf" | "robot obstacle"

<actions> ::= "move straight" | "turn left" | "turn right" | "u-turn" | "stop" | "speed up" | "speed down" 


Picture


The interaction with the game is easy to explain. The random generator selects the picture with the "door" and the human has to enter the word "door" into the input field. The game engine recognizes that the answer is correct and rewards the human with a +1 score.

The harder to explain question is why such a vocabulary game is relevant in robotics. It has to do with the previously mentioned BNF grammar. The grammar provides a minimal state space for the game. Its not important what sort of camera is used by the robot and which programming language is available e.g. C++, but only the BNF grammar counts because it holds all the possible game assets. In the concrete case the BNF grammar is stored in a text file with 251 bytes and contains 14 different words. These words are providing the conceptual space for the robot.

Suppose a human operator submits a command sequence like:
1. Enter the door, bring the box the shelf
2. then move to charging station
3. if there is a human opstacle or a robot obstacle, stop!

Such a command sequence is valid for the robot because it is based on words from the BNF grammar. The robot converts the command sequence into actions. This allows a high level human to machine interaction 

October 31, 2026

Rückblick auf GOFAI

Von 1960 bis 1990 beschäftigte sich die disziplin Künstliche Intelligenz mit dem Thema Oood old fashion AI (GOFAI). Der Begriff ist erst im Nachhinein für diese Zeitspanne vergeben worden, zur damaligen Zeit fehlte es an einer Selbstreflektion.

GOFAI meint im wesentlichen ein "closed system" zu programmieren, also ein intelligentes Computerprogram, was autonom Entscheidungen treffen kann, in die Zukunft plant und erläutert warum es eine bestimmte Entscheidung getroffen hat.

Beispiel Software projekte waren Mycin und Xcon, welche beide als Expertensysteme bezeichnet werden. Zum Höhepunkt der GOFAI Zeitspanne Ende der 1980er wurde versucht Expertensystem-Shells zu entwickeln, also Computerprogramme die für mehrere Bereiche eingesetzt werden können und wo der Nutzer Regeln und Fakten definiert, Auch das sehr bekannte Cyc Projekt von Douglas Lenat war eine solches Expertensystemshell.

Es war keineswegs ein Zufall, dass während der GOFAI Epoche das Ziel die Entwicklung von "closed systems" war. Ein solches Softwaresystem besteht aus Datenstrukturen und Algorithmen also die Bereiche die von der Informatik diskutiert werden. Auch in der Mainstream Informatik funktioniert Software nach diesem Muster. Es ist das Grundprinzip bei der Programmierung von Computern. In einer Programmiersprache wie C gibt es einen Header worin Datentype festgelegt werden, z.B. integer Variablen und strings, und dann gibt es einen Body worin Funktionen enthalten sind welche auf die Datenstrukturen zugreifen.

Gegen Ende der 1980er gab es mehrere kritische Stimmen an diesem Prinzip. Namentlich Hans Moravec und Rodney Brooks sind hier zu nennen welche beide Roboter entwickelte. Sie bemerkten bei der praktischen Programmierung von Robotern, dass GOFAI Systeme an ihre Grenzen stoßen. Es reicht offenbar nicht aus ein intelligentes Computerprogramm zu entwerfen.

Vielleicht ein praktisches Beispiel: angenommen die Roboterhardware funktioniert, und auf dem Microcontroller läuft ein Prolog interpreter der neuesten generation. Nach dem GOFAI Paradigma müsste der Roboter einsatzbereit sein. Problem ist dass der Roboter nichtmal im Stande ist einer schwarzen Linie auf dem Boden zu folgen. Sondern der Roboter wird exakt gar nichts machen, irgendeine Komponente scheint noch zu fehlen.

Auch andere Robotik-Entwickler bemerkten das ihre Roboter allein durch Expertensysteme nicht einsatzfähig waren und so wuchs die Kritik am GOFAI Ansatz. Es entstanden Theorien darüber was zusätzlich benötigt wird, diese Strömung wurde als bottom up robotics bezeichnet. Sie legt einen starken Fokus auf Sensor wahrnehmung und Motorsteuerung.

Der Wechsel von GOFAI hin zu bottom up robotics erfolgte ziemlich genau im Jahr 1990.

October 30, 2026

Pointing game for a warehouse robot

 A pointing game is an entry level language game to demonstrate grounded language. A formal BNF notation for a warehouse robot is:

<pointing-command> ::= "pointat " <target>

<target> ::= "charging_station"
           | "obstacle"
           | "box3"
           | "shelf_2"


The amount of verbs is only 1 and the amount of nouns is also very little. A command is always send from the speaker outside of the robot to the hearer which is the robot. The robot has to translate a command into an action.

From a technical perspective, such a game seems be trivial. The correct position of a word can be found in the internal database, so its a lookup request. at the same time, the game provides a powerful abstraction mechanism. it converts a complex domain, the warehouse robot, into a simple dialogue game. Even if the original game consists of hundreds of lines of code written in C++ the dialogue grammar for the pointing game remains simple. So the dialogue game acts as an API to get access to possible software routines of the robot.

The former mentioned BNF grammar acts as a user interface. It defines which commands are possible in the GUI. A human operator can select one of the commands from the BNF Grammar menu. 

October 27, 2026

Externe Intelligenz vs. interne intelligenz

 Robotik vor dem Jahr 2010 funktionierte als geschlossenes System. Dies bedeutete einerseits eine bestimmte technsiche Ausführung und zwar die Abwesenheit einer Fernsteuerung, aber es bedeutete vor allem auch auf bestimmte Weise über Robotik zu diskutieren. Der typische Diskurs vor 2010 bestand darin, dem Roboter bestimmte Eigenschaften zu unterstellen, das also der Roboter in einem Labyrinth einen Weg planen kann, auf Störungen reagiert oder selbstständig den Weg zur Ladestation findet.

Die Programmierung eines solchen Roboter war die Umsetzung dieser sprachlichen Beschreibung. All die Eigenschaften die mit Intelligenz assoziert werden wurden im Roboter und damit in seiner Software lokalisiert und folgerichtig bemühten sich Programmierer das umzusetzen.

Ein Diskursraum in dem ein Roboter als autonome intelligente Maschine funktioniert hat einen entscheidenen Nachteil: es bleibt ungewiss wie das funktionieren soll. Es gibt keine anerkannte Definition von Intelligenz und erst recht keine für maschinelle Intelligenz. Insofern blieb die Vorstellung von intelligenten Roboter sehr wage und hatte Ähnlichkeit zu Wunschdenken.

Ein neuerer Diskursraus seit dem Jahr 2010 beschreibt Roboter als offene Systeme die über keine Eigen-Intelligenz verfügen. Nach dieser ernüchternen Darstellung ist der Roboter der sich im Labyrinth bewegt weder bewusst welche Aufgabe er ausführt, noch weiß der Roboter wo die Ladestation ist, sondern der Roboter erhält Befehle von einem menschen außerhalb des Roboters der die Szene beobachtet. Ein solcher Roboter ist nicht länger autonom oder intelligent sondern er ist ausführendes Organ und wird über eine Fernsteuerung betrieben. Es ist streng genommen gar kein richtiger Roboter sondern hat Ähnlichkeit mit einer Marionette welche über Angelsehen bewegt wird.

Solche offene Systeme sind standardmäßig auf dem Niveau von Menschen, der Roboter kann all das was der menschliche Bediener auch kann. Allerdings nur wenn es einen solchen Bediener gibt. Ohne einen menschlichen Operator bewegt sich die Maschine nicht.

Technisch gesehen ist das der Unterschied zwischen interner und externer Intelligenz. Externe Intelligenz bedeutet dass die Künstliche Intelligenz außerhalb des Roboters lokalisiert ist. Nur bei externer Intelligenz entsteht eine natürliche zweiteilung als Speaker hearer system. Der Roboter ist der Hearer während der Mensch der Speaker ist. Über diese Zweiteilung entsteht eine Aufgabenteilung. Die zugrundeliegende philosophische Theorie ist die bikamerale Psyche von Julian Jaynes, 1976.

Robotik vor dem Jahr 2010

Das Jahr 2010 stellt eine Zeitenwende in der Robotik da. Bis zu diesem Zeitpunkt gab es viele ungelöste Probleme aber es fehlte eine Richtung wohin sich Künstliche Intelligenz und Robotik entwickeln könnte. Diese Sackgasse soll im folgenden erläutert werden.

Vor dem Jahr 2010 wurde Robotik als Teilgebiet der Informatik betrachtet. Der Fokus war auf die Hardeare eines Roboters sowie dessen Software gerichtet. Also welche Aktuatoren benötigt werden, welcher Microcontroller Sinn macht, in welcher Programmiersprache die Software geschrieben ist. Diese technische Sichtweise entspricht der Tradition der Informatik wo ebenfalls untersucht wird, wie Systeme intern funktionieren. So wird ein Betriebssystem in einer bestimmten Programmiersprache erstellt um es auf einer bestimten CPU auszuführen. Laut Selbstdefinition ist Informatik die Wissenschaft von Computern, folgerichtig stehen Computer im Zentrum der Aufmerksamkeit.

Mit dieser Sichtweise gelang es bis 2010 das mögliche Ziel einer Künstlichen Intelligenz zu realisieren. Wenn man die Hardware eines Roboters baut, einen Microcontroller zur STeuerung verwendet und in einer Hochsprache wie Java ein Software schreibt, hat man formal einen Roboter entwickelt, nur wird diese Maschine in der Realität keine sinnvolle Handlunbg ausführen. Man kann zwar rein formal in der Java Software einen Zufallsgenerator programmieren welcher die Räder des Roboters zufällig bewegt nur führt das nicht dazu dass der Roboter vor einem Hinderniss stoppt oder gar den Ausgang in einem Labyrinth findet.

Scheinbar fehlt noch eine wichtige Komponente und zwar künstliche Intelligenz. Es gab bis 2010 durchaus Bemühungen diese Komponente zu realisieren, z.B. über Algorithmen oder sogar mittels eigener Roboterbetriebssysteme wie ROS, nur leider waren diese Versuche nicht erfolgreich. Selbst sehr komplexe Roboter die aus 100k und mehr Codezeilen bestehen waren vor 2010 lediglich in der Lage pick&place aufgaben auszuführen, z.B. objekte auf einem Fließband zu greifen. Aber auch nur dann wenn alle Bedingungen unverändert blieben. Eine Navigation in chaotischen umgebungen war hingegen nicht umsetzbar.

Bis 2010 gab es ausschließlich Industrierobotoer welche einfache Bewegungen in hoher Wiederholung ausführten. Typische Beispiele sind Schweißroboter. Diese Systeme arbeiteten nach mechatronischen Prinzipien: in Software wurde eine Trajektorie definiert die vom Aktuator ausgeführt wurde. Leider waren die systeme nicht im Stande in veränderlichen Umgebungen zu funktionieren. Man hätte dazu die komplette interne Software neu programmieren müssen, was zeitaufwendig ist.

Erschwerend kam hinzu, dass bis zum 2010 Jahr bereits bekannt war, dass die meisten Robotik-Probleme einen np harten Zustandsraum besitzen. Um eine komplexe kinematische Kette zu steuern oder in einem Labyrinth zu navigieren gibt es eine hohe Anzahl möglicher Weltzustände die sich von Algorithmen nicht durchprobieren lassen mangels Rechenkapazität. Dadurch gab es zwei Grundsätzliche Probleme:

1. die vorhandene Rechenleistung war zu gering für Motion planning Algorithmen
2. Algorithmen funktionieren nach starren Prinzipien

Innerhalb der Informatik können viele Probleme gelöst werden. Die beiden oben genannten allerdings nicht. Es ist nicht möglich die Rechenleistung von Computern beliebig zu erhöhen und man kann nur jene Algorithmen in Software umsetzen die bereits erfunden wurden. Scheinbar war die Informatik nicht im Stande das Problem der künstlichen Intelligenz zu lösen, jedenfalls nicht im Jahr 2010.

Die Ursache für das Dilemma liegt in der Informatik selbst. Weiter oben wurde erläutert, dass Informatik die Wissenschaft von Computern ist. Und genau hier liegt das Problem. Computer sind das falsche Modell um künstliche Intelligenz zu untersuchen. Ein Computer im engeren Sinn ist eine Turing Maschine, also ein programmgesteuerter Automat. Dieser Automat ist im Stande mathematische Operationen auszuführen wie 1+1 zu berechnen und der Automat kann Algorithmen ausführen wie z.B. einen Bubble Sort Algorithmus, allerdings vermag eine Turing Maschine keine Künstliche Intelligenz zu erzeugen.

Bis ca. 2010 war innerhalb der Inforamtik diese Begrenzung nicht akzeptiert. Das Problem der künstlichen Intelligenz wurde ignoriert, man hatte die optimistische Vorstellung dass es eine Art von besserem Algorithmus gäbe der auf einer Turing Maschine intelligentes verhalten zeigt. Diese optmistische Vorstellung hatte einen wissenschaftlichen Hintergrund und zwar gab es funktionsfähige Schachprogramme. Diese funktionieren über Algorithmen welche in der Lage waren, Schach zu spielen und sogar gegen Großmeister zu gewinnen.

Vor dem Jahr 2010 wurde künstliche Intelligenz als Problem der Informatik und der Mathematik definiert. Und zwar deshalb weil in diesem Raster bisherige Probleme wie Softwareengineering, Grafikprogrammierung, und Hardwareentwicklung definieren ließen. All dies sind jeweils mathematisch-technische Probleme. Es ist entscheidend wie ein System intern aufgebaut ist, aus welchen Bauteilen es besteht und welcher Algorithmus verwendet wird. Wie schon oben vermerkt führt diese Perspektive bei Künstlicher Intelligenz nicht zum Erfolg, das war jedoch den Programmierern vor 2010 nicht bewusst. Sie verwendeten bekannte Werkzeuge und bekannte Sichtweise um das neue unbekannte Problem der KI zu lösen.

Interessant ist auch wie mit möglichen Alternativen zur mathematisch-technischen Sichtweise verfahren wurde. Ferngesteuerte Roboter und natürliche Sprache waren zwar bekannt aber sie wurden entweder wortlos ignoriert oder als falscher Ansatz betrachtet. Es gab also eine klare Vorstellung darüber wie Roboter programmiert werden müssten und wie nicht:
- richtig: mathematisch, technisch, algorithmen, Autonom
- falsch: Teleoperation, natürliche Sprache

Zum Abschluss des kurzen Essays eine vermutung warum genau die Kombination aus Teleoperation und Natürlicher Sprache als falsches Paradigma in der Robotik betrachtet wurde. Ein ferngesteuerter Roboter ist nit intelligent, sondern er erhält seine Befehle von außerhalb. Damit ist es kein autonomer Roboter sondern ein Scheinroboter. Zweitens ist natürliche Sprache das Gegenteil von Mathematik. Verben, Substantive und adjektiven werden nicht von der Statistik, der Algebra oder der Algorithmik erfasst sindern also keine Wissenschaft sondern haben ihren Ursprung in der Kultur. Dadurch sind Mathematiker und Informatiker nicht zuständig dafür.

October 26, 2026

BNF grammar for box pushing in Box2D simulation

 Speaker to hearer language games can be formulated in a BNF dialogue grammar. The grammar provides a vocabulary list which contains of verbs and nouns. In case of a box pushing task, not the full English Vocabulary is needed which has 100k words, but the needed grammar is a compact subset. Possible commands formulated with this grammar are:

  "push box1 to left"
  "push box2 to right"
  "rotate box1 to left"
  "rotate box2 to right"
  "grasp box1"
  "transport box1 to left"
  "transport box2 to right"
  "move gripper to up center position"

These commands are created by the speaker and submitted to the hearer. The hearer has to parse and execute each action. The advantage of a grammar is, that it provides an abstraction mechanism. The allowed state space consists of a few possible actions on predefined objects. The computer program which implements the BNF grammar in software can be reduced to a minimum. Here the BNF Grammar:

<command>           ::= <box_command> | <gripper_command>

<box_command>       ::= <directional_action> <box> "to" <direction>
                      | <simple_action> <box>

<directional_action>::= "push" | "rotate" | "transport"

<simple_action>     ::= "grasp"

<box>               ::= "box1" | "box2"

<direction>         ::= "left" | "right"

<gripper_command>   ::= "move gripper to" <position>

<position>          ::= "up center position"


Perhaps it makes sense to explain how to realize Artificial Intelligence with such a grammar. Classical AI in the past was working with algorithms, like path planning algorithms. Here no algorithms are needed but the robot gets controlled with teleoperation. There is a human operator outside of the robot which communicates with the mentioned BNF grammar. The grammar consists of a language definition, its a teleoperation protocol based on English.

October 25, 2026

Künstliche Intelligenz externalisieren

Bei offenen Systemen wird künstliche Intelligenz nicht durch den Roboter selbst erbracht sondern wird über die Umgebung bereitgestellt. Ein Beispiel ist eine Schiene wodruch der Roboter auf einer bestimmten Route fährt, ein weiteres Beispiel ist ein Roboter der einem Lichtsignal folgt. Die Funktionsweise des Gesamtsystems wird hauptsäthlich durch die Umgebungsarchitektur definiert, also durch den Verlauf der Schiene oder durch die Position des Lichtpunktes.

Zwar ist eine mechanische Schiene ein äußeres Gerüst aber es ist nicht flexibel. Die nächste Stufe ist ein menschlicher Operator der über einen Joystick oder sogar mittels Sprache den Roboter kontrolliert. Auch hierbei befindet sich die Intelligenz nicht im Roboter selber sondern außerhalb des Roboters. Man kann also den Roboter öffnen und seine Software untersuchen wird aber nichts erkennen was einen intelligente Handlung erzeugen vermag, sondern der Roboter führt nur Kommandos aus die Außerhalb liegen.

Es hat relativ lang gedauert bis diese Art von Künstlicher Intelligenz in der wissenschaftlichen Literatur diskutiert wurde. Rodney Brooks hat im Jahr 1990 den Begriff der embodied cognition geprägt, meinte aber noch keine Sprachfernsteuerung sondern nur die Steuerung mittels Lichtsignale oder Bumper als Sensorik des Roboters. Dennoch kann man brooks Arbeiten bereits so interpretieren, dass der Roboter über keine Onboard Intelligenz verfügt sondern dass die Intelligenz extern verortet ist.

Sobald Intelligenz außerhalb des Roboter loakalisiert wird, verschwindet das Problem der Künstlichen Intelligenz von allein. Es geht nicht länger um die frage welche Software oder welcher Algorithmus Intelligenz erzeugt, sondern es wird angenommen dass die Intelligenz bereits existiert, sie muss also nicht erst erzeugt werden. Dadurch ist es technisch trivial einen Roboter zu entwickeln. Der Roboter muss auf die vorhandene Intleligenz der Umgebung reagieren. Er muss also einer schiene die schon da ist präzise folgen, er muss auf eine Lichtquelle zusteuern die schon da ist, und er muss auf Signale eines Joysticks reagieren die er mittels Funkfernsteuerung erhält.

Aus Sicht der Informatik mag das Konzept von exteranlisierter Intelligenz ungewohnt klingen, aus Sicht der Linguistik ist es jedoch ein vertrautes Prinzip. Ludwig Wittgenstein hat Sprachspiele schon vor langer Zeit erläutert, und Schrift gilt im Allgemeinen als Kommunikations- und Abstraktionssystem. Sprache ist also eine Erfindung welche dezidiert dazu dient Intelligenz zu externalisieren. Kommunikation dient dazu die Gegenseite zu informieren, zu fragen oder Anweisungen zu geben, also ein Problem zu externalisieren.

Im Grunde dienen Sprachspiele aus der Linguistik dazu, ein Problem der Robotik-Steuerung in der Informatik zu lösen.