arXiv | Projektseite
Yunzhi Zhang, Zizhang Li, Matt Zhou, Shangzhe Wu, Jiajun Wu. arXiv-Vorabdruck 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 .
Holen Sie sich Ihren Anthropic-API-Schlüssel gemäß der offiziellen Dokumentation und fügen Sie ihn zu engine/key.py
hinzu:
ANTHROPIC_API_KEY = 'YOUR_ANTHROPIC_API_KEY' OPENAI_API_KEY = 'YOUR_OPENAI_API_KEY' # optional, required for `LLM_PROVIDER='gpt'`
Standardmäßig verwenden wir Claude 3.5 Sonnet. Sie können zu anderen Sprachmodellen wechseln, indem Sie LLM_PROVIDER
in engine/constants.py
festlegen.
python scripts/run.py --tasks " a chessboard with a full set of chess pieces "
Renderings werden unter ${PROJ_ROOT}/scripts/outputs/run_${timestep}_${uuid}/${scene_name}_${uuid}/${sample_index}/renderings/*.gif
gespeichert.
Beispielergebnisse (Rohausgaben hier):
„ein Schachbrett mit einem vollständigen Satz Schachfiguren“ | „Ein 9x9 Sudoku-Brett, teilweise gefüllt mit Zahlen“ | „Eine von Egon Schiele inspirierte Szene“ | „ein römisches Kolosseum“ | „Eine Spinnenpuppe“ |
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
ENGINE_MODE=minecraft python scripts/run.py --tasks " a detailed cylindrical medieval tower "
Generierte Szenen werden als JSON-Dateien in ${PROJ_ROOT}/scripts/outputs/run_${timestep}_${uuid}/${scene_name}_${uuid}/${sample_index}/renderings/*.json
gespeichert. Führen Sie zur Visualisierung den folgenden Befehl aus:
python viewers/minecraft/run.py
Öffnen Sie dann http://127.0.0.1:5001 in Ihrem Browser und ziehen Sie generierte JSON-Dateien auf die Webseite.
Beispielergebnisse (Rohausgaben hier):
„Ein Hexenhaus an Halloween“ | „ein detaillierter zylindrischer mittelalterlicher Turm“ | „ein detailliertes Modell von Picachu“ | „Stonehenge“ | „ein griechischer Tempel“ |
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
python scripts/run.py --tasks ./resources/examples/ * --cond image --temperature 0.8
In der folgenden Tabelle sind die in dieser Datei definierten Hilfsfunktionen gemäß den in der domänenspezifischen Sprache (DSL) definierten Ausdrücken aufgeführt (Tabellen 2 und 5 des Dokuments):
Durchführung | 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 |
Mit der aktuellen Codebasis können Sie 3D-Szenen mit Text- oder Bildaufforderungen generieren. Andere im Dokument beschriebene Aufgaben und Renderer werden in zukünftigen Updates unterstützt.
Bitte senden Sie eine PR oder senden Sie uns eine E-Mail, wenn Sie Funktionswünsche oder Verbesserungsvorschläge haben oder Ihre Ergebnisse teilen möchten.
Wenn Sie diese Arbeit nützlich finden, zitieren Sie bitte unser Papier:
@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 } , }