first commit

This commit is contained in:
33333-33333 2026-08-22 20:53:47 +09:00
commit 03ddaa09f2

70
README.md Normal file
View file

@ -0,0 +1,70 @@
# Mandelbrot Deep Zoom v23
軽量な操作表示と、画素中心規約・数値field・境界AA・高精度出力を分離したマンデルブロ集合ビューアーです。無条件の「∞」表記は廃止し、現在のbit数、反復上限、未確定数を表示します。
設計判断は[IMPROVEMENT_PROPOSAL.md](IMPROVEMENT_PROPOSAL.md)、実装・検証状況は[IMPLEMENTATION_REPORT.md](IMPLEMENTATION_REPORT.md)、提案ごとの対応と保留条件は[COMPLETION_AUDIT.md](COMPLETION_AUDIT.md)を参照してください。
## 実行
Standalone版は`index.html``script.js``kernels.js`の3ファイルを同じディレクトリに置き、`index.html`を直接開けます。
配信用Hosted版はPowerShellから生成します。
```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
powershell.exe -NoProfile -ExecutionPolicy Bypass -File ./scripts/test-all.ps1 -RequireToolchain
```
toolchainなしでsource contractだけ確認する場合は次を実行します。
```powershell
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](BUILD_REPRODUCIBILITY.md)を参照してください。v18の旧性能監査は履歴資料であり、v23の基準値ではありません。