ブログ |

PROMPT → WEB
#001
GENERATIVE PARTICLE JOURNEY
CLAUDE CODE × THREE.JS / GLSL

そのWeb演出、Claude Codeで作れます。クリエイティブWeb表現のプロンプト集 #01 Generative Particle Journey

株式会社グルーヴサインの米沢です。

弊社は普段、他社が開発したPHPシステムの保守や引き継ぎを主な業務にしています。地味で堅い仕事です。ただ、日々の業務でAIコーディングツールを使うようになってから、「これは保守以外の場面でも、かなり景色が変わったな」と感じることが増えました。

最近、「リッチなWebアニメーションを簡単に作れる」「コードを書かずに3Dサイトが作れる」といったサービスをよく見かけるようになりました。黒い空間の中で、無数の光の粒がまるで生き物のように流れ、球になり、波になり、渦を巻いていく ── デジタルアートのような、あの手の表現です。以前ならThree.jsやGLSL(GPUで動く描画用の言語)の深い理解が必要で、正直、片手間で作れるものではありませんでした。

しかし2026年現在、Claude CodeをはじめとしたAIコーディングツールを使うと、この辺りの状況もかなり変わってきています。そこで、「実際にClaude Codeへプロンプトを渡すだけで、どこまで作れるのか?」を、弊社自身で試してみることにしました。

その過程と、実際に使えるプロンプトそのものを公開していくのが、この「PROMPT → WEB」というシリーズです。第1回は Generative Particle Journey ── 同じ粒子の群れが、星雲 → 球体 → 波 → 渦(銀河)→ トンネルと、約20秒かけて姿を変えていく、ジェネレーティブアート寄りの表現です。

RESULT

まず、御託より現物です。下のボタンを押してみてください。

クリックすると、この画面の上で Generative Particle Journey が再生されます(何度でも再生可能)。ESC または CLOSE で終了します。

いま読んでいるこの記事の上に、WebGLのキャンバスが重なって再生されます。動画を貼っているわけではなく、このページ自身がデモです。ブラウザがその場で数万個の点を動かし、次々と別の立体へ変形させています。何度でも再生できるので、気になる場面は繰り返し見てください(ESC または CLOSE で途中終了できます)。

そして、この演出を作るためにClaude Codeへ渡したプロンプトは、この記事の後半でそのまま公開しています。

WHAT WE MADE

今回作ったものを、技術的に分解すると次のようになります。専門用語には一言ずつ補足を付けます。

要するに、「形ごとに別々のアニメを作った」のではなく、同じ粒子群の“行き先”を時間で切り替えているのがポイントです。粒子そのものが、オブジェクトであり、表面であり、空間であり、トランジションを兼ねています。

HOW IT WORKS

仕組みを、Three.js講座になりすぎない範囲で簡単に。

数万個の粒子を<div>で作って動かしたら、ブラウザはすぐに悲鳴を上げます。そこでWebGLを使い、点をまとめてGPUへ渡します。

今回の肝は「モーフ」です。各粒子に、それぞれの形状での目標位置をあらかじめ持たせておき、GPU上で「重み付きの足し算」をするだけで、なめらかに姿が変わります。概念としては、これだけです。

// 頂点シェーダの考え方(抜粋・イメージ)
// 5つの形状の位置を、シーンの重み(合計=1)で混ぜる
vec3 pos =
    pCloud  * wCloud   +   // 星雲
    pSphere * wSphere  +   // 球体(表面はノイズで凹凸)
    pWave   * wWave    +   // 波(複数のsinで有機的に)
    pVortex * wVortex  +   // 渦(中心が密な螺旋)
    pTunnel * wTunnel;     // トンネル(手前へ流れる)

重みはCPU側が時間から計算し、形の切り替わりで一方を0→1、もう一方を1→0へ(smoothstepで滑らかに)動かします。これだけで、粒子が球から波へ、波から渦へと「飛んで」いくように見えます。重い座標計算はGPU、進行の管理はCPU、という役割分担です。

