From 03ddaa09f2c8e669442b2e273f004b7152e1a062 Mon Sep 17 00:00:00 2001 From: 33333-33333 Date: Sat, 22 Aug 2026 20:53:47 +0900 Subject: [PATCH] first commit --- README.md | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..a872da1 --- /dev/null +++ b/README.md @@ -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、境界候補の上限付き追加反復 | +| 精度優先 | 精細処理後に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 +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 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](BUILD_REPRODUCIBILITY.md)を参照してください。v18の旧性能監査は履歴資料であり、v23の基準値ではありません。