threejs-black-holes-and-space-effects について
threejs-black-holes-and-space-effectsは、Three.jsで曲がった光線の効果を実装するスキルです。開発者向けに、芸術表現、Ellisワームホール、Schwarzschildモデルを区別して数値検証し、Kerrには外部ソルバーを求めます。
主な機能
- 01芸術表現または対応する計量モデルの選択
- 02有界な光線積分と連続イベント検出
- 03脱出方向と放射輸送の計算
- 04静的な球対称レンズの直接計算またはマップ再利用
- 05参照解、収束性、診断による検証
活用シーン
- 01様式化した曲がる光線と発光ディスクの作成
- 02Ellisワームホールでの光線通過や旋回のシミュレーション
- 03Schwarzschildレンズ効果や薄いディスクの描画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ linegel/ threejs-complete-set-of-skill --skill threejs-black-holes-and-space-effectsインストール後、Claude Code で/threejs-black-holes-and-space-effectsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEagents/openai.yamlreferences/artistic-rays-and-disks.mdlens-cache-and-history.mdmetric-rays.md詳細
曲線レイ空間エフェクト
このスキルが担うネイティブな主張は、芸術的な変形、Ellis のヌル測地線解、または Schwarzschild のヌル測地線解の3つです。Kerr の結果は、独立に検証された外部ソルバーが担います。そのようなソルバーがない場合は、unsupported-model を返します。数値積分だけでは、芸術的な場が計量解に変わることはありません。
1. 主張を選択する
| 要求された観測量 | 選択 | 条件付きの参照先 | 完了基準 |
|---|---|---|---|
| 様式化された偏向、上限のあるグロー、または装飾的なディスク | 上限付きの芸術的レイ | artistic-rays-and-disks.md を参照してください。 | 実装とそのドキュメントで artistic と明記され、固定視点でのリファインメントにより可視変化に上限が設定されています。 |
| 静的球対称な喉部を通る通過または転向 | Ellis ワームホール | metric-rays.md の Ellis セクションを参照してください。 | 喉部のスケール、外部領域へのマッピング、不変量、および B < 1、B = 1、B > 1 の各レジームが明示されています。 |
| 非回転ブラックホールの重力レンズ効果、または物理的な薄い円盤の画像 | Schwarzschild | metric-rays.md の Schwarzschild セクションと物理的な転送のセクションを参照してください。 | 質量スケール、地平面、光子球、臨界インパクトパラメーター、不変量、連続イベント、および観測者/放射体のフレームが明示されています。 |
| 回転ブラックホール | ここでは未対応 | 独立に検証された Kerr ソルバーを、外部のレイ/転送生成器として統合してください。レンズマップは再利用形式として任意で利用できます。 | ソルバーが計量/符号規約、運動の定数、テトラッド、イベントの意味、および独立した収束の証拠を提供します。そうでない場合は、未対応モデルの結果を返します。 |
完了条件: レイの経路を担う主張が正確に1つであり、すべての視覚的な主張が、その分岐の証拠を超えていません。
2. 数値領域を宣言する
積分を開始する前に、以下を定義します。
- エフェクトからワールドへの変換と有限の局所積分上限
- カメラのイベント、レイの原点、正規化された方向、および外部側
- 位置、ステップ、地平面/コア、および媒質係数に対する単一の長さ基準
- 状態ベクトル、その積分パラメーター、その所有者、および有効時間
- 環境の向きと、脱出したレイの検索に使用する正規直交フレーム
- 積分開始前の結果
miss、setup-rejected、unsupported-model、適用可能な連続的な地平面、コア、ディスク、シェル、プロキシ終了面、および無効状態、不透明度、ステップ上限、試行上限の各結果
計量レイでは、Ellis の喉部半径 a または Schwarzschild の質量長 M = G M_SI / c^2 を使って無次元化しつつ、メートルへの変換を保持してください。レンダーのデルタ時間をレイのステップにしてはいけません。相似変換(平行移動、回転、一様スケール)を使って、いずれの球対称計量も保持してください。非一様変換には、明示的に導出した変換後の計量とフレームに加え、不変量、イベント、収束の再検証が必要です。それ以外の場合は、セットアップ時に拒否してください。
非定常計量には、座標時刻を積分または復元し、マッピング後の各積分評価時点で、有効性と誤差を伴う計量および放射体の状態をサンプリングまたは補間する外部ソルバーが必要です。固定計量は、宣言された進化誤差ゲートに合格した場合に限り、準静的近似として扱えます。合格しない場合は、モデルを未対応として報告してください。
完了条件: すべての状態要素とイベント面に対して、基準、所有者、および有限の有効領域が宣言され、ワールドからソルバーを経てレンダーに至る往復変換で、選択したスケールと外部領域が保持されています。各球対称計量では相似変換を使うか、検証済みの変換後計量の証拠を提示します。また、すべての非定常な主張では、マッピング後の座標時刻サンプリングを使用するか、合格した進化誤差ゲートを伴う準静的近似であることを明示するか、未対応とします。
3. 有界なマーチを 1 つ実行する
TSL のノード関数を使用して WebGPURenderer を使います。レンダラーを初期化し、コンピュート、ストレージ、MRT のリソースを選択する前に WebGPU バックエンドを確認します。標準的なマーチは次のとおりです。
- カメラレイをエフェクト空間に変換し、有限の境界と交差するか判定します。
境界を外れた場合は、数値計算を行う前に
missを返します。不適切な初期状態、 サポートされていない変換、無効なフレームまたは領域の場合は、マーチの前にsetup-rejectedを返します。サポートされたネイティブ分岐も、許可された外部 ソルバーもないモデルが要求された場合は、unsupported-modelを返します。 - 位置、接線または正準運動量、放射輝度、透過率、イベント状態、受理済みステップ数、 終了 ID を初期化します。
- 候補となるセグメントを 1 つ提案します。誤差制御によって棄却された場合、 次に試行するステップサイズのみを変更します。
- セグメント上で該当するすべてのイベントを連続的に検出します。最も早いイベントの 根を精密化し、複数のイベントが寄与する場合は、円盤との交差順序を保持します。
- 受理されたセグメントの移送量を蓄積した後、状態を正確に 1 回進め、受理済み ステップ数を 1 回だけ増やします。
- マーチの開始後は、
escaped、horizon、core、opaque、invalid、unresolved-critical、minimum-step、step-cap、attempt-capのいずれかで 終了します。
試行上限は、受理済みステップの上限とは独立して、発散する処理量を制限します。
step-cap は確定した受理済みステップ数を制限し、attempt-cap は受理済みと棄却済みの
試行の合計数を制限します。曲率や距離のヒューリスティックを使ってステップを提案しても
構いませんが、精度の判定は、より厳密な解との照合によって行います。
完了条件: トレースにより、受理された各ステップにつき確定された状態の前進が 1 回であること、
棄却された試行が物理状態とイベント状態を変更しないこと、すべての入力が miss、
setup-rejected、unsupported-model、または明示的なマーチ終了 ID を受け取ること、
イベント残差が宣言された上限を満たすことを確認できる。
4. 移送量と脱出方向を決定する
escaped のレイに対してのみ、外部環境をサンプリングします。軌道上の位置角だけでは方向に
なりません。宣言された正規直交フレーム内の積分済み出射接線から、環境の参照方向を再構築します。
プロキシによって打ち切られた遠方場のテールは、上限を設けるか積分します。
主張に沿った移送量を保ちます。
- 芸術的な円盤では、シーン長の基準と線形 HDR のソース基準を宣言します。前方から後方へ 消散と放射を積分し、結果が芸術的なものであることを明示します。
- 物理的な円盤では、順序付きの測地線交差、名前を明示した放射体の四元速度と観測者の 正規直交テトラッド、不変な周波数移送を使用します。その形状と軌道モデルは、選択された Schwarzschild の主張に合致している必要があります。
線形 HDR に蓄積します。トーンマッピングと出力変換を担うパイプラインの段階は 1 つにし、 出力を置き換える診断処理ではパイプライングラフに変更済みの印を付けます。
完了条件: ミスと非脱出の終了では外部環境をサンプリングできないこと、脱出時の接線が有限で 正規化されていること、円盤との交差順序が保持されること、移送量の単位が放射輝度に帰着することを 確認できる。
5. 直接計算するか再利用するかを選択する
レンズが変化する場合、プローブがまばらな場合、またはピクセルごとの処理量が目標を満たす芸術的な
場の場合は、直接的な有界マーチを使用します。静的な球対称 Ellis レンズまたは Schwarzschild
レンズでは、コヒーレントな再利用によって直接積分より優れた性能が得られる場合、臨界分割
トランスファーマップを使用します。GPU の float32 による直接レイが角度ゲートを通過しない
セパラトリクス付近では、局所的な高精度マップを使用します。
レンズマップ、コンピュートキャッシュ、時間方向の再構成を選択する場合は、割り当てる前に lens-cache-and-history.md を読みます。不透明なシーンと 必須の深度は必要な解像度に保ち、誤差を測定したエフェクトパスのみをスケーリングします。
完了条件: 各キャッシュまたは履歴リソースについて、再利用する理由、安定した識別子、 無効化ルール、完了・存続期間のルール、直接パスに対する測定済みの利点があることを確認できる。
6. 選択した主張を検証する
角度、臨界曲線、履歴の誤差が見える状態に保てるよう、高頻度の方向性特徴を持つ決定論的なシード付き環境を使用します。これはプロジェクトが生成する検証用入力であり、同梱のビジュアルプリセットではありません。
各分岐で、以下を行います。
- 終了状態、受理/棄却された試行、イベントの数と位置、残りの透過率、最終方向、無効状態の診断情報を記録します。
- 固定した光線とカメラで、
h、h/2、h/4、または同等の許容誤差系列を比較します。 - 最終的な角度誤差を環境のフットプリントと比較し、イベント残差を関連する幾何学的厚さと比較します。
- 移動、均一スケーリング、カメラ内側、ミス、原点から遠い場合の境界条件を検証し、さらに非一様スケーリングの拒否、または明示的に変換したメトリックを検証します。
- 必要なThree.jsのリビジョン、バックエンド、最終出力の所有者、リサイズ、リセット、破棄の動作を検証します。
アーティスティックな光線は、細分化によって固定視点でのシルエット、終了分類、円盤イベントの順序、放射輝度が宣言された範囲内に保たれる場合に合格です。EllisおよびSchwarzschildの光線では、独立したCPU float64参照、保存量のドリフト、臨界領域の分類、外部/脱出の一致、最終テトラッド方向の収束も必要です。上限到達、最小ステップ、無効、または未解決の臨界光線は、物理的な証拠ではなく診断出力です。
完了条件: 要求されたすべての観測量に分岐固有の合格基準があり、すべての失敗クラスが診断情報に表示され、最終的な主張に残存する数値上および適用範囲上の限界が記載されていること。