FACHARTIKEL

Zurück
in die Zuse

TEXT Lukas Moersler und David A. Plecher

Die Zuse Z3 gilt als der erste programmierbare Computer der Welt. Ein funktionstüchtiger Nachbau davon war bislang im Deutschen Museum in München zu besichtigen, jedoch darf die Maschine nun aus Brandschutzgründen nicht mehr betrieben werden. Eine virtuelle Umgebung macht es möglich, ihre Relais trotzdem zum Klackern zu bringen.

Die Geschichte der frühen Zuse-Maschinen ist allgemein bekannt: Mitte der 1930er befindet sich Konrad Zuse im Studium zum Bauingenieur und entwickelt eine Abneigung zu repetitiven Rechnungen. Er entwirft das Konzept einer programmgesteuerten Rechenmaschine und konstruiert schließlich, nach einem von Problemen geplagten mechanischen Prototypen, die später „Z3“ genannte Anlage mittels Relaistechnik. Diese Maschine sollte den Krieg nicht überleben, jedoch errichtete die Zuse KG um 1960 eine funktionsfähige Rekonstruktion, die seither Teil der Ausstellung im Deutschen Museum in München war.

Mehr als 60 Jahre lang konnten Besucher*innen der Informatik-Ausstellung diese Rechenmaschine hautnah betrachten und gelegentlich sogar in Betrieb sehen. Seit 2022 ist dieser Teil des Museums jedoch aufgrund von Erneuerungsarbeiten, die bis voraussichtlich 2028 andauern werden, nicht mehr zugänglich. Zudem werden wohl auch nach der Rückkehr der Ausstellung die Relais der Z3 weiter schweigen, da die Maschine zwecks Brandschutzes komplett überholt werden muss.1

Doch wie lässt sich die historische Maschine betreiben, ohne dass gleich ein Museum Gefahr läuft, in Flammen aufzugehen? Unsere Antwort: eine interaktive Simulation. Diese Simulation sollte aber nicht nur die Funktionsweise der Maschine nachbilden, sondern auch weitestgehend erlebbar machen, wie es ist, sie tatsächlich zu bedienen. Ein Fall für Virtual Reality.

Das Relikt und sein Gegenstück

Virtuelle Realität (VR) bietet sich in vielen Themengebieten hervorragend an, um Lernumgebungen zu erstellen. Besonders, wenn es Objekte oder Orte zu veranschaulichen gibt, kann sie einen größeren Lerneffekt erzielen als traditionelle Medien.2,3 Die drei-dimensionalen nutzerzentrischen Interaktionsmethoden ermöglichen ein unvergleichliches Maß an Immersion. Beispiele für solche Lernumgebungen finden sich etwa in der Archäologie4, in der Raumfahrt5 und eben in der Computergeschichte6.

In der von uns entwickelten VR-Umgebung der Z3 (z3vr) betreten die Nutzer*innen einen virtuellen Raum, der den Räumlichkeiten des Museums nachempfunden ist. Das Herzstück der Szene bildet die Z3 selbst. Ihre zwei Relais-Schränke und die Konsole wurden per Hand mithilfe von Fotos7,8 weitestgehend in der 3D-Grafiksoftware Blender rekonstruiert. Aus Zeit- und Performancegründen konnten wir leider nicht implementieren, dass jedes einzelne der rund 2.600 Relais simuliert wird und seinen Schaltzustand reflektiert, jedoch trägt dafür die klackernde Geräuschkulisse der arbeitenden Maschine zur Immersion bei. Die Konsole funktioniert wie ihr echtes Gegenstück: Zur Eingabe von Zahlen und deren Verrechnung miteinander drücken Nutzer*innen mit ihren virtuellen Fingern die diversen Tasten auf der unteren Hälfte der Einheit. Die obere Hälfte zeigt auf einer Matrix von Lichtfeldern Ergebnisse und den aktuellen Status der Maschine. Neben der Z3 selbst befinden sich auch diverse Stationen zur Erstellung und Verwaltung von Programmen in der Szene. Die Programmierstation erlaubt es Nutzer*innen, beliebig lange Programme aus den neun Instruktionen zusammenzustellen, und sich einen entsprechenden Lochstreifen ausgeben zu lassen. Um die frühe Programmierung nachzuempfinden, gibt es auch die Option, das erstellte Programm per Hand an einem Locher in einen Film zu stanzen. Sobald ein Lochstreifen erstellt wurde, kann dieser in den Leser der Maschine gegeben werden und das Programm ist ausführbar. Jedem Filmstreifen wird eine dynamische Textur verliehen, welche den Inhalt des Programms in ihrem Lochmuster akkurat widerspiegelt und beim Einlesen schrittweise animiert wird.

Die Zuse Z3

