風呂瀬 信五

TouchDesignerとHydraが織りなすWeb表現:コードとノードの対話

p5.jsやThree.jsで一行ずつコードを紡ぎ、細部まで制御された世界を構築する創造の喜びに浸る一方で、ふと、もっと直感的で、リアルタイムなフィードバックのループの中で表現を練り上げたい、と感じることはないでしょうか。ノードとワイヤーを繋ぎ、データの流れそのものを視覚的に構築していくビジュアルプログラミングの世界。それは、私たちが慣れ親しんだコードとは異なる思考のOSを要求します。本稿では、TouchDesignerHydra といったツールが、Webというキャンバスと交わることで生まれる新たな インタラクティブアート の可能性を探ります。コードとノード、二つの言語の対話から生まれる、表現の深淵を一緒に覗いてみましょう。

静的なるコード、動的なるノード:二つの創造の哲学

テキストエディタに向かい、for ループの構造を考え、関数のインターフェースを設計する。私たちの多くが実践する クリエイティブコーディング は、いわば建築家が図面を引く行為に似ています。ロジックを記述し、構造を定義し、コンパイルや実行のボタンを押した瞬間に、その設計思想が一つの世界として立ち現れます。これは「記述」の哲学です。コードは静的なテキストとして存在し、実行されることで初めて動的な振る舞いを見せます。そのプロセスには、思考と結果の間に、わずかながらも明確な断絶が存在します。

対して、ビジュアルプログラミング環境における創造は、彫刻家が粘土をこねる行為、あるいは生態系を育む庭師のそれに近いかもしれません。TouchDesigner のネットワークエディタを開けば、そこにはオペレータと呼ばれる機能の断片(ノード)が点在します。円を生成するSOP、周期的な値を生むLFO CHOP、二つの映像を合成するComposite TOP。私たちの仕事は、これらのノードをワイヤーで「接続」し、データの流れ、すなわち「関係性」を設計することです。パラメータのスライダーを動かせば、その結果は即座にビューポートに反映されます。思考と結果がほぼ一体化した、リアルタイムなフィードバックループ。これは「接続」の哲学であり、即興的で身体的な探求を促します。

どちらが優れているという話ではありません。厳密なアルゴリズムを実装するにはコードの記述性が適していますし、偶発的な発見や、複雑な要素が絡み合うシステムの挙動を探るにはノードの動的な性質が力を発揮します。これらは、創造という山の異なる登山道のようなものなのです。

Webへ開かれるビジュアルプログラミングの扉

かつて、TouchDesigner やvvvvのようなビジュアルプログラミング環境は、主にパワフルなデスクトップPC上で動作する、閉じたアプリケーションでした。その主戦場は、ギャラリーでのインスタレーションや、ライブパフォーマンスのVJ(ビジュアルジョッキー)など、特定の物理空間に限られることが多かったのです。しかし、近年のWeb技術の進化は、その堅固な扉を静かに開き始めています。

その最も象徴的な存在が、Olivia Jack氏によって開発された Hydra です。Webブラウザ上で動作するこのライブコーディング環境は、GLSLフラグメントシェーダーの力を、極めてシンプルで直感的なJavaScript APIで解放します。osc(20).out(o0) のような短いコードが、それ自体フィードバックループを内包した複雑な映像を生み出す様は、まさにビジュアルプログラミング的思考のWebにおける一つの到達点です。インストール不要で、URLを共有するだけで誰もが同じビジュアルを体験できる。Webの持つアクセシビリティが、ジェネラティブアートの敷居を大きく下げました。

一方、デスクトップアプリケーションの雄である TouchDesigner もまた、Webとの連携を積極的に深めています。標準で搭載されているWebSocket DATやWeb Server DATといったオペレータは、Webページとの双方向通信を驚くほど容易に実現します。例えば、p5.jsで実装したWeb上のUIから送られてくるデータをWebSocketで受け取り、リアルタイムで3Dビジュアルを生成し、その結果をNDIやWebRTCといった技術でブラウザにストリーミング配信する。このようなハイブリッドな構成が、もはや特別な技術ではなくなりつつあります。

インスタレーションからWebへ:表現領域の拡張

