arXiv |プロジェクトページ
Yunzhi Zhang、Zizhang Li、Matt Zhou、Shangzhe Wu、Jiajun Wu。 arXiv プレプリント 2024。
conda create --name sclg python=3.11 conda activate sclg pip install mitsuba # if you run into segmentation fault, you might need specific mitsuba versions # e.g., `pip install --force-reinstall mitsuba==3.5.1` on MacOS pip install unidecode Pillow anthropic transforms3d astor ipdb scipy jaxtyping imageio # required for minecraft renderer pip install spacy python -m spacy download en_core_web_md pip install --force-reinstall numpy==1.26.4 # to be compatible with transforms3d git clone https://github.com/zzyunzhi/scene-language.git cd scene-language pip install -e .
公式ドキュメントに従って Anthropic API キーを取得し、 engine/key.py
に追加します。
ANTHROPIC_API_KEY = 'YOUR_ANTHROPIC_API_KEY' OPENAI_API_KEY = 'YOUR_OPENAI_API_KEY' # optional, required for `LLM_PROVIDER='gpt'`
デフォルトでは、Claude 3.5 Sonnet を使用します。 engine/constants.py
でLLM_PROVIDER
設定することで、他の言語モデルに切り替えることができます。
python scripts/run.py --tasks " a chessboard with a full set of chess pieces "
レンダリング${PROJ_ROOT}/scripts/outputs/run_${timestep}_${uuid}/${scene_name}_${uuid}/${sample_index}/renderings/*.gif
に保存されます。
結果の例 (生の出力はここにあります):
「チェスの駒が完全に揃ったチェス盤」 | 「部分的に数字が埋め込まれた 9x9 の数独ボード」 | 「エゴン・シーレにインスピレーションを得たシーン」 | 「ローマのコロッセオ」 | 「蜘蛛の人形」 |
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
ENGINE_MODE=minecraft python scripts/run.py --tasks " a detailed cylindrical medieval tower "
生成されたシーンは、 ${PROJ_ROOT}/scripts/outputs/run_${timestep}_${uuid}/${scene_name}_${uuid}/${sample_index}/renderings/*.json
。視覚化するには、次のコマンドを実行します。
python viewers/minecraft/run.py
次に、ブラウザで http://127.0.0.1:5001 を開き、生成された json ファイルを Web ページにドラッグします。
結果の例 (生の出力はここにあります):
「ハロウィンの魔女の家」 | 「詳細な円筒形の中世の塔」 | 「ピカチュウの詳細模型」 | 「ストーンヘンジ」 | 「ギリシャの神殿」 |
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
python scripts/run.py --tasks ./resources/examples/ * --cond image --temperature 0.8
次の表は、ドメイン固有言語 (DSL) で定義された式に従って、このファイルで定義されたヘルパー関数を示しています (この文書の表 2 および 5)。
実装 | DSL |
---|---|
register | bind |
library_call | call |
primitive_call | call |
loop | union-loop |
concat_shapes | union |
transform_shape | transform |
rotation_matrix | rotation |
translation_matrix | translate |
scale_matrix | scale |
reflection_matrix | reflect |
compute_shape_center | compute-shape-center |
compute_shape_min | compute-shape-min |
compute_shape_max | compute-shape-max |
compute_shape_sizes | compute-shape-sizes |
現在のコードベースでは、テキストまたは画像のプロンプトを含む 3D シーンを生成できます。この論文で報告されている他のタスクとレンダラーは、将来のアップデートでサポートされる予定です。
機能リクエストや改善提案がある場合、または結果を共有したい場合は、PR を送信するか電子メールでご連絡ください。
この研究が役立つと思われる場合は、私たちの論文を引用することを検討してください。
@article { zhang2024scenelanguage , title = { The Scene Language: Representing Scenes with Programs, Words, and Embeddings } , author = { Yunzhi Zhang and Zizhang Li and Matt Zhou and Shangzhe Wu and Jiajun Wu } , year = { 2024 } , journal = { arXiv preprint arXiv:2410.16770 } , }