マンデルブロ集合
  • HTML 86%
  • JavaScript 14%
Find a file
2026-08-22 20:55:27 +09:00
audit 2026-08-22 20:55:27 +09:00
build/wasm-v23 2026-08-22 20:55:27 +09:00
dist 2026-08-22 20:55:27 +09:00
scripts 2026-08-22 20:55:27 +09:00
src 2026-08-22 20:55:27 +09:00
tests 2026-08-22 20:55:27 +09:00
AUDIT.md 2026-08-22 20:55:27 +09:00
BUILD_REPRODUCIBILITY.md 2026-08-22 20:55:27 +09:00
COMPLETION_AUDIT.md 2026-08-22 20:55:27 +09:00
hosted-headers.txt 2026-08-22 20:55:27 +09:00
hosted-loader.js 2026-08-22 20:55:27 +09:00
IMPLEMENTATION_REPORT.md 2026-08-22 20:55:27 +09:00
IMPROVEMENT_PROPOSAL.md 2026-08-22 20:55:27 +09:00
index.html 2026-08-22 20:55:27 +09:00
kernels.js 2026-08-22 20:55:27 +09:00
README.md first commit 2026-08-22 20:53:47 +09:00
script.js 2026-08-22 20:55:27 +09:00
toolchain.lock.json 2026-08-22 20:55:27 +09:00

Mandelbrot Deep Zoom v23

軽量な操作表示と、画素中心規約・数値field・境界AA・高精度出力を分離したマンデルブロ集合ビューアーです。無条件の「∞」表記は廃止し、現在のbit数、反復上限、未確定数を表示します。

設計判断はIMPROVEMENT_PROPOSAL.md、実装・検証状況はIMPLEMENTATION_REPORT.md、提案ごとの対応と保留条件はCOMPLETION_AUDIT.mdを参照してください。

実行

Standalone版はindex.htmlscript.jskernels.jsの3ファイルを同じディレクトリに置き、index.htmlを直接開けます。

配信用Hosted版はPowerShellから生成します。

powershell.exe -NoProfile -ExecutionPolicy Bypass -File ./scripts/build-hosted.ps1

生成先はdist/hosted/です。dist/wasm/も同じoriginで配信し、_headers相当のCOOP/COEPとWASM MIME設定を反映してください。Standalone成果物は./scripts/build-standalone.ps1で生成できます。

v23の主要仕様

  • 静止時の常時RAFとDOM更新を廃止し、invalidate時だけ描画します。
  • wheel/pinch/pan中は既存frameの再投影だけを行い、110ms停止後にPreviewを1回開始します。
  • Reprojected → Preview → Covered → Refined → Validated/検証未完了を内部状態として分離します。
  • Coveredは選択したeffective DPRのCanvas全域を実sampleで計算します。固定2100px HQ上限はありません。
  • 全backendのpixel mappingは(x+0.5, y+0.5)です。
  • escape値と分類をpalette非依存fieldに保持し、色変更では集合を再計算しません。
  • ESCAPED / INTERIOR_LIKELY / INTERIOR_PROVEN / UNRESOLVEDを区別し、未確定を内部点と同じ黒として扱いません。
  • 境界detailは2×2 subsample fieldを保持し、linear-lightでresolveします。
  • High-quality exportは指定寸法、2×2 AA、進捗、取消、JSON sidecarに対応します。現在の表示を即時保存するQuick snapshotも別操作です。
  • deep Workerは必要時に1基だけ生成し、deepを離れた時点で大容量instanceとreferenceを退役させます。
  • cacheとScreen Canvasは端末別の論理byte/pixel budgetで管理します。

処理モードの自動到達点:

モード 自動処理
省電力 約1MP以下のPreviewで停止
標準 shallowは2〜4MP。deepは48px幅の初回測定後、約1.4秒予算へ全域gridを調整。境界AAと未確定追加反復は既定で行わない
精細 4〜8MPの全域描画、境界AA、境界候補の上限付き追加反復
精度優先 精細処理後にPP+64照合を含む検証

互換構成

構成 shallow deep 出力 備考
Hosted + SIMD + Worker WASM SIMD Worker BLA/perturbation Worker 全機能 推奨
Hosted + SIMDなし scalar payload scalar deep/BLA 全機能 SIMD検査後にscalarを取得
Hosted + Workerなし main WASM high-precision BigInt direct 全機能、低速 deep WASMは取得せずdirectへ移行
Standalone file:// 埋込WASM 埋込Worker/WASM 全機能 3ファイル、オフライン可
OffscreenCanvasなし Canvas 2D 同左 全機能 現行標準経路
SharedArrayBufferなし tile/chunk取消 tile/chunk取消 全機能 現行標準経路

検査

固定toolchainを含む全gateは次で実行します。

powershell.exe -NoProfile -ExecutionPolicy Bypass -File ./scripts/test-all.ps1 -RequireToolchain

toolchainなしでsource contractだけ確認する場合は次を実行します。

powershell.exe -NoProfile -ExecutionPolicy Bypass -File ./tests/source-contract.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File ./tests/kernel-source-contract.ps1

WASM checksumは./scripts/extract-wasm.ps1で再生成します。Nodeテストは本体Worker構文、WASM Module clone、数値精度、解析的内部証明、pixel mappingcontractを検査します。固定sceneはtests/scenes.jsonにあります。HTTPでworkspaceを配信すれば、tests/browser-benchmark.htmlからcold/warm描画、Covered/Refined、idle write、logical memoryをscene corpus単位で採取できます。

WASM source buildと昇格gateはBUILD_REPRODUCIBILITY.mdを参照してください。v18の旧性能監査は履歴資料であり、v23の基準値ではありません。