# 現在の画材と実行入口 2026-09-08。最初に使うバックエンドを選ぶ。[機械可読の能力表](capabilities.json)が同じ区分を持つ。これは実装と採用状態の一覧で、実画材との校正や新人AIの習得成功を示すものではない。 | 選択 | 使う場面 | 実行入口 | 採用状態 | |---|---|---|---| | 従来の `paper-brush-v3` | 現在の作品を再生し、実績のある操作で別案を描く | `/sketch/` の `astraSketch`、または `createScenePainter` | 現在の採用画v20で使用 | | Film v21互換 | v21の実験入力・結果を調べる | `/sketch/experiments/thin-film-v21/` の `astraFilm`、または `createFilmJobs` | 任意実験。山水画の候補は不採用 | | Film v22紙試験 | 紙高さと紙目への親和性を切り分ける | [紙の2×2比較](/sketch/experiments/paper-audit-v22/)、実行は `createFilmJobs` | 任意実験。全景採用・新人AIの技能移転は未確認 | **v22は別のscene形式ではなく、Filmへの明示オプションで選ぶ試験。** Sceneは`astra-sketch-1`、材料は`paper-brush-v3`のまま。Filmの保存形式識別子`thin-film-v21`だけを見て、数値方式を判断しない。入力の`options`も読む。 ## 能力の違い | 能力 | 従来v3 | Film v21互換 | Film v22紙試験 | |---|---|---|---| | 水筆・色筆・待機、先濡らし | 使える | 使える | 使える | | 有限筆のreload / continue、湿った色の吸水・転写 | 任意指定で使える | 任意指定で使える | 任意指定で使える | | 筆の時刻・圧力・姿勢、単一毛束のしなり | 任意の独自近似 | 同じ筆準備を使用 | 同じ筆準備を使用 | | 紙の谷へ色が偏る輸送 | 経験的なaffinity輸送 | なし。定着速度の紙目依存はある | `paperAffinity`で任意指定。共通の顔料属性に限定 | | 内部水の横拡散 | あり | なし | なし | | 重力・水膜の流動 | なし | 無次元の水膜近似 | 同水膜近似、パス順序・反応刻みを明示変更 | | 乾いた色の再湿潤 | 経験式で部分的に再移動 | 同系統の経験式 | 同系統の経験式 | | 乾燥停止 | `layer.environment.drying="hold"` | 同じ指定 | 同じ指定 | | 長時間の非同期実行 | 画材計算はCPUの従来painter | 専用ブラウザWorker+WebGL2、CPU参照も選択可 | 同左 | | 途中保存とやり直し | scene JSONの分岐・再描画。`astraSketch.checkpoint`は文書コピー | 命令境界の材料状態checkpointから再開 | 同左 | 乾燥は指定省略で`normal`。`hold`はそのレイヤーの時間帯に**紙全体**の吸収・蒸発・定着を止める。水・色の移動と筆の受け渡しは続く。形状マスクや特定の筆跡だけの保護ではない。 筆毛一本ずつの3D流体、顔料種別の粒径・染着・粒状化属性の輸送、実測紙の繊維構造とsizing、分光的な顔料混色は、いずれも未実装。現在の色量は光学RGBの代理量。旧v3とFilmでパラメータ名が同じでも、挙動や時間精度が同等とは限らない。 ## 初めて実行する **現在の作品を起点にする場合**は[採用画のJSON](/sketch/experiments/reference-finale-v20/selected.json)と[乾燥・制作判断のカード](drying-v20.json)を読む。`createScenePainter`の実行例は[ガイド](guide.md#保存中の絵を変えずに試す)にある。試験用canvasで画像を確認してから、必要な部分だけを採用する。 **紙を調べる場合**は次の入力をそのまま実行し、最初から画材と筆順を同時変更しない。 ```js const {createFilmJobs} = await import('/sketch/film/jobs.js'); const input = await fetch('/sketch/experiments/paper-audit-v22/low-affinity.json').then(r => r.json()); const jobs = createFilmJobs({onChange: state => console.log(state.status)}); const {id} = jobs.start(input, {frameEvery: 0.2}); // jobs.observe() のframesから実際の画像URLを取り、表示して観察する。 ``` v22の共通指定は`passOrdering="balanced-v22"`、`reactionStep=.02`、`mixing="wet-mass"`、`pigmentGranulation=.7`。**全ての色筆の`granulation`も`.7`が必要**。異なる値を混ぜると拒否する。これは一種類の共通顔料属性の試験であり、複数顔料の輸送を解いた意味ではない。 | 対照入力 | `reliefHeight` | `paperAffinity` | |---|---:|---:| | [low-plain](/sketch/experiments/paper-audit-v22/low-plain.json) | .0025 | 0 | | [low-affinity](/sketch/experiments/paper-audit-v22/low-affinity.json) | .0025 | 4 | | [high-plain](/sketch/experiments/paper-audit-v22/high-plain.json) | .025 | 0 | | [high-affinity](/sketch/experiments/paper-audit-v22/high-affinity.json) | .025 | 4 | v21互換の既定値は`passOrdering="legacy-v21"`、`reactionStep=null`、`paperAffinity=0`、`pigmentGranulation=null`。旧方式にはパス順序の偏りと微小刻みでの反応精度の問題があるため、過去の入力と保存画像を調べる区分として扱う。v22オプションを黙って省略しない。 ## 失敗せずに観察・保存する - Filmの`start`はIDを直ちに返す。材料時間と計算の実時間は別。4倍速は鑑賞時間だけを変える。 - `pause()`を送っただけでは保存可能にならない。`observe().status`が`paused`になってから`checkpoint()`を呼ぶ。先に`complete`になった場合も保存可能。`error`ならエラーを処理する。 - `astraSketch.checkpoint()`の文書コピーを`jobs.restore()`へ渡さない。両APIのcheckpointは異なる。 - タブを閉じる前にcheckpointやJSONを保存する。ブラウザWorkerは常駐クラウド処理ではなく、保存も自動ではない。 - 許可する作画は開いた筆経路と待機。シェープ、任意マスク、参照画像の貼り付け、完成画像のぼかし・ノイズ合成は使わない。`constant-v1`と`constantRate`は廃止され、拒否される。 - 機能が動くこと、実物らしいこと、絵が良いこと、初見のAIが使えることは別々に判定する。画材は未校正、v22の作品採用と新人AIの到達試験は未確認。 詳しい過去の実験は[従来の技法ガイド](guide.md)、FilmのAPI・制約は[thin-film-v21.json](thin-film-v21.json)を参照する。後者の実測・採否はv21の記録であり、v22での成功を保証しない。公開デプロイは今回の作業範囲に含めない。