James Gleicks Chaos: Die Software
(github.com/rudyrucker)- James Gleick's CHAOS: The Software ist eine kostenlose Veröffentlichung des Quellcodes, Handbuchs und der ausführbaren Dateien eines Autodesk-DOS-Programms von 1991
- Das Programm wurde von Josh Gordon, Rudy Rucker und John Walker entwickelt; Rudy Rucker schrieb die meisten Algorithmen, der Fractal-Landscapes-Algorithmus stammt von John Walker
- Es entstand in Abstimmung mit James Gleick zu dessen Buch Chaos: Making a New Science; diese Veröffentlichung wird unter der GNU-Lizenz verteilt
- Es lässt sich in DOSBox auf nahezu allen Plattformen ausführen; Release 1.1 enthält ausführbare Dateien, Parameterdateien, Benutzerhandbuch und Quellcode
- Als wichtigste Verbesserungsaufgaben bleiben die Erhöhung der Display-Auflösung bzw. Pixelgröße sowie die Entfernung der Abhängigkeit vom alten, für Grafik genutzten DOS-TSR-Programm metashel.exe
Kostenlose Veröffentlichung eines DOS-Programms von 1991
- James Gleick's CHAOS: The Software ist eine kostenlose Veröffentlichung des Quellcodes, Handbuchs und der ausführbaren Dateien eines Autodesk-DOS-Programms von 1991
- Die Entwickler der Software sind Josh Gordon, Rudy Rucker und John Walker
- Rudy Rucker schrieb die meisten Algorithmen
- Der Fractal Landscapes-Algorithmus wurde von John Walker geschrieben
- Josh Gordon war für die Oberfläche und große Teile der Implementierung des Algorithmus-Codes verantwortlich
- Das Programm entstand in Abstimmung mit James Gleick zu dessen Buch Chaos: Making a New Science
- Diese Veröffentlichung wird unter der GNU-Lizenz verteilt
Download und Ausführung
- Für Release 1.1 gibt es drei Download-Posten
- The CHAOS executables and parameter files: ausführbare Dateien und Parameterdateien
- The CHAOS User manual: Benutzerhandbuch
- The CHAOS source code: Quellcode
- Das Chaos-Programm kann in einer DOS-Shell namens DOSBox auf nahezu allen Plattformen ausgeführt werden
- Details zur Ausführung finden sich auf der Releases page
Code-Änderungen und verbleibende Verbesserungsaufgaben
- Nutzer können den Chaos-Code ändern und neue Versionen hochladen
- Man kann die Algorithmen auch verwenden, um kleinere Programme daraus abzuleiten
- Der Online-Code ist im Chaos GitHub repository verfügbar
- Die zwei größten offenen Upgrade-Kandidaten sind
- Erhöhung der Display-Auflösung oder der Pixelgröße
- Entfernung der Nutzung von metashel.exe, einem alten DOS-TSR-Programm („terminate and stay resident“) der MetaGraphics Software Corporation
- Chaos verwendet metashel-Aufrufe für die Grafikverarbeitung
Die 6 in Chaos enthaltenen Module
- MANDEL: Mandelbrot-Set-Programm
- enthält quadratische und kubische Julia-Mengen
- enthält quadratische und kubische Mandelbrot-Mengen
- enthält die kubische Connectedness Map Rudy set
- MAGNETS: Pendulum-and-Magnets-Programm
- zeigt chaotische physikalische Bewegung
- zeigt fraktale Anziehungsgebiete
- ATTRACT: Strange-Attractors-Programm
- zeigt den Lorenz-Attraktor
- zeigt die logistische Abbildung
- zeigt Yorke-Attraktoren und Henon-Attraktoren
- GAME: Barnsley-Fractals-Programm
- zeigt Fraktale des Iterated Function System, etwa den berühmten Fraktalfarn
- FORGE: Fractal-Forgeries-Programm
- zeigt auf Zufallsfraktalen basierende Wolken, Karten, Gebirge und Planeten
- TOY: Toy-Universes-Programm
- zeigt cellular automata
1 Kommentare
Hacker-News-Kommentare
Ich habe dieses Buch in der Highschool gelesen und ungefähr zur selben Zeit einen Vortrag über die Mandelbrot-Menge gesehen.
Der Vortragende zeigte
z = z**2 + cund erklärte, wie komplexe Zahlen funktionieren. Zu Hause habe ich dann wirklich intensiv darüber nachgedacht, wie man einen kleinen Gleitkomma-Bereich auf den hochauflösenden Bildschirm eines Apple //e abbildet.Am Ende bekam ich ein funktionierendes Programm hin, aber als ich es laufen ließ, war bis zum Schlafengehen kaum etwas passiert, und ich wusste nicht einmal, ob ich den Computer über Nacht eingeschaltet lassen durfte. Am nächsten Tag sah ich, dass das BASIC-Programm nicht einmal bis zum Hauptkörper der Menge gekommen war, sondern nur die äußeren Bänder gezeichnet hatte.
Also hatte ich das Gefühl, einen schnelleren Computer zu brauchen, und rüstete auf eine 80286-DOS-Maschine auf; damit konnte ich, glaube ich, FRACTINT ausführen. FRACTINT war eine clevere Optimierung, die mit Ganzzahlarithmetik und allerlei Tricks das Rendern der Menge beschleunigte, und es hat mir sehr geholfen zu lernen, was Optimierung bedeutet.
Dieses Buch sowie Bücher wie K&R C und Hackers haben meinen Horizont als Highschool-Schüler erweitert und mich in Richtung High-Performance Computing, komplexe Systeme und Simulation geführt. Der Schmetterlingseffekt spielte auch eine große Rolle dabei, klassische Kausalität zu verstehen.
Damals habe ich C gelernt, indem ich mir die Quelldateien ansah; davor hatte ich Turbo Pascal mit Assembler gemischt. Später ging es mit C++ weiter, das für einen großen Teil meiner Freelance-Laufbahn zur Basissprache wurde. Schön, daran wieder erinnert zu werden.
Wegen Gleicks Chaos wurde ich in der Highschool ins Büro des Schulleiters zitiert.
Ich war völlig von Fraktalen besessen, hatte zu Hause aber nur einen IBM PC XT, sodass das Rendern der Mandelbrot-Menge quälend langsam war, und auch die CGA-Palette war viel zu eingeschränkt.
Um diese Zeit fanden ein Komplize und ich heraus, dass die 386er in der Bibliothek kaum für die Katalogsuche genutzt wurden, und machten diese Rechner zu unserer Fraktal-Rendering-Farm. Wir beendeten das Katalogprogramm, legten eine Diskette mit dem neuesten Renderer ein, starteten ein tiefes Zoom-Rendering und schalteten den Monitor aus, um keinen Verdacht zu erregen; in der nächsten Stunde kamen wir dann nachsehen.
Die Ergebnisse waren berauschend, und ich bekam unmittelbar zu spüren, wie groß der Unterschied durch Zugang zu Rechenressourcen ist. Am Ende wurden wir natürlich von der Bibliothekarin erwischt und wegen „Hacking“ gemeldet – die vertraute Wendung.
Dieses Buch hat mein Leben verändert.
In der Highschool war ich wirklich schlecht in Mathematik, aber weil ich ein lauwarmes Interesse an einer künstlerischen Laufbahn hatte, dachte ich, vielleicht könnte ich so etwas wie Architektur machen, und wählte höhere Mathematik. Im britischen Notensystem bekam ich ein U für „Unmarked“, was bedeutete, dass meine Arbeit so schlecht war, dass sie nicht einmal der Bewertung wert war.
Etwa zur gleichen Zeit streifte ich umher und sah ein Buchcover mit den seltsamsten und schönsten Grafiken, die ich je gesehen hatte, und dachte: „Was zum Teufel ist das?“ Also nahm ich es in die Hand. In der farbigen Bildstrecke in der Mitte gab es noch klarere und umwerfendere Bilder, und ich lieh mir das Buch aus und begann zu lesen, um herauszufinden, wie diese Bilder erzeugt wurden.
Am Ende wurde ich ziemlich gut in Mathematik, und Fraktale, insbesondere statistische Fraktale, wurden auch in meiner Doktorarbeit ein wichtiges Thema. Manchmal frage ich mich, wie mein Leben verlaufen wäre, hätte ich diese seltsamen Bilder nicht gesehen; vermutlich wäre ich bestenfalls ein sehr durchschnittlicher Architekt geworden.
Ich dachte, in der Wissenschaft gehe es um Endzustände: Man mischt zwei Chemikalien und erhält ein Produkt, man löst eine Matheaufgabe und bekommt eine Antwort.
Aber die Vorstellung, dass das Interessante nicht das Ergebnis, sondern der Prozess ist, war eine völlig neue Art, die Welt zu sehen. Zum ersten Mal begegnete mir die Idee, dass Iteration, also den Ausgabewert wieder als Eingabe in die Funktion zu geben, nicht einfach nur Feedback-Rauschen ist.
Wie oft erlebt man im Leben schon einen echten Paradigmenwechsel? Es war das richtige Buch im richtigen Alter, und die meisten Leute, die solche Kommentare schreiben, sind heute wohl um die 50.
Allerdings bin ich am Ende nie gut in Mathematik geworden.
Dass dieses Material auf Rudy Ruckers GitHub liegt, ist doppelt großartig.
Nachdem ich sein Buch „Infinity and the Mind“ gelesen hatte, ging ich wieder zur Schule zurück und studierte Mathematik; dieses Buch hat mein Leben in eine gute Richtung verändert.
https://en.wikipedia.org/wiki/Rudy_Rucker
https://en.wikipedia.org/wiki/Postsingular
1987 las ich als Highschool-Schüler Chaos und fiel sofort ins Kaninchenloch; auf dem Apple IIe der Schule programmierte ich den Lorenz-Attraktor.
Es überwältigte mich, dass überall, wo man hineinzoomte, weitere Details auftauchten. Ich fragte mich, ob der Mensch die Mathematik erfunden hatte und dadurch solche Formen erzeugte, oder ob sie irgendwo im Universum unabhängig existierten und nur darauf warteten, entdeckt zu werden. Diese Erfahrung führte in meiner Teenagerzeit zu sehr vielen philosophischen Gesprächen.
Das Applesoft-BASIC-Programm war sehr langsam, und ich bedauere, dass mich das nicht dazu angespornt hat, 6502-Assembler zu lernen.
Ich bekam Messwerte und sah fast so etwas wie einen Attraktor, aber BASIC war viel zu langsam. Um die nötigen Messungen zu bekommen, lernte ich Assembler.
Am Ende verlor ich wohl das Interesse an Physik und Mathematik und vertiefte mich nur weiter in Computer. 40 Jahre später mache ich das immer noch.
Ich mochte dieses Buch in der Highschool sehr und las es an der Uni noch einmal. Es hat mich stark beeinflusst, und der Autor zeichnet die verschiedenen Forscher sehr gut und hat ein großes Talent dafür, Theorien und Ideen zu erklären.
Wenn man dieses Gebiet mag, ist auch Complexity Explorer eine hervorragende Ressource.
https://www.complexityexplorer.org/
Ein Buch, das ich als Kind gelesen habe und das großen Einfluss auf mich hatte.
Eines meiner Lieblingsbücher und einer meiner Lieblingsautoren.
Ich erklärte, dass dieses Buch mir den Geist geöffnet habe und direkt mit dem Konzept der Fotojournalismus-„Ordnung aus dem Chaos schaffen“ verbunden sei, und gab mein Exemplar meinem Fotojournalismus-Tutor. Seitdem ist dieses Konzept auf mein gesamtes Berufsleben anwendbar geworden.
Jetzt muss ich auch seine anderen Bücher wieder ausgraben, mir ein neues Exemplar dieses Buchs besorgen und dieses Repository klonen.
Als Kind habe ich viel mit Fraktalgeneratoren herumgespielt, und es hat wirklich Spaß gemacht. Wenn euch ähnliche moderne Software interessiert, lohnt sich ein Blick auf:
XaoS, Echtzeit-Fraktalgenerator/-Viewer: https://github.com/xaos-project/XaoS
Apophysis 7X: https://github.com/xyrus02/apophysis-7x
Chaotica: https://www.chaoticafractals.com