Penrose – Crie diagramas digitando notação em texto simples

Penrose é um projeto de pesquisa da CMU que gera diagramas matemáticos a partir de DSLs em texto simples, separando “substance” (as relações subjacentes) de “style” e usando otimização restrita para organizar os visuais. Os comentadores o comparam a outras ferramentas de diagramas em texto como Mermaid, Graphviz, TikZ e D2, elogiando sua expressividade e estilos reutilizáveis, ao mesmo tempo em que questionam a curva de aprendizado, o desempenho e a adequação para diagramas UML ou de negócios do dia a dia. Também há debate sobre a qualidade e a correção de alguns exemplos mostrados (como estruturas químicas) e sobre nomear o projeto com o nome de Roger Penrose, além de interesse em futuras integrações com LaTeX, IDEs e modelos de linguagem para facilitar a autoria.

Getting started & DSL structure

  • Alguns tiveram dificuldade em encontrar a notação; as respostas apontavam para “Learn Penrose”, “Documentation” e a galeria de exemplos.
  • Cada diagrama usa três componentes:
    • Substance – os dados/objetos abstratos.
    • Style – o layout e a aparência em nível de gráficos vetoriais.
    • Domain – tipagem/relações específicas do domínio.
  • Os arquivos de estilo frequentemente contêm a maior parte da complexidade; alguns consideram essa divisão em três partes poderosa, porém pesada, com menções a planos para eventualmente unificar as DSLs.

Separação entre substance e style

  • Uma ideia central: separar o que o diagrama representa de como ele parece, à semelhança de HTML vs CSS.
  • A mesma substance (por exemplo, relações de conjunto-subconjunto) pode ser renderizada como diferentes tipos de diagrama (Venn, árvore etc.).
  • A geração de diagramas é enquadrada como um problema de otimização restrita, permitindo layouts automáticos e exploração por meio de restrições em vez de coordenadas fixas.

Comparação com outras ferramentas

  • Comparado com Mermaid, Graphviz, D2, TikZ, MetaPost, Asymptote, PlantUML, Pic/Pikchr, etc.
  • Visto mais como uma alternativa ao MetaPost / sistemas de figuras matemáticas do que a ferramentas de negócios/UML (Mermaid, D2).
  • Alguns usuários preferem ferramentas WYSIWYG (Inkscape, Illustrator, Excalidraw) para controle direto e esboços.

Usabilidade, ergonomia e IA

  • Vários acham a DSL intimidadora e “demais” para diagramas rápidos; outros valorizam a expressividade e a reutilização de estilos.
  • Críticas a “diagramas como código”: difícil de esboçar, frágil quando os requisitos mudam, frequentemente baixo retorno além de casos simples.
  • Outros valorizam a compatibilidade com controle de versão e diagramas gerados por código (por exemplo, a partir de máquinas de estados).
  • Vários comentários sugerem usar LLMs para gerar código Penrose/Mermaid; o próprio projeto está pesquisando autoria de Penrose baseada em LLM.

Renderização, integração e desempenho

  • Há uma ferramenta CLI que pode exportar SVG sem navegador, usando um backend em canvas/Cairo.
  • Problemas de memória no navegador são reconhecidos, ligados a alocações repetidas de Wasm; estão sendo exploradas soluções alternativas (reuso de memória, workers, futura Wasm GC).
  • Usuários demonstram interesse em integração mais estreita com LaTeX e observam plugins iniciais/incertos (por exemplo, Obsidian).

Qualidade dos exemplos e correção de domínio

  • Alguns exemplos são elogiados como bonitos; outros são criticados por serem confusos ou bagunçados, com código comentado prejudicando seu valor como material didático.
  • Diagramas de química (por exemplo, cafeína, combustão do metano) receberam fortes críticas por estruturas fisicamente incorretas; os mantenedores admitem que são layouts ingênuos de “sem sobreposição” e planejam abordagens melhores com consciência do domínio.
  • Um comentarista observa que o Penrose provavelmente precisa de múltiplos mecanismos especializados de layout para diferentes domínios.

Escopo, aleatoriedade e controle

  • Perguntas sobre como controlar posições sem coordenadas explícitas destacam a tensão entre auto-layout e posicionamento preciso.
  • Alguns querem layouts determinísticos e ajustados manualmente por padrão; outros veem valor na exploração estocástica com restrições.
  • São feitas comparações com ferramentas como GeoGebra, que mantêm construções determinísticas, mas responsivas a mudanças.

Nome e terminologia

  • Há confusão com “Penrose diagrams” na relatividade e com a notação de tensores de Penrose; existem ferramentas separadas para diagramas de espaço-tempo.
  • O debate sobre chamar o sistema de “Penrose” (e nomear a CLI de “roger”) gira em torno de se usar o nome de um cientista vivo sem afiliação clara é de mau gosto; outros apontam que o sobrenome não é único.
  • Esclarecimento de que “plain text” no slogan significa arquivos de texto editáveis e não binários, não inglês em linguagem natural.