メインコンテンツへ移動
AIチュートリアル

Claude Codeで決定論的なジェネラティブアートを構築・検証する

genart Claude Codeプラグインのインストール方法、決定論的なクリエイティブコーディングのスケッチ開発、個別シードとコンタクトシートのレンダリング、トレイトの希少性測定、再現性の確認方法を学びます。チュートリアルでは、解像度、プラットフォーム、倫理、エクスポート、検証に関するプラグインのガイダンスも解説します。

Claude Codeで決定論的なジェネラティブアートを構築・検証する

genartとは?

genartは、長編のジェネラティブアート制作に関する専門的な知識をClaudeに与えるClaude Codeプラグインです。アーティストが、Art Blocks、256ART、Verse、Highlight、Plottables、bootloader.art、セルフホスト型リリースなどのプラットフォームに適した、決定論的でハッシュシードされたスケッチを制作できるよう支援します。

このプラグインは、Canvas 2D、p5.js、three.js/WebGL、SVGを使ったクリエイティブコーディングのワークフローに対応しています。疑似乱数生成、トークンハッシュによるシード設定、解像度に依存しないレンダリング、トレイト、レアリティ、デバッグ、エクスポート、プラットフォーム連携、検証、倫理的な実践に関するガイダンスを提供します。

AIの役割はアーティストではなく、スタジオアシスタントです。独創性、クレジット表記、ライセンス、AIの使用開示については、引き続きアーティストが責任を負います。

主な機能

  • 決定論的な生成:PRNGの選び方、トークンハッシュからのシード生成、名前付きランダムサブストリームの整理方法、再現性を損なう一般的な原因の回避方法を学べます。
  • 解像度非依存:プレビューサイズでも高解像度の出力サイズでも一貫してレンダリングできる構成を設計できます。
  • エディション設計:特徴、トレイト、レアリティテーブルを作成し、多数の生成結果でどのように機能するかを検証できます。
  • 複数のレンダリング技術:Canvas 2D、p5.js、three.js/WebGL、SVGのプロジェクトにガイダンスを適用できます。
  • 制作ツール:Claudeの支援で、デバッグインターフェース、キーボードショートカット、PNGエクスポート、動画エクスポートを追加できます。
  • 検証:ミント前にスケッチをチェックし、自動テストで確認できないことを理解できます。
  • プラットフォームに関するガイダンス:古くなる可能性のあるコピー情報ではなく、安定したプラットフォームのモデルと正式なドキュメントに基づいて作業できます。
  • 倫理に関するガイダンス:AIをアート制作のワークフローに取り入れる際、独創性、クレジット表記、ライセンス、使用開示について検討できます。

前提条件

Claude Codeと、既存または新規のジェネラティブアートプロジェクトが必要です。プラグインの検証スクリプトとレンダリングスクリプトを実行するにはNode.jsが必要です。

実行可能なスクリプトには、アートプロジェクト内のPlaywrightとChromiumも必要です。プラグイン自体には依存関係がなく、package.jsonやPlaywrightのバンドルも含まれていません。

Claude Codeプラグインをインストールする

Claude Codeでプラグインマーケットプレイスを追加し、genartをインストールします。

/plugin marketplace add camilleroux/genart-skill
/plugin install genart@camilleroux-genart

インストール後、スケッチについて説明するとスキルが自動的に読み込まれます。明示的に呼び出すこともできます。

/genart

最初のリクエストとしては、コードを変更する前に、プロジェクトの現在の構成を説明し、決定論的なアーキテクチャを提案するよう依頼すると便利です。例えば:

/genart
このCanvas 2Dジェネラティブアートスケッチをレビューしてください。すべての乱数をトークンハッシュからシードし、トレイトを安定させ、異なる解像度でも同じ構成をレンダリングできるよう支援してください。

レンダリング依存関係をインストールする

ジェネラティブアートプロジェクトのルートから、Playwrightを開発依存関係としてインストールし、Chromiumをダウンロードします。

npm i -D playwright
npx playwright install chromium

Playwrightが見つからない場合、付属のスクリプトがインストールコマンドを表示します。この依存関係をプロジェクト内に置くことで、プラグイン自体は依存関係なしのまま、スクリプトをローカルのスケッチに対して実行できます。

決定論的なスケッチを構築する

