arXiv | Página do projeto
Yunzhi Zhang, Zizhang Li, Matt Zhou, Shangzhe Wu, Jiajun Wu. Pré-impressão do 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 .
Obtenha sua chave de API Antrópica seguindo a documentação oficial e adicione-a em engine/key.py
:
ANTHROPIC_API_KEY = 'YOUR_ANTHROPIC_API_KEY' OPENAI_API_KEY = 'YOUR_OPENAI_API_KEY' # optional, required for `LLM_PROVIDER='gpt'`
Por padrão, usamos o Soneto Claude 3.5. Você pode mudar para outros modelos de linguagem definindo LLM_PROVIDER
em engine/constants.py
.
python scripts/run.py --tasks " a chessboard with a full set of chess pieces "
As renderizações serão salvas em ${PROJ_ROOT}/scripts/outputs/run_${timestep}_${uuid}/${scene_name}_${uuid}/${sample_index}/renderings/*.gif
.
Resultados de exemplo (saídas brutas aqui):
"um tabuleiro de xadrez com um conjunto completo de peças de xadrez" | "Um tabuleiro de Sudoku 9x9 parcialmente preenchido com números" | "uma cena inspirada em Egon Schiele" | "um Coliseu Romano" | "um fantoche de aranha" |
---|---|---|---|---|
ENGINE_MODE=minecraft python scripts/run.py --tasks " a detailed cylindrical medieval tower "
As cenas geradas são salvas como arquivos json em ${PROJ_ROOT}/scripts/outputs/run_${timestep}_${uuid}/${scene_name}_${uuid}/${sample_index}/renderings/*.json
. Para visualização, execute o seguinte comando:
python viewers/minecraft/run.py
Em seguida, abra http://127.0.0.1:5001 em seu navegador e arraste os arquivos json gerados para a página da web.
Resultados de exemplo (saídas brutas aqui):
"a casa de uma bruxa no Halloween" | "uma torre medieval cilíndrica detalhada" | "um modelo detalhado de Picachu" | "Stonehenge" | "um templo grego" |
---|---|---|---|---|
python scripts/run.py --tasks ./resources/examples/ * --cond image --temperature 0.8
A tabela a seguir lista as funções auxiliares definidas neste arquivo de acordo com as expressões definidas na linguagem específica do domínio (DSL) (Tabelas 2 e 5 do artigo):
Implementação | 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 |
A base de código atual permite gerar cenas 3D com prompts de texto ou imagem. Outras tarefas e renderizadores relatados no artigo serão suportados em atualizações futuras.
Envie um PR ou envie-nos um e-mail se tiver solicitações de recursos, sugestões de melhorias ou quiser compartilhar seus resultados.
Se você achar este trabalho útil, considere citar nosso artigo:
@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 } , }