Penrose – Crea diagramas escribiendo notación en texto plano

Penrose es un proyecto de investigación de CMU que genera diagramas matemáticos a partir de DSL en texto plano, separando “substance” (las relaciones subyacentes) de “style” y usando optimización con restricciones para distribuir los elementos visuales. Los comentaristas lo comparan con otras herramientas de diagramas basadas en texto como Mermaid, Graphviz, TikZ y D2, y elogian su expresividad y el estilo reutilizable, aunque cuestionan la curva de aprendizaje, el rendimiento y su idoneidad para diagramas UML o de negocio cotidianos. También hay debate sobre la calidad y corrección de algunos ejemplos mostrados (como estructuras químicas) y sobre nombrar el proyecto en honor a Roger Penrose, junto con interés en futuras integraciones con LaTeX, IDEs y modelos de lenguaje grandes para facilitar la autoría.

Primeros pasos y estructura del DSL

  • A algunos les costó encontrar la notación; las respuestas apuntaban a “Learn Penrose”, “Documentation” y la galería de ejemplos.
  • Cada diagrama usa tres componentes:
    • Substance – los datos/objetos abstractos.
    • Style – el diseño y la apariencia a nivel de gráficos vectoriales.
    • Domain – tipado/relaciones específicos del dominio.
  • Los archivos de estilo suelen contener la mayor parte de la complejidad; algunos consideran potente pero pesado esta separación en tres partes, y se mencionó que más adelante se prevé unificar los DSL.

Separación de substance y style

  • Una idea central: separar qué representa el diagrama de cómo se ve, de forma parecida a HTML frente a CSS.
  • El mismo substance (p. ej., relaciones de conjunto-subconjunto) puede representarse como distintos tipos de diagramas (Venn, árbol, etc.).
  • La generación de diagramas se plantea como un problema de optimización con restricciones, lo que permite diseños automáticos y exploración mediante restricciones en lugar de coordenadas fijas.

Comparación con otras herramientas

  • Se compara con Mermaid, Graphviz, D2, TikZ, MetaPost, Asymptote, PlantUML, Pic/Pikchr, etc.
  • Se ve más como una alternativa a MetaPost / sistemas de figuras matemáticas que a herramientas de negocio/UML (Mermaid, D2).
  • Algunos usuarios prefieren herramientas WYSIWYG (Inkscape, Illustrator, Excalidraw) para tener control directo y hacer bocetos.

Usabilidad, ergonomía e IA

  • Varios consideran que el DSL intimida y es “demasiado” para diagramas rápidos; otros valoran la expresividad y la reutilización de estilos.
  • Críticas a “diagramas como código”: difíciles de esbozar, frágiles cuando cambian los requisitos, y a menudo con bajo retorno salvo en casos simples.
  • Otros valoran la compatibilidad con control de versiones y los diagramas generados por código (por ejemplo, a partir de máquinas de estados).
  • Varios comentarios sugieren usar LLMs para generar código de Penrose/Mermaid; el propio proyecto está investigando la autoría de Penrose basada en LLMs.

Renderizado, integración y rendimiento

  • Existe una herramienta CLI que puede exportar SVG sin un navegador, usando un backend tipo canvas/Cairo.
  • Se reconocen problemas de memoria en el navegador, ligados a asignaciones repetidas de Wasm; se están explorando soluciones (reutilización de memoria, workers, futuro Wasm GC).
  • Los usuarios muestran interés en una integración más estrecha con LaTeX y señalan plugins tempranos o inciertos (p. ej., Obsidian).

Calidad de los ejemplos y corrección del dominio

  • Algunos ejemplos son elogiados como bellos; otros se critican por confusos o desordenados, y el código comentado reduce su valor como material didáctico.
  • Los diagramas de química (p. ej., cafeína, combustión del metano) recibieron fuertes críticas por estructuras físicamente incorrectas; los mantenedores admiten que son diseños ingenuos de “no overlap” y planean enfoques mejores y más conscientes del dominio.
  • Un comentarista señala que Penrose probablemente necesita varios motores de diseño especializados para distintos dominios.

Alcance, aleatoriedad y control

  • Las preguntas sobre cómo controlar posiciones sin coordenadas explícitas ponen de relieve la tensión entre auto-layout y colocación precisa.
  • Algunos quieren diseños deterministas y afinados a mano por defecto; otros ven valor en la exploración estocástica con restricciones.
  • Se hacen comparaciones con herramientas como GeoGebra, que mantienen las construcciones deterministas pero sensibles a los cambios.

Nombre y terminología

  • Se menciona la confusión con los “diagramas de Penrose” en relatividad y la notación tensorial de Penrose; existen herramientas separadas para diagramas espacio-temporales.
  • El debate sobre llamar al sistema “Penrose” (y nombrar el CLI “roger”) se centra en si usar el nombre de un científico vivo sin una afiliación clara es de mal gusto; otros señalan que el apellido no es único.
  • Se aclara que “plain text” en el eslogan significa archivos de texto editables y no binarios, no inglés en lenguaje natural.