🎃

Codex でProcessingを触ってみた

に公開

Processingのライブラリをちゃんと出せる。(とりあえずメジャーどころぐらいは確認)

先日 Processing を触っていたときに、こんなエラーに出会いました。

No library found for processing.video
Libraries must be installed in a folder named 'libraries' inside the sketchbook folder (see the Preferences window).
The package “processing.video” does not exist. You might be missing a library.

要は 標準で video ライブラリが入っていない というだけの話です。
Contribution Manager から「Video」(Processing Foundation 提供)を追加すれば解決します。

ただ、自分は昔 Processing 4 を触ったとき、このあたりでハマった経験があります。
ライブラリを追加したのに認識されず、結局 Sketchbook の場所と libraries フォルダの構造 が原因でした。

デフォルトだと ~/Documents/Processing/libraries/video のようになっている必要があるので、もし動かない場合は Preferences で Sketchbook の場所を確認するのがおすすめです。

要するに「Processing はメジャーどころのライブラリも最初から含まれていないことがある」→「Contribution Manager でちゃんと入れる」→「配置場所も確認」、この流れを押さえておけば安心です。

タスク分解をしたら、できた。

「Webカメラ映像を“点群(point cloud)っぽく”表示する」を、段階ごとにタスク分解→各段で小さく検証する流れに変えたら、一気に前進しました。結果、CPUベースの光フローでも“動き=擬似深度”として扱えるところまで構築。HUDで密度やスケールを触りながら、その場で見た目と負荷のバランスを詰められるようにしました。

分解したタスク(抜粋)

  1. ベースライン確立
    Processing 4 + VideoライブラリでWebカメラを安定取得。解像度/FPS、上下反転、カラー→グレイスケールの正規化を確認。
  2. 擬似深度=光フローの強度で代用
    Lucas–Kanade(CPU)でフレーム間の動きをベクトル化。動きの大きさ画素の明るさに重み付けして疑似Z値を作成。
  3. 点群レンダラ
    画像を等間引きサンプリングして3D頂点化(x, y は画素座標、z は擬似深度)。軌跡の“尾”を軽く残すバッファで残像感を付与。
  4. 操作系 & デバッグHUD
    デバッグパネル、カメラプレビューの重ね表示、オービットカメラ、サンプリング間引き(stride)、深度スケールなどをランタイムでトグル
  5. 妥当性検証の習慣化
    各段で「見える/見えない」「FPS」「主観的な“奥行き感”」をチェックリスト化。動かない場合の切り分け手順も固定化。

実装ハイライト

  • CPU光フローのフォールバック:GPUライブラリ未導入環境でも即動く安全策。
  • 擬似深度の合成式Z = motionMagnitude * motionDepthScale + brightness * brightnessDepthWeight をHUDで即調整。
  • 適応サンプリングstride を上げ下げして、密度とFPSを現場最適化。
  • HUDメトリクス:平均FPSや描画点数を一定フレームごとにログ出力し、勘所に頼らない調整を支援。

できたもの(今日の成果)

  • ライブ3D点群が、動き量をZにした“擬似深度”でうごめく。
  • HUDで即席ダイアル調整→現場で“見た目”と“FPS”をそのまま追い込める。
  • CPUフォールバックがあるので、どのマシンでも最低限の再現は可能。

結論

・CodexのProcessingでの理解度はそこそこ高い印象
・タスク分解をAIにやらせるという実装はかなり効果的。単発でできないことが明確にできるようになる。

Discussion