
フラクタル生成ソフトウェアとは、フラクタルの画像を生成するあらゆる種類のグラフィックソフトウェアのことです。無料のものと商用のものを含め、多くのフラクタル生成プログラムが利用可能です。モバイルアプリでは、フラクタルを遊んだりいじったりすることができます。一部のプログラマーは、その目新しさや関連する数学の理解の難しさから、フラクタルソフトウェアを独自に作成しています。フラクタルの生成は、純粋数学にとって非常に大きな問題を引き起こしました。[ 1 ]
フラクタル生成ソフトウェアは、視覚化を通して数学的な美しさを生み出します。現代のコンピュータは、高解像度のフラクタル画像を1枚作成するのに数秒から数分しかかかりません。画像は、シミュレーション(モデリング)と芸術のためのランダムなフラクタルの両方で生成されます。モデリングに使用されるフラクタル生成は、コンピュータグラフィックスにおけるリアリズムの一部です。 [ 2 ]フラクタル生成ソフトウェアは、フラクタル景観および風景生成プログラムを使用して自然の風景を模倣する ために使用できます。フラクタル画像は、そうでなければ無味乾燥なコンピュータ生成環境に不規則性を導入するために使用できます。[ 3 ]

フラクタルは、音楽ビジュアライゼーションソフトウェア、スクリーンセーバー、壁紙ジェネレーターで生成されます。このソフトウェアは、ユーザーに限られた範囲の設定と機能を提供し、場合によっては一連の事前プログラムされた変数に依存します。複雑な画像は単純な数式から生成できるため、フラクタルはデモシーンでよく使用されます。[ 4 ]マンデルブロ集合などのフラクタルの生成は時間がかかり、多くの計算を必要とするため、ベンチマークデバイス でよく使用されます。[ 5 ]


コンピュータの支援なしに計算によってフラクタルを生成する試みは、1883年にドイツの数学者ゲオルク・カントールによってカントール集合を作成するために行われた。[ 6 ]その後、数学者たちは数多くのフラクタルの存在を提唱してきた。中には、1975年にフラクタルという名称が付けられる以前に考案されたものもあり、例えば、 1942年にオランダの数学教師アルバート・E・ボスマンによって考案されたピタゴラスの木などがある。
最初のフラクタル生成ソフトウェアの開発は、ジュリア集合として知られる形状のクラスの一般化された関数を追求するブノワ・マンデルブロの試みから始まった。1979年、マンデルブロは、反復によって複素平面の1つの画像を作成できることを発見した。彼とIBMで働くプログラマーは、最初の基本的なフラクタル出力を生成した。[ 7 ]これは、非線形生成法則または「時間脱出フラクタル」によるフラクタル生成の最初の例となった。 [ 8 ] [ 9 ]ローレン・カーペンターは、 1980年のSIGGRAPHでの発表用にVol Libreという2分間のカラーフィルムを作成した。[ 10 ] 1983年10月のAcorn User誌には、現在ヨーク大学のコンピュータサイエンス教授であるスーザン・ステップニーによるフラクタル形状を生成するBBC BASICのリストが掲載された。[ 11 ] [ 12 ]彼女はこれに続いて、1984 年 3 月の Acorn User で「雪の結晶とその他のフラクタルモンスター」を発表しました。[ 13 ]フラクタルは、1984 年にRescue on Fractalus!が制作されたことにより、早くもコンピュータ ゲームでレンダリングされました。1980 年代初頭から 1995 年頃まで、数百種類の異なるフラクタルタイプが考案されました。[ 14 ]
フラクタル画像の生成は、1990 年代を通じて中央処理装置に数学コプロセッサまたは浮動小数点演算装置を備えたコンピュータの普及に伴い人気が高まりました。当時、高解像度の VGA 標準画像のレンダリングには何時間もかかることがありました。フラクタル生成アルゴリズムは極めて並列化可能です。フラクタル生成ソフトウェアは、マルチスレッド処理を利用するように書き直されました。その後、コンピュータにグラフィックス処理ユニットが採用されたことで、レンダリング速度が大幅に向上し、レンダリング遅延のために以前は不可能だったパラメータのリアルタイム変更が可能になりました。 [ 15 ] 3D フラクタル生成は 2009 年頃に登場しました。フラクタル生成ソフトウェアの初期のリストは、1992 年に出版された John Briggs 著の Fractals: The Patterns of Chaos という本のためにまとめられました。[ 16 ]この分野の主要な著者には、Dietmar Saupe、Heinz-Otto Peitgen、Clifford A. Pickoverなどがいます。

