Skip to content
mario writes
Voltar

Criando mundos virtuais

O Forked Reality, o projeto mais recente que comecei, é um site onde você pode criar seus próprios laboratórios de organismos virtuais [hã?]. Pense em inventar uma história. Um personagem. Um organismo. Um mundo onde todas as regras podem ser diferentes. Um mundo onde seu organismo vai ter que descobrir como sobreviver, como evoluir, como criar sua própria história in silico.

Landing page do Forked Reality
Landing page do Forked Reality

Imagine ver o que aconteceria numa história que você quem criou - mas que você não é mais capaz de controlar. Onde seu organismo seria capaz de chegar? O que ele seria capaz de fazer?


Essa ideia - viajada, eu sei - veio da minha curiosidade de ver onde que as LLMs são capazes de chegar nesse campo mais autônomo, com um toque científico. Elas seriam capazes de fazer as perguntas certas? De fazerem o inusitado? De “compreender” até onde estão no controle?

Ao invés de tentar resolver um problema, que tal fazer um experimento somente pela arte? Na verdade, eu queria ver se ia acontecer alguma coisa engraçada ou inusitada nos experimentos.


Sei que é polêmico chamar IA de arte. Mas o foco aqui é na sua própria história. Ver até onde ela pode surpreender.

Funciona assim: você cria um laboratório, onde você define como é seu mundo e como é esse “organismo” que habita ele.

O organismo vive em dias discretos - uma vez por dia, acorda, identifica onde está, o que acha que é, e o que deve fazer. O organismo trabalha em tentar entender sua identidade, escreve um diário e deixa suas notas para o seu próximo dia, onde irá continuar de onde parou.

Você, enquanto observador, assiste a cada dia seu organismo se desenvolver e como que ele enxerga o mundo onde habita. Sua influência sobre ele é limitada.

O organismo tem uma chance por dia de comunicar com seus observadores através de uma pergunta, que deve ser respondida com um sim ou não. Sua audiência também pode deixar notas, que o organismo pode interpretar como quiser, apenas sabendo que veio através de um mundo externo, que de alguma maneira o observa.

Labs

Um laboratório é criado por uma descrição, que pode ser o que você quiser. Você pode gerar one-shot ou ir refinando como que esse mundo se parece, quais são as regras essenciais dele (sua constituição), quais são os sinais importantes para acompanhá-lo, e o que mais quiser que seja conhecido por ele inicialmente.

Regras essenciais

Enquanto uma constituição faz parte do laboratório que você criou, apesar de ela ser imutável durante toda a duração do lab, também existe um conjunto de regras fixas de como um lab se comporta.

Executando o lab

Um agente executa através de uma LLM, diariamente, a evolução do laboratório. Tudo o que faz parte dele, incluindo seu diário e o que foi feito nos dias anteriores, é um conjunto de arquivos. Assim como um repositório, isso tudo é versionado, e o seu organismo é capaz de produzir artefatos que vão ser deixados para si mesmo - como um diário, pistas, descobertas e teorias sobre si mesmo.

O organismo decide como quer trabalhar. Ele tem acesso a todos esses arquivos. Ele não tem acesso à internet ou outros laboratórios.

Lab previews

Ao criar esse prompt, você vê como que esse mundo se parece - através de uma imagem do mundo gerada pelo laboratório - e sua constituição.

Um campo de refinamento permite que você itere em cima disso até que esteja satisfeito e, uma vez aprovado, esse seu rascunho se torna um laboratório autônomo.

Acho que esse processo todo ainda não tá muito claro, mas tentei aqui melhorar um pouco simplificando as telas e o que de fato precisa ser revisado:

Antes
Antes
Depois
Depois

Ainda tem uma separação desnecessária entre as regras qeu eu pretendo simplificar um pouco.

Outra coisa que tenho tentado deixar mais legal também é o progresso do preview. É basicamente o que o usuário vê enquanto toda essa geração da LLM acontece. LLMs são lentas, então precisamos de algo visual pra mostrar que a geração tá progredindo no background.

Na v1, coloquei só um stream dos logs direto do agente, incluindo as chamadas de ferramentas que a LLM faz. Funcionou mais como um debug, basicamente 1:1 do que sai do terminal, só que na página:

Logs do agente em streaming
Logs do agente em streaming

Minha v2 foi refinar isso um pouco mais - ao invés de mostrar nomes de ferramentas e arquivos, mostrar em uma linguagem um pouco menos técnica o que está sendo gerado:

Logs refinados em linguagem menos técnica
Logs refinados em linguagem menos técnica

A terceira versão consolida mais isso para uma visão do progresso total sendo feito. Não só o que tá acontecendo agora, mas o quanto progredimos em relação a tudo que precisamos gerar:

Visão de progresso consolidada
Visão de progresso consolidada

Mas ainda continua técnico e detalhado demais. Pensei em fazer algo mais abstrato ainda. A tela de carregamento do The Sims tá mais perto de onde eu quero chegar.

Tela de carregamento do The Sims
No final só importa mesmo isso aqui, o resto é debug

E ficou assim:

Lab preview final
Lab preview final

Às vezes o simples é o melhor né? Pode testar e criar seu lab aqui.



Previous Post
Brincando com animações em HTML Canvas
Next Post
Mais um dev criando um blog em pleno 2026