- HTML 86%
- JavaScript 14%
| audit | ||
| build/wasm-v23 | ||
| dist | ||
| scripts | ||
| src | ||
| tests | ||
| AUDIT.md | ||
| BUILD_REPRODUCIBILITY.md | ||
| COMPLETION_AUDIT.md | ||
| hosted-headers.txt | ||
| hosted-loader.js | ||
| IMPLEMENTATION_REPORT.md | ||
| IMPROVEMENT_PROPOSAL.md | ||
| index.html | ||
| kernels.js | ||
| README.md | ||
| script.js | ||
| toolchain.lock.json | ||
Mandelbrot Deep Zoom v23
軽量な操作表示と、画素中心規約・数値field・境界AA・高精度出力を分離したマンデルブロ集合ビューアーです。無条件の「∞」表記は廃止し、現在のbit数、反復上限、未確定数を表示します。
設計判断はIMPROVEMENT_PROPOSAL.md、実装・検証状況はIMPLEMENTATION_REPORT.md、提案ごとの対応と保留条件はCOMPLETION_AUDIT.mdを参照してください。
実行
Standalone版はindex.html、script.js、kernels.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、境界候補の上限付き追加反復 |
| 精度優先 | 精細処理後にP/P+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 mapping/contractを検査します。固定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の基準値ではありません。