グラフィックデザイン

パーティクルフィールド・ビジュアライザー

黒に近いキャンバス上で、密な緑の点群と、メインスレッド外で処理することを示す見出し、パーティクル数・転送方式・ローカル描画の表示を組み合わせています。

OpenDesignデザイン・制作
公式
ローカルの Web Worker とランタイム表示を備えた Canvas 2D パーティクルフィールド・ビジュアライザー1 画面
暗いキャンバス上の明るい緑のパーティクルフィールドと、Compute off the main thread の見出し、ローカルのパーティクル数・転送方式・描画の表示。
パーティクルフィールドとランタイム表示スクリーンショット 1 / 1

パーティクルビジュアライザーの用途

  • クリエイティブコーディングの学習パーティクルの構成、Worker の転送、ローカルのキャンバス描画を学べます。
  • 技術系グラフィックのプロトタイプ技術的な挙動を、焦点の定まったビジュアル構成として見せられます。
  • Canvas 2D の探求インターフェース操作を加えずに、密な点群を探れます。

WorkerとCanvasのハイライト

  • 12,000 パーティクル表示されたパーティクル数が、フィールドの規模を示します。
  • postMessage 転送転送ラベルが、ローカルの通信方式を示します。
  • 描画 FPSランタイムの数値表示が、視覚的な出力と実装の詳細を切り分けます。
  • メインスレッド外という前提見出しが、このグラフィックに明確な技術的前提を与えます。

ランタイムの文脈を添えたパーティクルフィールド

この OpenDesign 公式の例は、Canvas 2D のパーティクルフィールド・ビジュアライザーを、コントラストの高い単一のグラフィックとして見せています。左上に白く大きな見出し「Compute off the main thread.」を置き、中央から右にかけて広い緑のパーティクルが広がります。点の初期化は Web Worker が行い、描画はメインスレッドが担当します。元の作品にユーザーが操作するコントロールはありません。

このパーティクルフィールドは、ありきたりな点の雲ではありません。点は丸みのあるリング状の塊に集まり、中央付近に暗い開口部ができます。この余白が非常に密な面の中に読み取りやすい焦点をつくり、均一なノイズではなく構造を観察できます。黒に近い背景に対するネオングリーンの点は、構成全体のスケールでもコントラストを保ちます。

ビジュアライザー構成の全体。技術的な見出し、緑のパーティクルフィールド、3つのランタイム表示が見えます。
ビジュアライザー構成の全体。技術的な見出し、緑のパーティクルフィールド、3つのランタイム表示が見えます。

技術的ビジュアルの用途

技術デモを、デバッグパネルではなく完成したビジュアルとして見せたいときに有効なデザインです。情報層を抑えているため、プレゼンテーション、ランディングページの合間、クリエイティブコーディングの学習など、フィールドが主役で実装用語は目に入るが控えめな場面に向いています。

下部の行には3種類の情報があります。「12,000」はパーティクル数、「postMessage」は転送方式、「121」は取得時のランタイム状態で「RENDER FPS」の上に表示されています。これらを隣り合わせでも別々に置くことで、シーンの規模、通信方式、ローカルの描画観測値を区別して読めます。一方で、ラベルは概念を説明するものの、各値の算出方法までは説明しません。

シーンの規模

12,000 PARTICLES のラベルが、密度を視覚的な検討の明確な要素にします。

転送の文脈

postMessage TRANSPORT のラベルが、描画されたフィールドとブラウザーの通信を結びつけます。

ランタイムの観測

RENDER FPS の値はローカルな文脈を示すもので、比較ベンチマークではありません。

構成と読む順序

左上の見出しは大きく、2行に折り返されます。「Compute off the」と「main thread.」が最初の安定した読みの起点になります。その上の字間を空けた小さな「WORKER VISUALIZER」ラベルが主題を示します。この文字スケールは編集的で強い入口をつくりますが、見出しがフィールドの隣で縦横にかなりの領域を占めることにもなります。

