このMandelbrot (WebFX demo)について
WebFX をデモンストレーションするための単純なマンデルブロー アプリ
対象者
このアプリは、WebFX プロジェクトに従う開発者向けに公開されており、プロジェクトのデモの一部です。
新しい聴衆のために
WebFX は、単一の Java コード ベースから 7 つのプラットフォーム (Web、Android、iOS、macOS、Linux、Windows、および Raspberry Pi などの埋め込み) をターゲットにできる無料のオープンソース クロスプラットフォーム ソリューションです。
基盤となるテクノロジー: OpenJFX、Gluon & GWT。
たとえば、https://mandelbrot.webfx.dev でこの同じアプリの Web バージョンにアクセスできます。
どのプラットフォームでも、アプリケーションのソース コードはまったく同じです (このデモのソース コードにアクセスするには、以下のリンク セクションを参照してください)。
アプリケーションは Java で作成され、JavaFX API を使用してユーザー インターフェイスを構築します。
Gluon ツールチェーン (GraalVM 上に構築) を使用して、Web を除くすべてのプラットフォーム用のネイティブ アプリにアプリケーションの Java コードをコンパイルします (したがって、この Android バージョンも含まれます)。
GWT は、Web バージョンのコンパイルに使用されます。 Java コードを最適化された JavaScript コードにトランスパイルします。
その結果、すべてのプラットフォームのすべての実行可能ファイルが最適化されたパフォーマンスを提供します。
この特定のデモについて
このデモはレイ トレーサーのデモに似ていますが、さらに Web プラットフォームで WebAssembly を利用しています。
レイ トレーサーの場合と同様に、マンデルブロのデモでは、CPU 使用率が高くても UI をブロックしないアプリの例が示されています。これは、どのプラットフォームでも (Web 上であっても) あります。
アプリケーションが計算を行っている間、UI は引き続き反応します。バックグラウンドで計算を続行しながら、これまでに計算されたアニメーションを再生することもできます。
これは、WebFX Worker API と WebAssembly API を使用して実現されます。これらは、Web プラットフォームの実際の Web Worker に変換され、他のプラットフォームの標準 Java スレッドに変換されます。
WebAssembly がサポートされている場合 (Web プラットフォームのみ)、計算は WebAssembly を使用して行われます。
リンク
デモのソース コード: https://github.com/webfx-demos/webfx-demo-mandelbrot
WebFX ウェブサイト: https://webfx.dev
WebFX GitHub: https://github.com/webfx-project/webfx