連続フラクタル映像の生成をルールベースにする

この記事はCodex製です。

##依頼内容と課題

既存のMandelbrot映像10作品を起点に、ワンライナーで毎回新しい映像と音を生成する仕組みを作る。 当面は自分専用Webで操作し、毎日10本以上を生成する。 将来の一般公開を見据え、生成時のLLM判断をルールベースへ移す。

単に色をランダム化すると、同じ構造と曲を繰り返しやすい。 また、生成完了と投稿完了、数値検査と主観的な品質は別々に記録する必要がある。

##アプローチ

12地域から座標を探索し、90桁の計算で前周期点を求める。 固定座標に向かう連続ズーム、終盤まで増加する速度と加速度は維持する。 途中9地点の画像を描画し、黒画面率、明暗差、既存画像との構造相関で候補を選ぶ。 個々の段階も比較することで、タイミングの違いだけで類似判定を通過するケースを減らす。

音は加算合成とモード合成を利用する。 低音、旋律、和音、残響、打音速度、倍音比の6軸中3軸以上が過去の曲と異なる設計だけを採用する。 Shepard音とパルスの進行はズームの深度に連動する。

YouTube APIはチャンク転送のセッションを保存し、再開時にサーバーの受信位置を取得する。 予約前には既存キューを全取得し、指定日時との衝突を拒否する。 更新対象をstatusに限定してタイトルとタグを維持し、保存後の日時を再取得する。

##アウトプット

scripts/fractal-factory/にCLI、Metal描画、音の合成、品質検査、ローカルWeb、YouTube連携、launchd設定を追加した。 ワンライナーの既定は10作品、56〜64秒、1080×1920、60fps。 短いプレビューは6秒180×320で、本番投稿には使えない。

自分専用Webは127.0.0.1に限定する。 ブラウザーへOAuthトークンを渡さず、生成操作には同一画面のトークンを要求する。 日次生成はLLMを介さずlaunchdから実行し、未完了ジョブと同日の再実行は保存済み状態から再開する。 生成数と公開間隔は独立した設定で、非公開転送と自動予約は既定では無効にしている。

10本ずつ2組の短い検証動画が完成し、全本で機械検査に合格した。 2組目はWebから開始し、候補不足で止まった後、保存した探索状態と過去に解けた座標周辺を種として再開した。 10本すべてで数値精度検査に合格し、音の設計は既存曲から最低3軸の違いを確認した。 300シードでの加速曲線、二重実行の排他、予約衝突、メタデータ維持、転送再開、HTTP部分読み込み、容量不足時の停止など13件の回帰テストが通った。 指定YouTubeチャンネルへの認証接続も確認した。 既存認証には予約変更の権限がないため、自動公開を有効にする前に対象チャンネルへの追加認証が必要。 新しい転送処理は模擬APIで再開を検証しており、この実装からの実アップロードは未実施。

本番の1本は64秒、1080×1920、60fps、3840フレームで完成し、全13項目の機械検査に合格した。 最終音声は−16.01 LUFS、−3.66 dBTP。 GPU計算と90桁の直接計算を12地点で比較し、分類不一致0、escape値の最大誤差0.058未満だった。 8時点の抽出画像を確認した。 Webの大容量動画対策として540pの再生用ファイルと部分読み込みを追加し、完成MP4は1080pのまま保持する。 修正後のブラウザー再生では、64秒の終端到達とエラーなしを確認した。 これは人による通し試聴の代わりではない。

毎日10本の本番バッチには約9.3GiBの空き容量を要求する。 現在の空き容量はこの条件を下回るため、日次運用を継続するには容量確保が必要。 完成映像や既存作品を勝手に削除せず、検査済みの自分の中間動画だけを回収する。

構造相関は人が感じる新鮮さの近似であり、全作品が似ていないことや視聴維持率の改善を保証しない。 人による通し試聴と、一般公開向けの認証・利用量制限・分散キューは未実施。

##参照した一次情報