THE PROMPT

ここが本題です。上のデモを作るためにClaude Codeへ渡せる、汎用プロンプト全文を掲載します。右上の COPY ボタンでそのままコピーできます。BRAND_NAME や SCENES(見せたい形の並び)、色を自分好みに置き換えれば、そのまま使えます。

あなたはWebGLとThree.js、GLSLに精通したクリエイティブエンジニアです。
「Generative Particle Journey」=黒い3D空間で、数万の発光粒子が複数の形へ
連続的に変形していく、デジタルアート寄りの高品質なWebGLデモを実装してください。

# 最重要の考え方
- 粒子は「背景の飾り」ではない。粒子そのものが、物体・表面・空間・トランジションを兼ねる。
- 中央にロゴをFadeInするだけの演出にはしない。粒子群そのものを連続変形させることが主役。

# 置き換える変数
- BRAND_NAME     = "GROOVESIGN"
- SCENES         = [星雲Cloud, 球体Sphere, 波Wave, 渦Vortex, トンネルTunnel] を約20秒で巡る
- PALETTE        = cyan / electric blue / indigo / violet(青〜紫の狭い範囲。Rainbow禁止)
- TAGLINE        = "システムを、長く使い続けるために。"

# モーフの設計(核心)
- 粒子は一組だけ。各粒子に「各形状での目標位置」を属性として持たせる:
    aCloud / aSphere / aWave / aVortex / aTunnel
- GLSL 頂点シェーダで、形状の重み(合計=1)により目標位置をブレンドして最終位置を決める:
    pos = pCloud*wCloud + pSphere*wSphere + ... (線形補間で「飛んでいく」モーフ)
- 重みは CPU 側でタイムラインから smoothstep で滑らかに 0↔1 させる(段階的に切替えない)
- 形状の質感:
  - Cloud : 均一にせず、密なブロブと空虚な空間を作り、星雲/霧のような密度差を出す
  - Sphere: フィボナッチ球 + ノイズで表面に凹凸。単なる球ではなく惑星のように
  - Wave  : 複数の sin を重ねた式 + ノイズで、自然にうねる流体面に
  - Vortex: 中心ほど密な螺旋(銀河)。回転しながら
  - Tunnel: 円筒シェルを手前へ流し、消失点へ吸い込まれるワープ感

# 技術要件
- Three.js / THREE.Points / BufferGeometry / ShaderMaterial / GLSL
- 位置・サイズ・色はシェーダで計算(CPUで毎フレーム個別計算しない)
- 各点は「中心が明るく周囲が柔らかい」加算合成のソフトスプライト
- Glow/Bloom は控えめに。ネオンで白飛びさせない(高級感を優先)
- 色は距離・位置・形状でグラデーションするが、PALETTE の範囲は崩さない

# カメラ / タイミング
- カメラはゆっくり。slow dolly / subtle orbit / gentle rotation 程度。激しく動かさない
- 動きは linear ではなく easeInOut / smoothstep で常に滑らかに

# レスポンシブ / パフォーマンス
- PC 40,000〜50,000 / モバイル 10,000〜15,000 程度に粒子数を可変
- devicePixelRatio は Math.min(window.devicePixelRatio, 2) で上限を設ける
- リサイズ・画面回転に追従する

# 堅牢性
- position: fixed のオーバーレイとして被せ、通常ページのレイアウトに影響させない
- 何度でも再生でき、ESC / CLOSE で途中終了できる
- WebGL非対応時はエラーを出さず自動でスキップ(またはブランド名を短く表示)
- prefers-reduced-motion では粒子を再生せず、ブランド名を短く表示して終了
- JavaScriptが失敗しても本体ページは必ず表示される Progressive Enhancement
- 終了時に RAF停止・イベント解除・geometry/material/renderer を dispose し、
  WebGLコンテキストを解放(何度再生してもリソースが増殖しないこと)