元のコードは、均等に配分した角度と0.15から1.0までのランダムな半径で12,000個の点を初期化します。この内側の半径が中央の暗い部分の理由で、放射状の分布により多くの点がその周辺に集まります。Canvas 2D は、半透明の暗い塗り直しの上に小さな緑の四角形を描きます。下部の固定ラベルはパネルの外に置かれ、WebGL レンダラーや GPU ベンチマークを示唆することなくポスターのような構成を保ちます。

読み取れる関係

3つの統計は一貫した型を持ち、大きな値または語が、小さな大文字のラベルの上に置かれます。「12,000」と「121」は数値の観測値で、「postMessage」は文字による転送値です。同じ扱いにより一つのグループとして目に入りますが、値の種類が異なるため、意味はラベルで読み解く必要があります。

2つの転送経路と異なる動き

元のコードは2つの Worker 転送経路に対応しています。提供された非分離のプレビューでは、postMessage が初期位置を渡しますが step 関数は開始されないため、キャンバスの繰り返し描画はパーティクルシミュレーションが続いている証拠にはなりません。取得された 121 RENDER FPS の値はローカルの再描画の頻度の推定であり、パーティクルの更新頻度や比較性能ではありません。接続されたサービス、保存データ、本番デプロイ、科学的に検証されたパーティクルの力学は確認されていません。

2つの Worker 経路では、更新の挙動が同じではありません。
転送経路Worker の挙動表示されるフィールドの意味
SharedArrayBufferクロスオリジン分離が必要です。共有位置を初期化し、繰り返し実行される step 関数を開始します。Worker のコードが点群を変化させ、メインスレッドが共有位置を読み取ります。
postMessage フォールバック位置バッファを一度初期化して送りますが、step は呼び出しません。メインスレッドは初期位置を繰り返し再描画します。描画 FPS の表示が変化しても、パーティクルが動いている証拠にはなりません。

OpenDesign でパーティクルフィールド・ビジュアライザーのデザインを作る方法

  1. OpenDesignをダウンロードしてインストール

    デスクトップアプリをダウンロードしてインストールし、セットアップを完了してください。デザイン用のプロジェクトを作成します。

    OpenDesignをダウンロード
  2. ビジュアルの文法を定める

    黒に近いキャンバス、ネオングリーンの点群、字間を空けた小さな主題ラベル、白い2行の見出しから始めます。見出しは左上に置き、右側はパーティクルの形成のために空けておきます。

    推奨プロンプト

    黒に近いキャンバスに、「Compute off the main thread.」と読める大きな2行の見出し、中央に暗い開口部のある密な緑のパーティクルフィールド、下部に 12,000 PARTICLES、postMessage TRANSPORT、ローカルの RENDER FPS 観測値を並べた統計行を備えた、パーティクルフィールド・ビジュアライザーのデザインを作成してください。表現するのは視覚的な挙動のみとし、接続されたサービス、継続的なフォールバックシミュレーション、ベンチマーク性能を示唆しないでください。

  3. パーティクルの構造を整える

    点を均等に散らすのではなく、中央に空白がはっきり見える、丸みのある広いフィールドに形づくります。見出しの隣でも読みやすさが保たれ、点の密度が余白を消していないか確認します。

  4. ランタイム層を確認する

    下部の統計では、パーティクル数、転送方式、描画の観測値を別々に保ちます。元の Canvas 2D 描画とローカル Worker の初期化に合わせてください。継続的な動きが必要な場合は、選択した転送経路で定期的な更新を実装してテストし、高い再描画 FPS の値をシミュレーションの証拠として扱わないでください。

  5. エクスポートして共有リンクを取得

    完成したデザインをエクスポートし、OpenDesignの「共有」機能を使って共有リンクを取得してください。別のブラウザウィンドウでリンクを開き、意図したバージョンとそのアセットが正しく表示されることを確認してから送付してください。