ジェームズ・グリックの CHAOS: The Software
(github.com/rudyrucker)- James Gleick's CHAOS: The Software は、1991年の Autodesk DOS プログラムのソース、マニュアル、実行ファイルを無償公開したリリース
- プログラムは Josh Gordon、Rudy Rucker、John Walker が制作し、Rudy Rucker がアルゴリズムの大部分を記述、Fractal Landscapes アルゴリズムは John Walker が記述
- James Gleick の著書 Chaos: Making a New Science について James Gleick と相談しながら制作され、今回の公開は GNU ライセンス で配布
- DOSBox 上でほぼすべてのプラットフォームで実行でき、Release 1.1 には実行ファイル、パラメータファイル、ユーザーマニュアル、ソースコードが含まれる
- 主な改善課題として、ディスプレイ解像度やピクセルサイズの拡大、グラフィック処理に使われる古い DOS TSR プログラム metashel.exe への依存の除去が残っている
1991年 DOS プログラムの無償公開
- James Gleick's CHAOS: The Software は、1991年の Autodesk DOS プログラムのソース、マニュアル、実行ファイルを無償公開したリリース
- ソフトウェアの制作者は Josh Gordon、Rudy Rucker、John Walker
- Rudy Rucker がアルゴリズムの大部分を記述
- Fractal Landscapes アルゴリズムは John Walker が記述
- Josh Gordon はインターフェースとアルゴリズムコード実装の多くを担当
- このプログラムは、James Gleick の著書 Chaos: Making a New Science について James Gleick と相談しながら作られた
- 今回の公開は GNU ライセンス で配布
ダウンロードと実行
- Release 1.1 のダウンロード項目は3つ
- The CHAOS executables and parameter files: 実行ファイルとパラメータファイル
- The CHAOS User manual: ユーザーマニュアル
- The CHAOS source code: ソースコード
- Chaos プログラムは DOSBox という DOS シェル内で、ほぼすべてのプラットフォームで実行可能
- 実行に関する詳細は Releases page にある
コード変更と残る改善課題
- ユーザーは Chaos コード を修正して新バージョンをアップロードできる
- アルゴリズムを使って、より小さなプログラムを派生させることもできる
- オンラインのコードは Chaos GitHub repository で確認できる
- 最大の未解決アップグレード候補は2つ
- ディスプレイの 解像度 またはピクセルサイズの拡大
- MetaGraphics Software Corporation の古い DOS TSR、つまり “terminate and stay resident” プログラム metashel.exe の使用除去
- Chaos はグラフィック処理のために metashel 呼び出し を使用する
Chaos に含まれる6つのモジュール
- MANDEL: Mandelbrot Set プログラム
- quadratic および cubic Julia set を含む
- quadratic および cubic Mandelbrot set を含む
- cubic connectedness map である Rudy set を含む
- MAGNETS: Pendulum and Magnets プログラム
- カオス的な物理運動を示す
- フラクタル attraction basin を示す
- ATTRACT: Strange Attractors プログラム
- Lorenz Attractor を示す
- Logistic Map を示す
- Yorke Attractors と Henon Attractors を示す
- GAME: Barnsley Fractals プログラム
- 有名な fractal fern のような Iterated Function System フラクタルを示す
- FORGE: Fractal Forgeries プログラム
- ランダムフラクタルベースの雲、地図、山脈、惑星を示す
- TOY: Toy Universes プログラム
- cellular automata を示す
1件のコメント
Hacker News のコメント
高校生の頃にこの本を読み、同じ頃にマンデルブロ集合の発表を見た
発表者が
z = z**2 + cを示しながら複素数がどのように振る舞うかを説明していて、家に帰ってから Apple //e の高解像度画面に小さな浮動小数点の範囲をどうマッピングするか、といったことを本当に必死に考えた最終的に動くプログラムは作れたが、実行してみると寝る前までほとんど進まず、コンピュータを一晩中つけっぱなしにしてよいのかも分からなかった。翌日見ると、BASIC プログラムは集合の本体にすら到達できず、周辺の帯だけを描いていた
そこで、もっと速いコンピュータが必要だと感じて 80286 DOS マシンにアップグレードし、それで FRACTINT を動かせたように思う。FRACTINT は整数演算とさまざまな小技を使って集合のレンダリングを高速化する巧妙な最適化で、最適化とは何かを学ぶうえで大いに役立った
この本や K&R C、Hackers のような本が高校時代の思考を広げてくれ、高性能コンピューティング、複雑系、シミュレーションの方向へ導いてくれた。バタフライ効果は、古典的な因果性を理解するうえでも大きな役割を果たした
当時はソースファイルを見ながら C を学んでいて、それまでは Turbo Pascal とアセンブリを混ぜて使っていた。その後 C++ へ進み、フリーランスとしてのキャリアのかなりの部分で基盤となる言語になった。思い出せてうれしい
Gleick の Chaos のせいで、高校時代に校長室へ呼び出された
フラクタルにすっかりはまったが、家には IBM PC XT しかなく、マンデルブロ集合のレンダリングは苦痛なほど遅く、CGA パレットもあまりに限られていた
その頃、共犯者と一緒に、図書館の 386 たちがほとんどカタログ検索に使われていないことに気づき、そのコンピュータ群をフラクタルのレンダリングファームにした。カタログプログラムを終了し、最新のレンダラが入ったフロッピーを差し込んで深いズームのレンダリングを走らせ、怪しまれないようモニターを消したまま次の授業時間に確認しに行っていた
結果は最高に刺激的で、計算資源へのアクセス性がどれほど大きな差を生むかを実感した。結局、司書に見つかって「ハッキング」として通報されるという、おなじみの結末に至った
この本は私の人生を変えた
高校の頃、数学は本当に苦手だったが、芸術方面の進路にぼんやり興味があり、建築のようなことができるかもしれないと思って上級数学を選んだ。英国の成績制度で「Unmarked」に相当する U を取ったが、答案が採点する価値もないほどひどかったという意味だった
ほぼ同じ頃、ぶらぶらしていて、これまで見た中で最も奇妙で美しいグラフィックの載った本の表紙を見かけ、「いったいこれは何だ?」と思って手に取った。中央のカラー口絵にはさらに鮮明で衝撃的な画像があり、その絵がどう描かれたのか知りたくて本を借りて読み始めた
結果として数学がかなり得意になり、フラクタル、とりわけ統計的フラクタルは博士研究でも重要なテーマになった。あの奇妙な画像を見ていなかったら人生はどうなっていただろうと時々考えるが、せいぜいごく平凡な建築家になっていた可能性が高い
科学とは最終状態に関するものだと思っていた。2つの化学物質を混ぜれば生成物ができ、数学の問題を解けば答えが出る、というふうに見ていた
ところが、面白いのは結果ではなく過程なのだという考えは、世界を見るまったく新しい方法だった。出力値を再び関数の入力に入れる反復が、単なるフィードバックノイズではないことに初めて触れた
一生のうちに本当のパラダイムシフトを何度経験できるだろうと思う。ちょうどよい年齢でちょうどよい本に出会ったということで、こういうコメントを残している人の大半はいま50歳前後なのだろう
ただし、私は結局数学が得意にはならなかった
この資料が Rudy Rucker の GitHub にあるという点が二重にすばらしい
彼の本『Infinity and the Mind』を読んで学校に戻り、数学を専攻することになった。その本は私の人生をよい方向に変えてくれた
https://en.wikipedia.org/wiki/Rudy_Rucker
https://en.wikipedia.org/wiki/Postsingular
1987年、高校生のときに Chaos を読んですぐに沼にはまり、学校の Apple IIe でローレンツアトラクタをコーディングした
どこを拡大してもさらに多くの細部が現れることに圧倒された。人間が数学を発明してそうした形を作ったのか、それとも宇宙のどこかに独立して存在していて、発見されるのを待っていたのかが気になった。その経験のおかげで、10代の頃に本当に多くの哲学的な会話が続いた
Applesoft BASIC のプログラムは非常に遅く、それが 6502 アセンブリを学ぶきっかけにならなかったのが残念だ
測定値は取れていて、ほとんどアトラクタのようなものも見えたが、BASIC が遅すぎた。必要な測定を得るためにアセンブリを学ぶことになった
結局、物理と数学への興味は失い、コンピュータのほうだけを掘り続けたように思う。40年後の今もずっとそうしている
高校時代にこの本が本当に好きで、大学時代にも読み返した。私に大きな影響を与えたし、著者はさまざまな研究者をうまく描きながら、理論とアイデアを説明する能力に優れた作家だ
この分野が好きなら Complexity Explorer も素晴らしい資料だ
https://www.complexityexplorer.org/
子どもの頃に読んで大きな影響を受けた本だった
最も好きな本であり、著者の一人でもある
この本が心を開いてくれ、フォトジャーナリズムの「混沌から秩序を作る」という概念に直接つながると説明したうえで、自分の本をフォトジャーナリズムのチューターに渡した。その後、この概念は職業生活全般に応用できるものになった
これから彼のほかの本もまた探し、この本も新しく1冊手に入れ、このリポジトリもクローンしなければ
子どもの頃、フラクタル生成器をたくさんいじっていて、本当に楽しかった。似たような最近のソフトウェアに興味があるなら、次を見る価値がある
XaoS、リアルタイムのフラクタル生成器/ビューア: https://github.com/xaos-project/XaoS
Apophysis 7X: https://github.com/xyrus02/apophysis-7x
Chaotica: https://www.chaoticafractals.com