風呂瀬 信五

クリエイティブコーディング次の一歩:p5.jsから拓く表現の多様な道筋

p5.jsでコードを書き、キャンバスに初めて円が描かれたときの静かな感動を、今でも覚えているでしょうか。createCanvas() という呪文が拓いてくれたその四角い世界は、無限の可能性を秘めた宇宙の入り口でした。しかし、スケッチを重ねるうちに、そのキャンバスが少しだけ手狭に感じられる瞬間が訪れるかもしれません。より深い奥行き、より滑らかな動き、より複雑な光の表現。p5.jsが教えてくれた創造の喜びを胸に、その先の広大な領域へ旅立つための羅針盤を、ここに示したいと思います。これはツールの優劣を語るものではなく、あなたの次なる表現へと繋がる、いくつかの異なる学習の道を照らす試みです。

p5.jsが誘う創造の入り口:その先にある無限の可能性

p5.jsは、私たちに創造のための共通言語を与えてくれました。setup() で世界を準備し、draw() で時間を動かす。座標、色彩、インタラクションといった根源的な概念を、驚くほど直感的に扱えるようにしてくれます。このライブラリが持つ教育的な思想と、温かなコミュニティの存在は、多くの人々をクリエイティブコーディングの門へと導いてきました。

重要なのは、ここで学んだ基礎が、決してp5.jsの中だけで完結するものではないということです。forループで反復の美を学び、map() 関数で異なる世界の理(ことわり)を繋ぐ術を知った経験は、これから出会うであろう、あらゆる表現ツールを扱う上での揺るぎない土台となります。p5.jsはゴールではなく、より専門的で、より広大な世界へ漕ぎ出すための、信頼できる最初の船なのです。その船を降り、次にどの岸辺を目指すのか。その選択肢は、一つではありません。

3D空間への誘い:Three.jsとWebXRが織りなす奥行き

p5.jsの WEBGL モードは、私たちにZ軸の存在、つまり「奥行き」を意識させてくれます。box() や sphere() を回転させることで、2Dのキャンバスに立体的な幻想を描き出すことができます。しかし、本格的な3Dシーン、複雑なライティング、物理演算に基づいたマテリアル(質感)を追求しようとすると、より専門的なライブラリが必要になるでしょう。

その筆頭が Three.js です。Web上で3Dグラフィックスを扱う際の、事実上の標準と言える存在です。Three.jsの世界では、p5.jsの setup() に似た初期設定の中で、「シーン(空間)」「カメラ(視点)」「レンダラー(描画装置)」という3つの基本要素を定義します。この構造を理解することは、コンピュータグラフィックスの根本的な仕組みを理解することにも繋がります。p5.jsがスケッチブックだとすれば、Three.jsは仮想空間にジオラマを組み上げるための、精巧な道具箱のようなものです。

近年、メディアアートの展示やオンラインのエキシビションで、ブラウザ上で体験できる没入型の3D作品が増えています。これらはThree.jsの力を借りているケースがほとんどです。さらに、WebXR Device APIの普及により、Three.jsで作られた世界はVRヘッドセットやARデバイスを通して、私たちの物理的な空間と融合し始めています。奥行きのある空間を創造することは、もはや特別な技術ではなく、Webという開かれた場で誰もが探求できる表現領域となっているのです。

パフォーマンスとインタラクションの追求:PixiJSとCanvas/WebGLの深層

もしあなたの興味が3D空間ではなく、2D平面上での圧倒的な描画パフォーマンスや、洗練されたインタラクションにあるのなら、別の道筋が見えてきます。p5.jsは手軽にアニメーションを実装できますが、何千、何万という数のオブジェクトを滑らかに動かそうとすると、フレームレートの低下に直面することがあります。

ここで有力な選択肢となるのが PixiJS です。このライブラリは、WebGLのパワーを最大限に活用し、2Dグラフィックスのレンダリングを劇的に高速化することに特化しています。スプライト、テクスチャ、フィルターといった概念は、ゲーム開発やデータビジュアライゼーションの世界で磨かれてきたものです。PixiJSを学ぶことは、画面上の要素を「描画オブジェクト」として効率的に管理し、GPUの能力を引き出すための思考法を身につけることに他なりません。インタラクティブな絵本、パーティクルが乱舞するビジュアルアート、大規模なデータを可視化する作品など、p5.jsの延長線上にありながら、全く異なる次元の滑らかさと応答性を実現できます。