… gilt als der erste vollautomatische, programmgesteuerte Computer der Welt, fertiggestellt 1941 durch Konrad Zuse. Sie beherrschte die vier Grundrechenarten sowie die Quadratwurzel, konnte 64 Fließkommazahlen à 22 Bits speichern und wurde über gelochte 35mm Filmstreifen programmiert. Recheneinheit, Steuereinheit und Speicher bestanden aus elektromechanischen Relais. Zuse hatte bereits 1938 die Z1 vollendet: eine Rechenmaschine mit weitestgehend identischer Architektur, welche jedoch komplett aus handgefertigten mechanischen Logikgattern bestand. Aufgrund mangelnder Präzision in der Herstellung verhakten sich diese Teile jedoch oft, weswegen die Z1 nie zuverlässig lief. Die Z2 war ein kurzlebiger Prototyp zu Präsentationszwecken, bestehend aus dem mechanischen Speicher der Z1 und einer elektromechanischen Recheneinheit.

Virtuelle Lochkarten, echte Schleifen

Doch das Projekt sollte nicht nur eine immersive Simulation und Lernumgebung erschaffen. Ein weiteres Ziel war es, jede beliebige Nutzung der Z3 zu ermöglichen. Beispielsweise können Filmstreifen als „Schleifen“ definiert werden, wodurch beim Einfügen in das Lesegerät ihr Anfang und Ende zusammengeklebt werden und das Programm somit wiederholt ausgeführt wird. Zudem ist der Speicher der Maschine persistent, sodass aufeinanderfolgende Programme einander Werte übergeben können. Insbesondere wenn Schleifen involviert sind, werden oft ein Vor- und Nachbereitungsprogramm nötig, um jeweils Eingabewerte von Nutzer*innen einzulesen und Resultate der Schleife zu verarbeiten. Um solche Folgen von Programmen organisiert zu halten, wurde ein System von Programmordnern implementiert, die eine definierte Reihenfolge von Programmstreifen enthalten. Fertige Programme und Ordner können beschriftet und abgespeichert werden. Die Beschriftungsmechanik wird zudem genutzt, um die gewünschten Eingabewerte von Programmen zu definieren, und um bei der Programmierstation den Speicherzellen Variablennamen zu geben. Da der Instruktionssatz der Z3 keine Direktwerte unterstützt, müssen alle Zahlen von der Konsole oder aus dem Speicher stammen. So ist es oft unumgänglich, solche Notizen beizulegen, um Nutzer*innen mitteilen zu können, welche Zahleneingaben ein Programm erwartet. Ein interaktives Tutorial hilft dabei, die Z3 und die verschiedenen Stationen ihrer Nutzung auszuprobieren.

Die Z3 im Einsatz

Als Stackmaschinen setzen die Z3 und ihr virtuelles Gegenstück eine vereinfachte Form der umgekehrten polnischen Notation um: Erst werden bis zu zwei Operanden geladen und dann die Operation gegeben. Das Ergebnis landet immer im ersten Register. Verfügbar sind die vier Grundrechenarten und die Quadratwurzel sowie Instruktionen zur Ein- und Ausgabe und dem Speichern und Abrufen von Zahlen. Konzepte wie „if-statements” oder das Abrufen einer Speicherzelle über einen dynamischen Index gibt es hier nicht. Trotzdem konnte Professor Raùl Rojas zeigen, dass diese Funktionen mithilfe arithmetischer Operationen dennoch umgesetzt werden können.Somit ist die Z3 theoretisch Turing-vollständig, das heißt sie kann jedes beliebige Programm eines modernen Computers ausführen, sofern es erst in die Z3-Sprache übersetzt wurde. Professor Rojas weist aber selbst darauf hin, dass die von ihm beschriebene Übersetzung absolut nicht praktikabel ist, da dadurch die Laufzeit des Programms ins Unermessliche wächst.

Im Laufe der Entwicklung von Z3VR haben wir viel mit der virtuellen Maschine gearbeitet und sind dabei auf interessante Programmiertechniken gestoßen. Reihen zur Bestimmung von Pi oder dem Sinus sind beispielsweise schnell durch Schleifen implementiert. Zudem können dank dem Exception-Handling der Z3 Schleifen konstruiert werden, die automatisch nach einer bestimmten Anzahl von Iterationen terminieren. Die Z3 hält nämlich von selbst an und zeigt eine Fehlermeldung auf der Konsole, wenn eine invalide Operation wie „0/0” erkannt wird. Wir können also eine Speicherzelle als Zählervariable nutzen und sie in jedem Schleifendurchlauf dekrementieren und durch sich selbst teilen. Sobald sie Null erreicht, hält die Maschine. So kann etwa die Fakultät implementiert werden. Neben Schleifen können wir uns auch die begrenzte Genauigkeit der Fließkommadarstellung zunutze machen. Indem eine hinreichend große Konstante (hier 2^14) auf eine Variable addiert und davon wieder abgezogen wird, werden sämtliche Nachkommastellen der Variable gelöscht. Dieses Abrunden lässt uns in Kombination mit Multiplikation und Division auch die Modulo-Operation umsetzen. 

Nur wenig Text im Tutorial