トークンハッシュから始める

すべての乱数の発生源を特定し、シード付きPRNGを経由させるようClaudeに依頼します。同じトークンハッシュからは同じ乱数列が初期化されるべきであり、Math.random()のようなシードなしの呼び出しに依存してはいけません。

プラグインの決定性に関するリファレンスでは、名前付きサブストリームについても扱っています。これにより、パレットの選択、レイアウト、テクスチャなどの異なる判断を分離できるため、スケッチの一部を変更しても、その後のすべてのランダムな選択に不必要な影響を与えずに済みます。

構成と出力解像度を分離する

キャンバスサイズの変更によって構成が変わるなら、決定論的な結果だけでは不十分です。位置、長さ、その他の視覚的な判断を論理座標系または比率で表現し、最終的なレンダリングを要求された寸法に合わせて拡大縮小するようClaudeに依頼します。

これにより、約400ピクセルの軽量なプレビューと、約4000ピクセルの本番出力を、同じ構成を保ったままレンダリングできます。プラグインではこの目標を、ピクセル単位の完全な一致ではなく、サイズ間での知覚的な安定性と説明しています。

特徴とレアリティを意図的に定義する

トレイトは特定のハッシュに対して安定しており、エディション全体を通じて意味を持つべきです。少数の魅力的なサンプルに頼る前に、可能な値とレアリティのルールを定義するようClaudeに依頼します。

実用的なリクエストの例:

パレット、密度、構造について安定したトレイトを設計してください。トレイトの計算を決定論的に保ち、各値に意図したレアリティを記録し、5,000個のシードで結果の分布をテストできるよう支援してください。

決定性チェックを実行する

プラグインには、プロジェクト内で実行できるcheck.mjsスクリプトが含まれています。これをプロジェクトにコピーする必要はないため、インストール済みのスクリプトが使われる場所ではプラグインの更新が適用されます。

node "$CLAUDE_PLUGIN_ROOT/scripts/check.mjs" myproject

myprojectを対象のプロジェクトパスに置き換えます。必要なスケッチの正確な契約と小規模なプラットフォームシムについては、references/verification.mdに記載されています。

ミントする前にこのチェックを使用しますが、結果は慎重に解釈してください。同一マシンでの再現性、機能の安定性、サイズ間での知覚的な安定性の評価に役立ちます。ただし、すべてのマシン、ブラウザエンジン、GPUで同一のピクセルが生成されることを証明するものではありません。

1つのシードをレンダリングして確認する

--hashを指定してrender.mjsを使い、決定論的な出力をPNGとして1つレンダリングします。

node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" myproject --hash 0x…

確認したいトークンハッシュで0x…を置き換えてください。このコマンドは、次のような短い視覚的な反復ループを実現します。

  1. Claudeにスケッチを編集させる。
  2. 固定ハッシュをレンダリングする。
  3. 生成されたPNGを確認する。
  4. 何を変更すべきか説明する。
  5. 同じハッシュを再度レンダリングし、結果を比較する。

ハッシュを固定すると、意図したコード変更と、異なるシードをテストしたことによる変動を切り分けやすくなります。

エディション全体を評価する

コンタクトシートを作成する

1つのシードだけでは、プロジェクトに十分な多様性があるか、望ましくない構造が繰り返されるかを確認できません。50個の出力をグリッドでレンダリングします。

node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" myproject --grid 50

コンタクトシートを使って、視覚的な幅、反復、構図のバランス、まれな外れ値、コレクション全体の一貫性を確認します。

トレイトの希少性を測定する

センサスを実行して、実装した希少性ルールが大規模なサンプルで実際にどのような結果を生むかを確認します。

node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" myproject --census 5000

5,000個の出力をテストし、トレイト分布をエディション単位で確認できます。測定結果を意図した希少性テーブルと比較してください。異なる場合は、デザイン上の割合が守られていると決めつけず、コードを調査します。

個別のPNGファイルを書き出す

複数の出力を個別のファイルとしてレンダリングするには、バッチモードを使用します。

node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" myproject --batch 50

この例では、詳しい確認や後続の利用に向けて、個別のPNGレンダーを50個生成します。

プラットフォームのリファレンスシートを安全に利用する

