マンデルブロ集合
  • HTML 86%
  • JavaScript 14%
Find a file
2026-09-06 23:28:03 +09:00
docs eee 2026-09-06 23:28:03 +09:00
tests eee 2026-09-06 23:28:03 +09:00
.gitignore eee 2026-09-06 23:28:03 +09:00
index.html eee 2026-09-06 23:28:03 +09:00

Mandelbrot WebGPU

index.html をWebGPU対応のEdgeChromeで開く。外部ライブラリやビルドは不要。

  • 描画は高速方式に統一。画素間隔に応じてDirect f32または参照軌道を使うFAST perturbationへ自動で切り替える。旧「正確」の共有URLもこの方式で開く。
  • パンズーム、配色変更、URLによる表示位置の共有、PNG出力に対応。
  • 数値未確定画素の補修と未脱出画素の継続計算を終えてから、完成画像を履歴へ保存する。
  • 計算中は現在の視点の暫定画像を表示する。反復上限は「自動」または指定回数を選べる。未脱出を集合内の証明とは扱わない。
  • 画面と同じ解像度・1 sampleのPNGは、補修済みの完成画像をそのまま保存する。
  • 色相変化は表示済みの数値結果を使い、計算中も色を更新する。停止ボタンまたは色相位置の手動操作で停止する。
  • 描画時間は初期描画から精細化・数値補修・最終GPU処理までの合計。計算中は経過時間、完了時は確定した時間を表示する。

BLAと比較専用の監査処理は削除済み。整理内容と検証範囲を参照。

軽量化の実装結果と測定値を参照。承認前の改善案実装設計も残している。

色相・時間表示の修正と描画方式統合についてはビューワー修正を参照。

検証

Node.js 22以降で実行する。追加パッケージは不要。

node tests/regression.mjs

構文、現行シェーダーのハッシュ、バックエンド選択、フレーム振り分け、Worker、補修対象と処理量上限を確認する。ハッシュファイルを無条件に再生成してテストを通さないこと。

実GPUのスモークテストは、独立した一時プロファイルのEdgeChromiumをリモートデバッグポート9333で起動して実行する。

node tests/browser_smoke.mjs 9333 all

allresetfastmidlegacyaxisblackkernelscancelbudgetui に置き換えて単独実行できる。描画6ケース旧方式指定の移行を含む、キューの被覆、独立高精度サンプル、計算中のキャンセル、指定反復予算、PNGの復号、色相変化、時間表示を確認する。

起動時は拡張機能と同期を無効にし、専用プロファイルのタブを1つだけにする。テストはそのタブを再利用し、最後に about:blank へ戻す。終了後は検証用ブラウザーを閉じる。

測定が必要な場合だけ node tests/browser_smoke.mjs 9333 bench を実行する。初期表示・Seahorse FASTを各1回ウォームアップ3回測定する。通常の回帰確認ではベンチマークを繰り返さない。

検証APIと詳細計測は index.html?test でのみ有効。通常起動では監査計算を自動実行しない。Strict設定も比較テストを起動しない。