Z3VR wurde größtenteils für eine Bachelorarbeit in 2023 entwickelt: innerhalb von nur drei Monaten. Tatsächlich haben die 3D-Modellierung und Implementierung der Simulation der Z3 mit insgesamt etwa drei Wochen die wenigste Zeit im Projekt beansprucht. Der Rest war für das VR-Interface nötig. Benutzeroberflächen intuitiv zu gestalten, ist eine Wissenschaft für sich, und VR verkompliziert dies zusätzlich. Scheinbar simple Aktionen wie beispielsweise das Aufschlagen und Durchblättern eines Buches mussten mehrere Iterationen durchlaufen, bis sie den meisten Nutzer*innen keine Probleme mehr bereiteten. Das zuvor genannte Tutorial musste nach seiner ersten Iteration ebenfalls komplett überholt werden. Ursprünglich bestand es aus einer Reihe von Textblasen, die auf Elemente der Szene zeigten und erklärten, was sie tun und wie sie zu bedienen sind. Wie sich jedoch herausstellte, haben viele Menschen eine gewisse Abneigung dazu, sich solch eine Menge an Text durchzulesen, bevor sie mit der Maschine arbeiten können. Das aktuelle Tutorial verzichtet fast komplett auf Text und lässt Nutzer*innen stattdessen direkt selber Hand anlegen und so die Systeme kennen lernen. Um unnötige Ablenkungen zu vermeiden, erscheinen die verschiedenen Stationen in der Szene auch erst, wenn sie für die Einführung relevant werden.

Kleinere Komplikationen in der Entwicklung waren zudem der Mangel an genauen Maßen und Nahaufnahmen der Z3 für das 3D-Modell und das undokumentierte Verhalten der Maschine in diversen Ausnahmefällen. Letzteres wurde in der Simulation dadurch adressiert, dass invalide Folgen von Operationen einfach nicht erlaubt werden: Die Maschine hält in diesen Fällen an und zeigt einen generischen Fehler auf der Konsole an. Solch ein System würde nur wenige Relais benötigen und wäre somit ein plausibler Teil der echten Maschine. (Falls Sie widerlegen oder bestätigen können, dass die Z3 über so ein System verfügte, sind Sie dazu eingeladen, lukas.moersler@tum.de mit einer Korrektur zu kontaktieren.)

Das Projekt kann auf itch.io als „z3vr“ gefunden und kostenlos für Quest-Systeme oder SteamVR-kompatible Geräte heruntergeladen werden. Auf der Seite ist auch ein Demo-Video zu finden, das alle Grundfunktionen zeigt. Derzeit sind wir im Austausch mit dem xr hub Bavaria und dem Deutschen Museum, um noch besseres Bild- und insbesondere Audiomaterial zu erhalten, mit dem wir das 3D-Modell und die Geräuschkulisse weiter verbessern können. So erhoffen wir uns, noch mehr Interesse für diesen wichtigen Meilenstein der Computergeschichte zu entflammen – und das ganz ohne Sorgen um den Brandschutz.

Über die Autoren

 

Lukas Moersler B.Sc.
ist Master-student für Informatik: Games Engineering an der TU München. Seine Bachelorarbeit beinhaltete die Entwicklung von Z3VR.

Prof. Dr. rer. nat. David A. Plecher
ist Vertretungsprofessor an der TU München und leitet die Fachgruppe Augmented Reality (FAR). Als Informatiker und Historiker (M.A., LMU) fokussiert sich seine Forschung auf die Verbindung dieser beiden Welten durch Serious XR (Games). In der GI war er Mitglied des studentischen Beirates (heute junge GI) und bildet seit diesem Jahr zusammen mit Prof. Dr. Thomas Riechert (HTWK Leipzig) den Chair der Studierendenkonferenz SKILL.

Deep dive

Zwei Buchempfehlungen der Autoren:

Rojas, Raùl (2023), Konrad Zuse's Early Computers: The Quest for the Computer in Germany (History of Computing).

Zuse, Konrad (1969), Der Computer – Mein Lebenswerk.

Oder direkt VR-Brille auf und ran an die Maschine? Hier ist Z3VR kostenlos verfügbar:
tectato.itch.io/z3vr

1 Deutsches Museum (2022), Die letzte Rechnung der Z3, https://www.youtube.com/watch?v=TbW-qNxD1lE 

2 Eichhorn, Christian et al. (2022), VR enabling knowledge gain for the user (VENUS).

3  Checa, David & Bustillo, Andres (2020), A review of immersive virtual reality serious games to enhance learning and training, https://doi.org/10.1007/s11042-019-08348-9

4  Plecher, David et al. (2022), Exploring underwater archaeology findings with a diving simulator in virtual reality, https://doi.org/10.3389/frvir.2022.901335

5 Caravaca, Gwénaël et al. (2020), 3D digital outcrop model reconstruction of the Kimberley outcrop (Galecrater, Mars) and its integration into Virtual Reality for simulated geological analysis, https://doi.org/10.1016/j.pss.2019.104808

6 Yigitbas, Enes et al. (2020), Experiencing and programming the ENIAC in VR, https://doi.org/10.1145/3404983.3410419

7 Google Images

Holzheu, Michael (2020), Deutsches Museum Teil III: Zuse Z3

9https://www.youtube.com/watch?v=5TNUebJ-BmU

10 Rojas, Raùl (1997), How to Make Zuse's Z3 a Universal Computer