# 避けたい表現
- Matrix風 / Hacker画面 / Cyberpunk / Rainbow neon / 大量のHUD / Terminal /
  loading percentage / Star Wars風 / confetti / fireworks / 派手なLens Flare /
  安っぽいGlow / Glassmorphismカードの乱用 / 粒子が雪のように降るだけ

# 目指す質感
- 「派手」ではなく「美しい」。「未来的」ではあるが「SFゲーム」ではない。
- Digital Art × Generative Design × Luxury × Technology × Minimalism。
- 完全コピーではなく、同じ技術的・視覚的水準を持つ独自作品にすること。

まず最小構成のオーバーレイと粒子・各形状の属性を用意し、位置ブレンドのシーンマネージャ、
カメラのブレンド、モバイル最適化・reduced motion・dispose・本番ビルド確認まで
順に進めてください。

弊社がこのデモを作った際も、ほぼこの粒度のプロンプトから始めました。もちろん一発ではなく、「星雲が暗い」「トンネルが画面外に散る」「渦の中心をもっと密に」といった調整は対話しながら詰めていきます。特に、どの形を・どの順で・何秒ずつ見せるかという構成は、何度も並べ替えました。それでも、ゼロから資料を調べて書き始めていた頃と比べると、最初の動くものが立ち上がるまでの速さは、明らかに変わりました。

CUSTOMIZE

上のプロンプトは、変数を置き換えるだけで自分用に変えられます。読者の方が「これなら自分でも触れそう」と思える範囲で、主な変更点を挙げておきます。

「もっと長く・もっと多彩に」したい場合でも、増えるのは主に形状の種類であって再生時間ではありません。同じ粒子基盤を使い回せるので、思ったほどは膨らみません。

PERFORMANCE

華やかに見えるWebGL表現ですが、実際のサイトに載せるなら注意点があります。「AIに作らせれば何でもOK」ではありません。ここは運用者としての実感も込めて書きます。

これらは「演出のクオリティ」とは別の、地味だが必須の配慮です。弊社が普段やっている保守の感覚に近い部分でもあります。

AIで全部が終わるわけではない

今回の実験で、あらためて実感したことがあります。

AIコーディングによって、実装のハードルは劇的に下がりました。 以前なら数日がかりだった試行錯誤が、数十分の対話に置き換わる場面も珍しくありません。これは間違いなく大きな変化です。

一方で、AIに丸投げして最高の演出が勝手に出てくる、というわけでもありませんでした。

こうした判断 ── いわばクリエイティブディレクションの部分は、依然として人間の仕事として残ります。実際、今回いちばん時間をかけたのは実装ではなく、「形と形の間(ま)」や「発光をどこで止めるか」といった、構成のさじ加減でした。

AIは、実装という険しい坂道をなだらかにしてくれます。ただ、どこへ向かって歩くかは、まだこちらが決める必要がある。そのくらいの距離感が、今の実感に近いです。

次回予告

「PROMPT → WEB」は、今後も不定期で続けていく予定です。クリエイティブなWeb表現を、実際に作りながら、プロンプトごと公開していきます。

候補として考えているのは、こんなテーマです。

全部を約束するものではありませんが、「これは面白そう」というものから順に取り上げていきます。

最後にもう一度。この記事で伝えたかったのは「Claude Codeがすごい」でも「Webデザインは誰でも簡単」でもありません。これまで専門知識が必要だった表現に、AIコーディングによって手が届きやすくなった ── その一点です。

上のプロンプトは丸ごとコピーして使えます。自社の色や形に置き換えて、ぜひ一度Claude Codeに渡してみてください。動くところまで、思ったより早くたどり着けるはずです。

レガシーPHPシステムの保守・引き継ぎのご相談を受け付けています。
初回のご相談・ヒアリングは無料です。

無料相談・お問い合わせはこちら

株式会社グルーヴサイン 代表取締役 米沢忠司。PHP開発歴約20年。他社開発システムの保守・引き継ぎを主力に、2007年の設立から19期目。