arXiv | Page du projet
Yunzhi Zhang, Zizhang Li, Matt Zhou, Shangzhe Wu, Jiajun Wu. Préimpression 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 .
Récupérez votre clé API Anthropic en suivant la documentation officielle et ajoutez-la à engine/key.py
:
ANTHROPIC_API_KEY = 'YOUR_ANTHROPIC_API_KEY' OPENAI_API_KEY = 'YOUR_OPENAI_API_KEY' # optional, required for `LLM_PROVIDER='gpt'`
Par défaut, nous utilisons Claude 3.5 Sonnet. Vous pouvez passer à d'autres modèles linguistiques en définissant LLM_PROVIDER
dans engine/constants.py
.
python scripts/run.py --tasks " a chessboard with a full set of chess pieces "
Les rendus seront enregistrés dans ${PROJ_ROOT}/scripts/outputs/run_${timestep}_${uuid}/${scene_name}_${uuid}/${sample_index}/renderings/*.gif
.
Exemples de résultats (sorties brutes ici) :
"un échiquier avec un jeu complet de pièces d'échecs" | "Un tableau Sudoku 9x9 partiellement rempli de chiffres" | "une scène inspirée par Egon Schiele" | "un Colisée romain" | "une marionnette araignée" |
---|---|---|---|---|
ENGINE_MODE=minecraft python scripts/run.py --tasks " a detailed cylindrical medieval tower "
Les scènes générées sont enregistrées sous forme de fichiers json dans ${PROJ_ROOT}/scripts/outputs/run_${timestep}_${uuid}/${scene_name}_${uuid}/${sample_index}/renderings/*.json
. Pour la visualisation, exécutez la commande suivante :
python viewers/minecraft/run.py
Ensuite, ouvrez http://127.0.0.1:5001 dans votre navigateur et faites glisser les fichiers json générés vers la page Web.
Exemples de résultats (sorties brutes ici) :
"une maison de sorcière à Halloween" | "une tour médiévale cylindrique détaillée" | "un modèle détaillé de Picachu" | "Stonehenge" | "un temple grec" |
---|---|---|---|---|
python scripts/run.py --tasks ./resources/examples/ * --cond image --temperature 0.8
Le tableau suivant répertorie les fonctions d'assistance définies dans ce fichier conformément aux expressions définies dans le langage spécifique au domaine (DSL) (Tableaux 2 et 5 du document) :
Mise en œuvre | 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 |
La base de code actuelle vous permet de générer des scènes 3D avec des invites de texte ou d'image. D'autres tâches et moteurs de rendu signalés dans le document seront pris en charge dans les futures mises à jour.
Veuillez soumettre un PR ou nous envoyer un e-mail si vous avez des demandes de fonctionnalités, des suggestions d'améliorations ou si vous souhaitez partager vos résultats.
Si vous trouvez ce travail utile, pensez à citer notre article :
@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 } , }