- HTML 86%
- JavaScript 14%
| docs | ||
| tests | ||
| .gitignore | ||
| index.html | ||
Mandelbrot WebGPU
index.html をWebGPU対応のEdge/Chromeで開く。外部ライブラリやビルドは不要。
- 描画は高速方式に統一。画素間隔に応じてDirect f32または参照軌道を使うFAST perturbationへ自動で切り替える。旧「正確」の共有URLもこの方式で開く。
- パン/ズーム、配色変更、URLによる表示位置の共有、PNG出力に対応。
- 数値未確定画素の補修と未脱出画素の継続計算を終えてから、完成画像を履歴へ保存する。
- 計算中は現在の視点の暫定画像を表示する。反復上限は「自動」または指定回数を選べる。未脱出を集合内の証明とは扱わない。
- 画面と同じ解像度・1 sampleのPNGは、補修済みの完成画像をそのまま保存する。
- 色相変化は表示済みの数値結果を使い、計算中も色を更新する。停止ボタンまたは色相位置の手動操作で停止する。
- 描画時間は初期描画から精細化・数値補修・最終GPU処理までの合計。計算中は経過時間、完了時は確定した時間を表示する。
BLAと比較専用の監査処理は削除済み。整理内容と検証範囲を参照。
軽量化の実装結果と測定値を参照。承認前の改善案と実装設計も残している。
色相・時間表示の修正と描画方式統合についてはビューワー修正を参照。
検証
Node.js 22以降で実行する。追加パッケージは不要。
node tests/regression.mjs
構文、現行シェーダーのハッシュ、バックエンド選択、フレーム振り分け、Worker、補修対象と処理量上限を確認する。ハッシュファイルを無条件に再生成してテストを通さないこと。
実GPUのスモークテストは、独立した一時プロファイルのEdge/Chromiumをリモートデバッグポート9333で起動して実行する。
node tests/browser_smoke.mjs 9333 all
all は reset、fast、mid、legacy、axis、black、kernels、cancel、budget、ui に置き換えて単独実行できる。描画6ケース(旧方式指定の移行を含む)、キューの被覆、独立高精度サンプル、計算中のキャンセル、指定反復予算、PNGの復号、色相変化、時間表示を確認する。
起動時は拡張機能と同期を無効にし、専用プロファイルのタブを1つだけにする。テストはそのタブを再利用し、最後に about:blank へ戻す。終了後は検証用ブラウザーを閉じる。
測定が必要な場合だけ node tests/browser_smoke.mjs 9333 bench を実行する。初期表示・Seahorse FASTを各1回ウォームアップ+3回測定する。通常の回帰確認ではベンチマークを繰り返さない。
検証APIと詳細計測は index.html?test でのみ有効。通常起動では監査計算を自動実行しない。Strict設定も比較テストを起動しない。