2 次元フラクタル生成には 2 つの主要な方法があります。1 つは、生成再帰によって単純な方程式に反復プロセスを適用することです。[ 6 ]動的システムは一連の値を生成します。フラクタル ソフトウェアでは、複素平面上の点の集合の値が計算され、ピクセルとしてレンダリングされます。このコンピュータベースのフラクタル オブジェクトの生成は無限のプロセスです。理論的には、画像は無限に計算できますが、実際には、あるレベルの詳細に近似されます。[ 17 ]マンデルブロは、フランスの数学者ガストン ジュリアによって記述された二次式を使用しました。[ 14 ]生成できる最大のフラクタル次元はタイプによって異なり、実装された方法によって制限される場合もあります。適用できる着色方法は多数あります。最も初期のものの 1 つは、エスケープ 時間アルゴリズムでした。[ 14 ] 色付け方法とグラデーションの色密度によっては、画像に色の縞模様が現れることがあります。
一部のプログラムは、コッホ曲線などの幾何学的自己相似または決定論的フラクタルを生成します。これらのプログラムは、開始器に続いてパターンで繰り返される生成器を使用します。これらの単純なフラクタルは、1904年にコッホによって最初に提案された手法に由来します。[ 18 ]
もう1つの主な方法は、多数のアフィン変換からなる反復関数システムを使用する方法です。[ 19 ]最初の方法では、フラクタル画像の各ピクセルが関数に従って評価され、その後着色され、同じプロセスが次のピクセルに適用されます。前者の方法は古典的な確率的アプローチを表し、後者は線形フラクタルモデルを実装します。[ 3 ]再帰を使用することで、プログラマーは単純な指示で複雑な画像を作成することができました。[ 20 ]
3 次元フラクタルは、四元数代数を使用するなど、さまざまな方法で生成されます。[ 21 ]フラクタルは、等高線移流を使用してカオス混合を研究する場合、流体力学モデリングシミュレーションから乱流として出現します。Buddhabrot法は 1993 年に導入されました。プログラムは、地形を生成するためにフラクタル高さマップを使用する場合があります。フラクタルは、メンガースポンジ、ハイパーコンプレックス多様体、ブラウン木、ブラウン運動、分解、L システム、リアプノフ フラクタル、ニュートン フラクタル、ピッコバー ストーク、ストレンジ アトラクターなどの方法を使用してコンピュータ上で生成されています。