このプラグインには、Art Blocks、256ART、Verse、Highlight、Plottables、bootloader.art、セルフホスト型配布に関するガイダンスが含まれています。これらのシートでは、変わりやすいバージョン番号、フィールド名、コピーした数値を意図的に避けています。

代わりに、安定した基本モデル、正式なドキュメントへのリンク、現在のドキュメントについてClaudeが確認すべき質問を提示しています。スケッチをプラットフォーム向けに調整する際は、統合コードを書く前に公式ドキュメントを取得するようClaudeに指示してください。

対象プラットフォーム向けにgenartのプラットフォームガイダンスを使用してください。統合コードを提案する前に、最新の正式なドキュメントを取得し、確認が必要な前提条件を特定してください。

この方法により、古いAPIを実装したり、プラグイン公開後に変更された設定の詳細に依存したりするリスクを減らせます。

高度なワークフローのヒント

名前付きのランダムサブストリームを使用する

構図、パレット、特徴、テクスチャなどの主要システムごとに乱数を分離します。これによりコードの意図を把握しやすくなり、反復中に無関係な視覚的判断が偶発的に変わるのを抑えられます。

構造を変更するたびに固定シードをテストする

一般的なトレイトの組み合わせと珍しいトレイトの組み合わせを含む、代表的なハッシュの小さなセットを維持します。PRNGの使用方法、機能ロジック、寸法、レンダリング技術を変更した後は、それらのハッシュをレンダリングします。その後、グリッドと大規模なセンサスで確認を補完します。

再現性とマシン間の証明を混同しない

WebGLシェーダーコンパイラ、浮動小数点精度、ラスタライザー、マルチサンプルアンチエイリアスは、GPUによって異なる場合があります。JavaScriptの超越関数もエンジンによって異なる可能性があります。そのため、このプラグインはツールによってマシン間の決定性が証明されるとは主張していません。

検証結果を説明する際は正確に記述してください。テストの成功が示すのは、現在の環境での反復可能性や、サンプルしたハッシュ間でのトレイトの安定性など、テストした範囲だけです。

書き出し要件を早期に決める

最終作品に高解像度印刷、動画、SVG、ペンプロッター出力が必要な場合は、スケッチのアーキテクチャを固定する前にその要件を検討してください。このプラグインには、PNGと動画の書き出し、解像度に依存しないレンダリング、SVGワークフロー、ペンプロッターに関するガイダンスが含まれています。

作者性に対する責任をアーティストが担う

Claudeを使って技法の説明、コードレビュー、ツールの実行、反復の効率化を行います。創作上の方向性、作品の選択、独自性の確認、帰属表示、ライセンスに関する判断、開示はアーティストの管理下に置いてください。

推奨するエンドツーエンドのワークフロー

  1. Claude Codeにgenartをインストールする。
  2. ジェネラティブアートのプロジェクトを開き、視覚的コンセプト、レンダリング技術、目標出力を説明する。
  3. Claudeにハッシュシード乱数と安定したトレイトを設計させる。
  4. 出力解像度に依存しない構図にする。
  5. プロジェクトにPlaywrightとChromiumをインストールする。
  6. references/verification.mdに記載されたスケッチの契約に従う。
  7. check.mjsを実行して、検出可能な再現性の問題を特定する。
  8. 固定ハッシュをレンダリングし、画像を反復改善する。
  9. コンタクトシートを生成して、視覚的な多様性を確認する。
  10. 大規模なセンサスを実行し、測定した希少性を意図したトレイトテーブルと比較する。
  11. プラットフォーム固有のコードを実装する前に、最新の公式プラットフォームドキュメントを取得する。
  12. 必要なPNG、動画、印刷、SVG、プロッター用の書き出しを準備し、決定性に関する主張の限界を文書化する。

まとめ

genartはClaude Codeを、決定論的なジェネラティブアート開発に特化したアシスタントへと変えます。そのリファレンスはスケッチの構成に役立ち、実行可能なツールは、固定シードによるレンダリング、エディションのレビュー、レアリティの測定、再現性の検証を支援します。慎重に使用すれば、芸術的な作者性を置き換えたり、自動検証で証明できることを誇張したりすることなく、プロジェクトの技術的な信頼性を高められます。

このプロジェクトはCamille Rouxによってメンテナンスされ、MITライセンスの下で公開されています。