# 初めて水彩を扱うAIへ 新しい入口:[効果から選ぶスキル集](/sketch/skills/guide.md)。このページは旧モデルの記録を含みます。 **最初に[現在の画材と実行入口](capabilities.md)を読む。** [機械可読の能力表](capabilities.json)から従来v3・Film v21互換・Film v22紙試験を選び、そのバックエンドの入力例へ進む。以下は過去の技法と実験を含む履歴で、異なる版の対応機能・数値を混ぜない。v22の[紙の2×2比較](/sketch/experiments/paper-audit-v22/)は任意試験で、全景採用と新人AIの習得成功は未確認。 新しい任意実験は [thin-film-v21.json](thin-film-v21.json)。WebGL2の水膜、有限筆の細かい接触、非同期ジョブと4倍速の工程再生を扱います。`astraFilm`専用で、従来`astraSketch`とは別です。山水画の候補は比較で不採用になったため、既存作品の既定方式にはしていません。 現在の補助操作は [乾燥時間の制御](drying-v20.json)。供給一定(constant-v1)はユーザーの指示で廃止しました。紙の乾燥停止は維持し、有限筆と組み合わせて使います。旧v19の供給一定の試験は保存画像のみの履歴です。 **この文書の機能表・測定は旧wetモデルの基準です。新しい紙・筆・吸い取りは [material-v4.md](material-v4.md) を読み、専用の試験結果を使ってください。旧結果のハッシュは測定当時の履歴です。** 2026-09-07 / データパック v1。目的は、技法名を暗記することではなく「状態 → 筆操作 → 時間 → 観察 → 次の一手」を再現すること。芸術的な習熟や実画材との同等性は未検証。 ## 最初の順番 1. `techniques.json` の goal に合うカードを選ぶ。`support=unsupported` は実行しない。 2. `sources.json` の出典と限界、`review.json` の不合格理由を読む。sourceの裏付けとruntimeの再現性を混同しない。 3. `exercises.json` から対照と候補を選び、小さい試験紙で描く。白紙・紙seed・筆の軌跡を固定し、一条件だけ変える。 4. 筆直後と待機後の両方を見て、successCriteria / failureSignsを文章で判定する。画像が違うだけでは成功ではない。 5. 良かった操作だけを作品の一部分へ移す。山全景を一度に変更しない。 6. `run-template.json` を複製し、元のJSON、変更条件、画像、材料時間、採否と次の変更を保存する。未測定はnull/not_reviewedとする。 ## 保存中の絵を変えずに試す 同じローカルサイトのブラウザ内で実行する。外部からPOSTできるAPIではない。 ```js const k = await import('/sketch/knowledge/runtime.js'); const cards = await k.catalog(); const {entry, scene, frames} = await k.sampleExercise('boundary-local'); // frames: [{label, position, image: PNG data URL, material:{time,mass,grid}}] // 画像を観察ツールで実際に見る。data URL文字列の比較だけで画質を評価しない。 const wide = await k.sampleExercise('boundary-wide'); ``` `loadExercise(id)` は検証済みシーンを返す。`sampleExercise` は専用canvasだけを描く。IndexedDB・現在の作品・revision・再生画面を変更しない。 自分で候補を変更する場合は、取得したsceneをコピーし、`/sketch/model.js` の `validateScene()` に通す。`/sketch/render.js` の `createScenePainter(scene,{width:480,height:360})` と専用canvasで描く。手順の巻き戻しは新しいpainterで最初から再生する。`paintProgress(n,canvas)` のnは **マーク番号+進捗**。時間ではない。 ## 旧wetモデルの操作表(履歴) この表と直後の未対応項目は旧wetモデルだけの記録。現行v3の有限筆・再湿潤や、Filmの傾斜・水膜にはそのまま適用しない。[バックエンド別の現行能力表](capabilities.md#能力の違い)で確認する。 | 操作 | 意味 / 注意 | |---|---| | brush.points | 筆の中心の通り道。境界線や塗りつぶしの輪郭ではない | | width | 紙幅に対する最大接地幅。.0001〜.15。先濡らしでも幅を含めて計画 | | pressure | pointsと同じ個数の.05〜1。接地幅だけを変える。放出量・毛束は未再現 | | opacity | 顔料の投入量の係数。実物の希釈倍率ではない。0なら水だけ | | water | 筆から加える水の係数。紙の湿度指定・乾燥命令ではない | | duration | 1筆の材料秒。.1〜20。放出総量は時間に単純比例しない | | wait.seconds | .1〜180の材料秒。シーン全体600以下。実時間の乾燥秒数に置き換えない | | dry | 接触量の弱いばらつき。白く抜ける乾筆はまだ不合格 | water/duration/waitを使う文書はbrush/waitのみ。softnessとtextureはwetレンダラーでは使用されないので入れない。白色やopacity=0を消しゴムとして使わない。固定済み顔料を持ち上げる命令、傾斜、筆の傾き、毛束、紙種指定は未対応。未知のフィールドを発明しない。 `layer` は手順と字幕の区切り。レイヤーを追加するだけでは紙は乾かない。`intent` は「山裾を薄く」「紙を乾かす」など短い工程メモにする。私的な思考の記録ではない。 ## 良かった試験を作品へ採用する `/sketch/` の `window.emakiSketch` に対して `observe → checkpoint → preview → inspect image → accept` を使う。採用すると保存中の文書が変更される。試験片を丸ごと既存作品へ上書きしない。候補を表示している時もPNG/JSON書き出しは確定中の作品が対象。 ```js const a = window.emakiSketch; const before = a.observe(); const candidate = a.checkpoint(); // このコピーの必要な筆跡だけを編集 const proposal = a.preview(candidate, {expectedRevision:before.revision}); // proposal.image を観察してから: // await a.accept(proposal.id,{expectedRevision:proposal.baseRevision}); ``` ## データの読み方 - `sources.json`: 画家本人・メーカー・論文の短い要約、URL、閲覧箇所、確認日、限界。 - `techniques.json`: 目的、前提条件、手順、成功/失敗、修正方法、API対応状況。 - `exercises/*.json`: 実行可能なオリジナル筆運び。出典作例を複製したものではない。 - `results.json`: 実際のレンダリング結果、入力/エンジンのSHA256、42枚の途中画像へのローカルパス。 - `review.json`: 目視での採否。数値診断と芸術的な成功は別。 - `run-template.json`: 新しい試験の記録用。推論や予想で測定欄を埋めない。 `results.json` の画像パスはプロジェクト内のartifacts/で、静的サイトには同梱していない。ブラウザだけのエージェントはsampleExerciseで再生成できる。実装を変えたら過去結果を新しいエンジンの保証にせず再測定する。 ## 新人AIへの到達テスト(まだ実施していない) 課題: 「同じ青で、形が読める山頂と淡い裾を持つ小さい山を描く」。このガイドとJSON群だけを渡す。既存の模写スクリプトや会話履歴は渡さない。採点は①禁止ツール不使用②対照試験③途中画像の観察④失敗の自己診断⑤修正後の輪郭と濃淡⑥同一入力の再生一致。モデル名・プロンプト・追加の助言回数を記録する。1回成功しただけで汎用的な習得を宣言しない。 ## 重ね塗りの判断例(v6実験、2026-09-07) [試験一覧](../experiments/) に、稜線・面の薄塗り・水面反射・先行する水の4試験を収録。各フォルダのmanifest.jsonが仮説と入力、small/full-results.jsonが実測、review.jsonが目視の採否です。改善しなかった候補も残しています。全景ではなく試し塗りで良くなっただけの手法を、そのまま成功技法として採用しないでください。詳しい検証範囲はプロジェクトの docs/23-layering-experiments.md にあります。 ## 紙を塗り切らない技法 [塗り残しと輪郭の消失](reserved-paper.json) は作家と画材メーカーの一次資料に基づくレシピです。下塗りの段階で筆を紙端より手前で止め、紙の白を確保します。後から白い画像を被せる方法ではありません。[v7の比較実験](../experiments/reserved-paper-v7/)では余白を作れましたが、境界の自然さは未達です。紙の白へ消える技法を達成済みとして扱わないでください。詳しい適用計画は docs/24-reserved-paper-and-lost-edges.md。 ## 葉の塊と背景の隙間 [Ciaoyin Luoの技法を使うレシピ](foliage-clusters.json)を追加。明るい塊、湿った影、筆を置かない間隙を組み合わせます。樹林の下塗りがすでに塗り潰されている場合は、下塗りから別候補を描き直します。出典確認済みですが、当該レシピの描画結果は未検証。詳細は docs/26-foliage-clusters-and-negative-gaps.md。 ## 技法を組み合わせた制作例 v8 [青山一舟](../finale/)は、余白のある下塗り・青い山と反射・樹林のまとまりを組み合わせた模写です。途中画像を見て櫛状の筆跡と強い樹冠の点を取り下げました。判断と失敗版の所在は docs/27-finale-v8-and-4x-film.md。JSON、1432×2000の完成画、標準リプレイ比4倍速の字幕・BGM付き動画を保存しています。完成作の主観評価と、画材の物理検証・他のAIへの転移は別です。 ## 曲線だけでは自然にならない:v9 [直線・曲線・途中観察の比較](../experiments/human-gesture-v9/)では、曲線と筆圧だけでは同型の反復が残りました。実際の4筆を見て続きの筆運びを変更した記録もあります。自然な山としては未達なので、成功済みの技法ではなく失敗条件と判断の教材です。詳細は docs/29-observed-gesture-experiment.md。 ## 実測の筆運びを使う研究候補 [Adobe関連の研究記録](adobe-brush-research.json)はHelpingHand、RealBrush、Wetbrush、Dripping Thin Filmsと、Adobe以外のSpline-FRIDAを整理した資料です。筆運び・接触・水の移動を分けて検討します。詳細は docs/30-adobe-brush-research.md。 ## 点ごとの姿勢と時刻:v10実験 [比較と4倍速再生](../experiments/brush-pose-v10/)で、現行・新方式の姿勢一定・姿勢変化・緩急追加を比較できます。material付きbrushの `gesture.version="pose-v1"` に対応しました。入力例は同ページのJSON、採否は [review.json](../experiments/brush-pose-v10/review.json)、実測は [results.json](../experiments/brush-pose-v10/results.json)。今回の入力は手続き生成で、画家の実測ではありません。毛束の弾性・滞留による色の供給・完成作品への効果は未検証。仕様と失敗例は docs/31-brush-pose-experiment.md。 ## 筆先のしなりと回復:v11実験 [しなりの3条件比較](../experiments/tuft-recovery-v11/)で、変形の履歴なし・中程度・強いしなりを比較できます。gesture付きbrushに `dynamics:{model:"tuft-v1",compliance:0.58,recovery:0.10}` を指定する独自近似です。総投入量を校正した条件はmanifest.json、時系列と実測はresults.json、採否はreview.json。接触の遅れは確認しましたが、絵画品質の改善は未達で作品適用は見送りました。個々の筆毛や滞留時の供給は未対応。docs/32-tuft-recovery-experiment.mdを読んでから試してください。 ## 山の面をつなぐ塗り方:v12実験 [山ひとつの3案比較](../experiments/mountain-method-v12/)に、細い縦筆、連続した面、同じ面にしなりを加えた案を保存しました。初稿の段々の縁を実際に観察し、縁から内側へ運ぶ第2稿へ変更。外形は改善しましたが内部の継ぎ目と平らな裾が残り、完成作品への適用は見送りです。条件・校正はmanifest.json、途中画像はresults.json、失敗と判断はreview.json。docs/33-mountain-method-experiment.mdも参照してください。 ## 水分と紙に残る顔料 v13 [機械可読な手順](wet-relief-v13.json) と [4条件の試験](../experiments/wet-relief-v13/) を追加。先濡らしでこの山の内部の継ぎ目が弱まった。任意指定の paper-brush-v2 は、濡れた顔料が紙の谷へ偏る経験的な輸送近似。r1の粒状性0.65・移動4倍は不採用、r2は0.18・従来の移動速度。汎用の推奨値ではない。結果・失敗・採否は review.json、再現一致・収支とhashは results.json。旧作品への自動適用はしない。 ## 筆の残量と受け渡し v14 [実行カード](brush-reservoir-v14.json) / [試験と4倍速再生](../experiments/brush-reservoir-v14/)。supplyを指定すると同じ筆IDで水・顔料を持ち越し、再接触で追加供給し、湿った紙から吸った青を次の筆へ運べる。reloadは洗って含ませ直す、continueは残量の継続。紙+筆+廃棄の収支と画像の再現性は検証済み。山への適用はぼけた輪郭が残り、完成作品への置換は不採用。実物への校正やWetbrush全体の再現ではない。 ## 水分差で筆と紙の受け渡しを決める v15 [実行カード](coupled-contact-v15.json) / [10条件と4倍速再生](../experiments/coupled-contact-v15/)。任意指定の reservoir-v2 は同じ水分率なら正味の水移動0、乾いた紙には水を渡し、水の多い紙からは吸う。同時交換で紙+筆+廃棄の収支を保つ。水の多い紙への青が薄く、実物への一致と作品適用は保留。50段階の筆跡と表面水分布、論文の適用範囲、未測定の校正項目を保存した。conductanceは経験値で、旧release/pickupと数値が同じでも同等の流量ではない。詳細 docs/36-coupled-contact.md。 ## v2の筆で一枚描いた試行 v16 [山と湖の模写・4倍速](../experiments/coupled-landscape-v16/) / [採否記録](../experiments/coupled-landscape-v16/review.json)。色の全288筆がreservoir-v2。5版を試し、横の樹林3案は隙間・継ぎ目・帯が残って不採用。初稿の樹林へ戻し、接触時間を延ばした舟と反射を採用した。初稿の縦筋も未解決で、従来作品を上回るとは判定していない。完全JSONと115の段階画像を保存。docs/37-coupled-landscape.md参照。 ## 水で色をほどく v17 [18条件・絵の比較](../experiments/rewetting-v17/) / [AI実行カード](rewetting-v17.json)。paper-brush-v3は乾いた色の一部を水で徐々に再移動させる。色の近くだけ湿らせると薄い尾を引けたが、濃い縁と白い抜けが残る。山影への処置は品質向上を確認できず不採用。成功例だけでなく広い先濡らしの失敗と少量処置も保存。docs/38-rewetting-and-softening.mdを参照。 ## 新画材で描いた朝の湖 v18 [完成画・4倍速再生](../experiments/morning-water-v18/) / [作画判断](../experiments/morning-water-v18/review.json)。新しい青への水が下層の乾いた青にも作用し、初稿では輪郭が生じた。4か所の薄い引き伸ばしを湖の下塗り前へ移し、上から描き重ねて採用。下層の状態と描画順序も手順に含める。docs/39-morning-water-painting.md参照。