フラクタル生成ソフトウェアパッケージには、さまざまな機能が搭載されています。そのため、生成される画像も多様になります。ほとんどのソフトウェアには、アルゴリズム選択機能、インタラクティブな画像ズーム機能、 JPEG、TIFF、PNG形式でのファイル保存機能、パラメータファイルの保存機能などが備わっています。これにより、ユーザーは以前に作成した画像に簡単に戻って、後で修正したり、探索したりすることができます。フラクタル画像の数式、パラメータ、変数、および着色アルゴリズムは、同じプログラムのユーザー間で共有できます。ただし、普遍的に採用されている標準的なフラクタルファイル形式は存在しません。
ほとんどの脱出時間フラクタルプログラムや代数ベースのフラクタルの特徴の1つは、最大反復回数の設定です。細かいディテールが失われないように画像を拡大する場合は、反復回数を増やす必要があります。デバイスの処理能力が低い場合は、最大反復回数を制限することが重要です。カラーオプションでは、多くの場合、色をランダム化できます。グラデーションによっては、出力値が大きく変動し、繰り返し縞模様が目立ったり、同じ色の領域が広くなったりするため、色の密度のオプションがよくあります。後処理効果を簡単に追加できるため、他のグラフィックソフトウェアにあるレイヤリング機能やアルファ合成機能が含まれています。プラズマ効果や照明などの2Dおよび3Dレンダリング効果が含まれている場合があります。多くのパッケージでは、ユーザーが独自の数式を入力してフラクタルをより細かく制御したり、カラーレンダリングを選択したり、フィルターやその他の画像操作技術を使用したりすることもできます。一部のフラクタルソフトウェアパッケージでは、一連のフラクタル画像から動画を作成できます。その他には、レンダリング時間を表示したり、何らかの形でカラーサイクリングやカラーパレット作成ツールを提供したりするものもあります。
標準的なグラフィック ソフトウェア ( GIMPなど) には、フラクタル生成に使用できるフィルターやプラグインが含まれています。Blender には、フラクタル (またはランダム) モディファイアが含まれています。多くのスタンドアロンのフラクタル生成プログラムは、他のグラフィック プログラム ( Photoshopなど) と組み合わせて使用して、より複雑な画像を作成できます。POV -Rayは、テキスト ベースのシーン記述から画像を生成するレイ トレーシング プログラムで、フラクタルを生成できます。3ds MaxおよびAutodesk Mayaのスクリプトを使用できます。Turtle Graphics Renderer など、フラクタル生成用の Web ベースのインターフェイスが多数無料で利用できます。[ 22 ] Fractal Lab は 2D および 3D フラクタルの両方を生成でき、 WebGLを使用して Web 上で利用できます。[ 23 ] JWildfire は、Java ベースのオープンソースのフラクタルフレームジェネレータです。[ 24 ] Mandelbrot Fractal は、 JavaScript で書かれたフラクタル エクスプローラです。[ 25 ] Fractal Grower は、Lindenmayer 置換フラクタル (L システム) を生成するために Java で書かれたソフトウェアです。[ 26 ]

バタフライ効果のため、フラクタルの生成を習得するのは難しい場合があります。単一の変数にわずかな変化を加えるだけで、予測不可能な影響が生じる可能性があるからです。一部のソフトウェアは習得に時間がかかり、カオス理論の理解があると有利です。これには、すべてのフラクタルに共通するフラクタル次元、再帰性、自己相似性といった特性が含まれます。

フラクタル生成プログラムは、無料のものと有料のものを含め、数多く存在します。代表的なフラクタル生成プログラムには以下のようなものがあります。
上記のプログラムのほとんどは2次元フラクタルを作成しますが、一部はマンデルバルブやマンデルボックスなどの3次元フラクタルオブジェクトを作成します。Mandelbulberは、3次元フラクタル画像を生成する実験的なクロスプラットフォームのオープンソースプログラムです。[ 27 ] Mandelbulberは3Dアニメーションの 作成に優れています。[ 28 ] Mandelbulb 3Dは、3Dレンダリング環境で見られる多くの効果を特徴とする3D画像を作成するためのフリーソフトウェアです。[ 29 ] Incendiaは、反復関数システム(IFS)を使用してフラクタルを生成する3Dフラクタルプログラムです。[ 30 ] Visions of Chaos、Boxplorer、Fragmentariumも3D画像をレンダリングします。
オープンソースの GnoFract 4D が利用可能です。[ 31 ] ChaosPro はフリーウェアのフラクタル作成プログラムです。[ 32 ] Fraqtive はオープンソースのクロスプラットフォームのフラクタルジェネレーターです。[ 33 ] MandelX は Windows 上でフラクタル画像をレンダリングするための無料プログラムです。[ 34 ] WinCIG、Chaoscope、Tierazon、Fractal Forge、Malsys もフラクタル画像を生成します。