arXiv | Página del proyecto
Yunzhi Zhang, Zizhang Li, Matt Zhou, Shangzhe Wu, Jiajun Wu. Preimpresión de 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 .
Obtenga su clave API de Anthropic siguiendo la documentación oficial y agréguela a engine/key.py :
ANTHROPIC_API_KEY = 'YOUR_ANTHROPIC_API_KEY' OPENAI_API_KEY = 'YOUR_OPENAI_API_KEY' # optional, required for `LLM_PROVIDER='gpt'`
Por defecto utilizamos Claude 3.5 Sonnet. Puede cambiar a otros modelos de idioma configurando LLM_PROVIDER en engine/constants.py .
python scripts/run.py --tasks " a chessboard with a full set of chess pieces "
Las renderizaciones se guardarán en ${PROJ_ROOT}/scripts/outputs/run_${timestep}_${uuid}/${scene_name}_${uuid}/${sample_index}/renderings/*.gif .
Resultados de ejemplo (resultados sin procesar aquí):
| "un tablero de ajedrez con un juego completo de piezas de ajedrez" | "Un tablero de Sudoku de 9x9 parcialmente lleno de números" | "una escena inspirada en Egon Schiele" | "un coliseo romano" | "una marioneta de araña" |
|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
ENGINE_MODE=minecraft python scripts/run.py --tasks " a detailed cylindrical medieval tower "
Las escenas generadas se guardan como archivos json en ${PROJ_ROOT}/scripts/outputs/run_${timestep}_${uuid}/${scene_name}_${uuid}/${sample_index}/renderings/*.json . Para la visualización, ejecute el siguiente comando:
python viewers/minecraft/run.py
Luego abra http://127.0.0.1:5001 en su navegador y arrastre los archivos json generados a la página web.
Resultados de ejemplo (resultados sin procesar aquí):
| "la casa de una bruja en Halloween" | "una detallada torre medieval cilíndrica" | "un modelo detallado de Picachu" | "Stonehenge" | "un templo griego" |
|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
python scripts/run.py --tasks ./resources/examples/ * --cond image --temperature 0.8
La siguiente tabla enumera las funciones auxiliares definidas en este archivo de acuerdo con las expresiones definidas en el lenguaje específico del dominio (DSL) (Tablas 2 y 5 del documento):
| Implementación | ADSL |
|---|---|
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 |
El código base actual le permite generar escenas 3D con mensajes de texto o imágenes. Otras tareas y renderizadores informados en el documento serán compatibles en futuras actualizaciones.
Envíe un PR o envíenos un correo electrónico si tiene solicitudes de funciones, sugerencias de mejoras o si desea compartir sus resultados.
Si encuentra útil este trabajo, considere citar nuestro artículo:
@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 } , }