017 日陰の追いかけっこ：検証記録（2026-10-02 UTC）

区分
・実装／純粋モデル：確認済み
・Pyxel実描画：確認済み、PNGと自動入力の無音動画
・ネイティブGUI入力：クラウドLinux上の実キー操作を確認（範囲は下記）
・人の試遊／楽しさ：未確認
・Windows実機：未検証。文字コード・パスの模擬検査のみ
・音：作品自体が無音。クラウド音声出力の実聴は行っていない

技術
python -m unittest discover -p "test_*.py" -v：32件合格。
凸包、24秒周期、身体全体の包含、影の和集合、重なりと継ぎ目、穴、1e-5pxの隙間、
庇優先、露出上下限、無入力、斜め正規化、建物の高速円掃引・角・滑り、零移動、
不正dt、停止中の時刻と入力、再開エッジ、R、Zの時刻／拾得／露出の復帰、
タイトル押し続けの隔離、Nの持越し隔離、日本語全描画分岐、成功ログhashを検査。
120Hz→240HzのBリプレイでも成功。これを現実の光学・太陽の再現とはしない。
独立レビューが見つけた細い隙間の誤判定は、有限外向きプローブを廃して修正。
半平面の微分で影の外側が覆われるかを判定し、同じ隙間を回帰試験に追加。

面の成立（自動入力）
A：76描画フレーム、到達2.5083秒、最大露出66.4167。
B：217描画フレーム、3.5秒待ち込み7.2333秒、最大露出48.2083。
C：188描画フレーム、庇の遠回り6.2417秒、最大露出88.6667。
各入力は assets/success_1.json〜success_3.json、再生結果はsolver_results.json。
成功が最後の物理小刻みで確定するため、描画フレーム数/30と到達時刻は最大1/30秒異なる。

出発時機の幅
同じ著者経路を、0〜24秒の出発待ちで0.25秒ずつ走査。
AとCの庇経由は全97標本で成功。
Bは2.00〜6.25秒、8.50〜14.50秒の標本群で成功。
これは離散標本の実測であり、その間の全実数時刻を証明したとは言わない。
Bの標準出発は成功帯中央寄りの3.5秒。１フレームだけの窓ではない。
見える判断材料：影の輪郭、太陽時計、身体の安全輪、発見ゲージ、庇の二重輪。
Hの２秒先予告は任意。初期は非表示。

方策比較
・24秒無入力：全庭で未達・露出0。安全に考えられることは意図した仕様。
・常時右／常時右上：全庭で未達・発見。目的が勝手に達成されない。
・著者経路を直ちに走る：A成功、B発見、Cの庇経由成功。
・同じ経路を歩く：A成功、B発見、Cの庇経由成功。
・次の１フレームだけ安全なら進む貪欲方策：全庭で発見。
  この方策は将来の影の移動や迂回を計画しない。影だけで遊ぶ方策全般の不可能証明ではない。
・Cの短い経路は４秒待って成功。庇経由も正当な通常解として残す。
  近道は出発を含めると常に速いわけではなく、最短・最適とは呼ばない。

一変更比較
Bの同じ初期位相315度、建物、経路、速度、露出、目標で、太陽の回転だけ変更。
固定版：出発0/1/2/3/3.5/4/5/6秒の標本は全て同じ経路で発見。
回転版：0/1秒は発見、2/3/3.5/4/5/6秒は成功。
3.5秒待ちで最大露出48.2083。4秒待ちで35.3333。
固定版全体が解けないという主張ではない。同じ経路に待つ意味が生まれた比較。
戻し方：python app.py --baseline。比較画像はexperiment_fixed/rotating.png。
楽しいか、待ちが長いか、ルールが分かるかは人の試遊待ち。

納品・文字コード
Python text I/Oは明示UTF-8。JSON字形とログもUTF-8。
cp932既定の模擬ランナー、コピー先の日本語＋空白パス、/tmpからの起動を確認。
play.bat/setup.batはASCII、%~dp0と実行パスに引用符、エラー時pauseを検査。
setup.batで専用venvを作り、そのPythonでPyxelを起動。親プロジェクトは不要。
Noto由来136字形の全描画分岐を検査。字形の読みやすさの人の評価は未確認。

実映像
actual Pyxel headless rendererで720更新の自動デモを記録。
GIFは時間刻みが1/100秒に量子化されるため、そのまま時間の根拠にしない。
全ソースGIFフレームを一度ずつ読み出し、n/30秒の時刻でMP4へ格納。
-rで盲目的に間引く変換は使わない。元GIF718枚→MP4も718枚、30fps、23.933333秒、音声0トラック。
フレーム数・長さ・無音はmedia/video_validation.json。
キャプションは「自動操作・無音」。人による実操作／面白さの証明とは分ける。

人に聞きたいこと（未実施）
「何がつながるまで待った？」「ここを走っても大丈夫と思った理由は？」
「次は待つ時機を変える？ 庇へ寄る？」「ゲージが増えた理由は見えた？」
待つだけが長いなら、次は太陽周期だけの一変更を試す。罰や敵は足さない。

ネイティブGUI操作（18:25〜18:31 UTC）
クラウドLinuxのPyxelウィンドウを、CUAの実キー長押しで操作。人の試遊ではない。
タイトル／庭選択／SPACE長押し開始／歩行／SPACE+矢印走行／落とし物取得、
P停止と再開、停止中R、Z復帰、H予告、発見後移動停止、ESC終了を観察。
停止中に右・SPACEを入力しても618描画フレームにわたり状態が完全一致。
発見後に右を入れても状態は一致。Zイベントは時刻0・露出0・拾得0へ戻った。
Aの実キー試行は落とし物を取った後、出口の手前で発見。手動成功は未確認。
３面成功とNの持越し隔離は自動モデル／モック試験の根拠として区別する。
操作途中、影が庭の外へ描かれる表示を領域クリップで修正。入力・モデルは不変。
最終SHA一致のコピーを再起動し、庭選択・移動・P・R・描画・終了を再確認。
記録はmedia/native_*.jsonとPNG。終了後017ウィンドウ不在を確認。