あるいは、さらに深く潜る道もあります。ライブラリの抽象化を一枚剥がし、ネイティブのCanvas 2D APIやWebGL APIを直接叩くという探求です。これは容易な道のりではありませんが、ブラウザがグラフィックスを描画する仕組みの核心に触れる経験は、パフォーマンスのボトルネックを自らの手で解消し、独自の描画エンジンを構築するという、より根源的な創造へと繋がっていきます。

光と色の錬金術:シェーダーとWebGPUで描く新たな質感

画面上のピクセル一つひとつを、あなたの手で直接染め上げることができたら、と想像したことはありますか。fill() や stroke() といった命令では描ききれない、水面の揺らぎ、オーロラの明滅、ガラスの屈折。こうした複雑で有機的な質感を表現する鍵が、シェーダープログラミングです。

GLSL (OpenGL Shading Language) という言語を用いて記述されるシェーダーは、GPU上で並列実行され、ピクセル単位で色を計算するための小さなプログラムです。これを学ぶことは、まるで光と色の錬金術師になるような体験です。p5.jsからも loadShader() を通してその世界を垣間見ることはできますが、本格的に探求するならば、GLSLに特化した環境やフレームワークが助けになるでしょう。The Book of Shadersのような優れた学習リソースは、その深遠な世界への良き案内人です。

そして今、私たちはWebグラフィックスの新たな地平に立っています。WebGLの後継として設計された WebGPU が、主要なブラウザで安定して利用できるようになりつつあります。WebGPUは、より現代的なGPUアーキテクチャに即したAPIを提供し、開発者がハードウェアの能力をさらに低レベルで、きめ細かく制御することを可能にします。これはパフォーマンスの向上だけでなく、これまでWeb上では困難だった、より高度な計算処理(コンピュートシェーダー)への扉を開きます。シェーダーとWebGPUの世界は、ジェネラティブアートに、まだ誰も見たことのない質感を纏わせる可能性を秘めているのです。

システムの構築と視覚化:TouchDesignerが繋ぐ創造の生態系

クリエイティブコーディングの旅は、必ずしもテキストエディタとブラウザの中だけで完結するわけではありません。リアルタイムの映像生成、プロジェクションマッピング、センサーや音響機器との連携といった、物理空間を巻き込んだインスタレーションを構想するなら、TouchDesigner のようなビジュアルプログラミング環境が強力な味方になります。

TouchDesignerの世界では、コードを一行ずつ記述する代わりに、「オペレーター」と呼ばれる機能を持ったノードを線で繋ぎ合わせることで、データや映像のフローを構築します。この制作スタイルは、システムの全体像を視覚的に把握し、リアルタイムでパラメーターを調整しながら、即興的にアイデアを試すことに非常に長けています。p5.jsが精密な設計図を描くためのペンだとすれば、TouchDesignerは様々な素材を即座に組み合わせ、変化させ続けることができる、魔法の実験室です。

重要なのは、これらのツールが互いに排他的ではないということです。TouchDesignerはOSCやWebSocketといったプロトコルを通じて、他のアプリケーションと柔軟に通信できます。例えば、p5.jsで生成したグラフィックをTouchDesignerに送り、リアルタイムでエフェクトをかけたり、逆にTouchDesignerで処理したセンサーデータをp5.jsのスケッチに反映させたり。異なるツールを組み合わせることで、それぞれの長所を活かした、より複雑で豊かな創造の生態系を築くことができるのです。

あなただけの学習パスを紡ぐ:コミュニティとインスピレーション

ここまで、p5.jsの先にあるいくつかの道を示してきました。Three.js、PixiJS、シェーダー、TouchDesigner。これらは無数に存在する選択肢のほんの一部に過ぎません。大切なのは、これらのツールを網羅的に学ぶことではなく、「自分は今、何を表現したいのか」という内なる声に耳を澄まし、その目的に最も適した道具を主体的に選び取ることです。

3D空間で物語を紡ぎたいのか。滑らかなインタラクションで鑑賞者を魅了したいのか。未知の質感を生成したいのか。あるいは、物理的な空間全体をキャンバスにしたいのか。その問いの答えが、あなただけの学習パスを自然と形作っていくはずです。

そして、その旅は決して孤独なものではありません。世界中には、あなたと同じように探求を続ける無数の作り手たちがいます。Processing Community Day (PCD) のようなイベント、オンラインのフォーラム、地域のミートアップ。そうした場所に身を置くことで、技術的な知識だけでなく、新たな視点やインスピレーションを得ることができるでしょう。美術館やギャラリーに足を運び、完成された作品の前に静かに立つ時間もまた、次なる創造への糧となります。p5.jsが教えてくれた最初の感動を忘れずに、あなただけの次なる一歩を、恐れずに踏み出してみてください。その先には、まだ見ぬ表現の地平が広がっています。

関連記事