ビジュアルプログラミングが物理空間のインスタレーションで培ってきた知見は、Webという新たな表現領域に何をもたらすのでしょうか。それは、単なる技術の移植に留まらない、インタラクションの本質的な拡張です。

美術館やギャラリーで体験するインタラクティブアートの多くは、鑑賞者の物理的な存在を前提としています。KinectやLeap Motionのようなセンサーが人の動きを捉え、そのデータがリアルタイムに映像や音響に変換される。そこでは、鑑賞者の身体そのものが入力装置となり、作品と一体化する経験が生まれます。この「入力 → 処理 → 出力」というフィードバックループの構造は、そのままWebに応用できます。

スマートフォンのカメラで捉えた顔の表情 (face-api.js など)、加速度センサーが検知するデバイスの傾き (DeviceMotionEvent)、マイクが拾う環境音 (Web Audio API)。これらはすべて、物理空間のセンサーに代わるWeb上の「入力」です。これらのデータをサーバーサイドで待機する TouchDesigner のインスタンスに送り、そこで生成されたパーソナルなビジュアルを各ユーザーのブラウザに送り返す。これにより、地理的な制約を超えて、インスタレーションのような没入感のある体験を個人的なデバイス上で提供できます。さらに、多数のユーザーからの入力を集約し、一つの巨大なビジュアルに反映させる参加型のアートプロジェクトも、Webならではの可能性です。

コードとノードのハイブリッドな未来:創造性の融合

コードとノードは、二者択一の関係ではありません。むしろ、これらを組み合わせ、それぞれの長所を活かすことで、単一のツールでは到達し得なかった表現の高みへと至ることができます。私たちの創造性は、ツールの境界を越えた「対話」の中にこそ、その真価を発揮するのです。

例えば、p5.jsの緻密なアルゴリズムで生成したフラクタル図形や、Three.jsで構築した物理シミュレーションの結果を考えてみましょう。これらをCanvasに描画し、そのCanvas要素をテクスチャとして Hydra に入力する (s0.init({src: myCanvas}))。すると、コードで生成した静的な、あるいは予測可能な動的パターンが、Hydraの持つカオスなフィードバックや万華鏡のようなモジュレーション機能によって、生命感あふれる有機的な映像へと変貌します。ロジックとカオスの融合です。

あるいは、WebフロントエンドはThree.jsで美麗な3Dシーンのレンダリングに専念させ、そのシーンを構成するオブジェクトのパラメータ(位置、回転、色、マテリアルの質感など)を、WebSocket経由で TouchDesigner からコントロールする。TouchDesignerの強力なジェネラティブ機能や、オーディオリアクティブな仕組みを使って、Web上の3D世界をリアルタイムに「演出」するのです。これは、Webの表現力とビジュアルプログラミングの制御能力を両立させる、強力なパイプラインとなります。

学びと実践の誘い:次なる一歩へ

もしあなたがこれまでコードの世界を中心に歩んできたのなら、ノードの世界への一歩は、新たな思考の回路を開く刺激的な旅になるはずです。それは、これまで使っていなかった感覚を目覚めさせるような体験かもしれません。

TouchDesigner は、Derivative社が提供しており、非商用利用であれば無料のライセンスで始めることができます。公式のドキュメントやフォーラムはもちろん、オンラインにはMatthew Ragan氏のチュートリアルのような優れた学習リソースが豊富に存在します。まずは一つのノードを置き、そのパラメータをLFO CHOPで揺らしてみる。その小さな成功体験が、次なる探求への扉を開きます。

Hydra はさらに手軽です。ブラウザを開き、公式サイトにアクセスするだけですぐに始められます。エディタに並ぶ豊富な作例は、最高の教科書です。他のアーティストが書いたコードを少し書き換えて、どのように映像が変化するかを観察することから始めてみてください。ライブコーディングのコミュニティに参加すれば、さらに多くの刺激と学びが得られるでしょう。

新しいツールを学ぶことは、単に技術の引き出しを増やすことではありません。それは、世界を捉え、思考を組み立て、表現するための新しい「言語」を獲得することに他なりません。論理を記述するコードの言葉に加え、関係性を接続するノードの言葉を手にしたとき、あなたの創造の風景は、きっとより一層深く、広がりを見せるはずです。

関連記事