- Flint es un lenguaje de visualización que permite crear y modificar gráficos sin configuración de bajo nivel, ya que decide automáticamente el parsing, los ejes, el formato y los colores según el significado de los campos de datos
- Infiera la configuración detallada necesaria para la codificación visual mediante tipos semánticos como
Rank,YearMonth,DeltayTemperature - Ajusta tamaño, espaciado y disposición con un modelo de layout elástico y el principio de banking; cuando el gráfico crece, expande el canvas y reduce el ancho de banda para adaptarse a composiciones densas
- Soporta 50 tipos de gráficos en Vega-Lite, ECharts, Chart.js y Plotly, y también genera gráficos nativos de Excel editables mediante Office.js
- Permite cambiar de backend desde una sola interfaz y aprovechar las fortalezas de cada herramienta, como el sunburst jerárquico de ECharts, los traces estadísticos y analíticos de Plotly y la edición dentro del libro de Excel
Especificación basada en significado y optimización automática
- Flint infiere parsing, escalas, ejes, formato y esquemas de color usando tipos semánticos que representan el significado de los campos de datos, como
Rank,YearMonth,DeltayTemperature- En un mapa de calor que muestra el cambio en nuevos usuarios netos por juego y por mes,
gamese define comoCategory,periodcomoYearMonthynewUserscomoProfit - Según el significado especificado, determina automáticamente el parser de valores temporales, el formato del eje, el esquema de color divergente y el punto medio
- En un mapa de calor que muestra el cambio en nuevos usuarios netos por juego y por mes,
- La optimización automática del layout aplica un modelo de layout elástico y el principio de banking para gestionar dinámicamente tamaño, espaciado y disposición según el canvas
- Si un gráfico de barras agrupadas pasa de una configuración dispersa de
5 × 3a una más densa de22 × 3, expande el canvas y reduce el ancho de banda - Funciona de manera similar a cómo un resorte encuentra su lugar dentro de un contenedor expandible
- Si un gráfico de barras agrupadas pasa de una configuración dispersa de
- Se puede cambiar el diseño solo con cambiar el tipo de gráfico y reconectar la codificación visual, sin tocar directamente parámetros frágiles de bajo nivel
- Un gráfico de barras facetado que muestra la distribución de población por sexo y edad del censo de EE. UU. del año 2000 puede convertirse en un gráfico piramidal solo cambiando el tipo de gráfico, mientras el compilador se encarga del resto de la configuración de bajo nivel
Soporte de backends y lanzamientos recientes
- Soporta 50 tipos de gráficos en Vega-Lite, ECharts, Chart.js y Plotly, y la galería incluye 121 ejemplos por backend
- La interfaz unificada oculta las diferencias de API y modelos de programación entre backends
- ECharts puede usarse para sunburst jerárquico y Plotly para traces estadísticos y analíticos
- Genera gráficos nativos de Excel que pueden insertarse y editarse dentro del libro mediante Office.js
- v0.4.0 agregó el 24 de julio de 2026 38 tipos de gráficos de Plotly y 18 plantillas editables de gráficos nativos de Excel
- v0.3.0 agregó el 19 de julio de 2026 un widget dinámico de gráficos para cambiar el tipo de gráfico y modificar propiedades en el lugar
- v0.2.2 agregó el 15 de julio de 2026 el modo compact dodge y el layout grouped violin
1 comentarios
Opiniones de Hacker News
Incluso en la era de la IA, creo que la API de ggplot es la mejor API para gráficos. “Grammar of Graphics” no era solo una frase de marketing, sino un intento real de crear una gramática capaz de expresar todos los gráficos cualitativos posibles.
Ese proceso está documentado en https://link.springer.com/book/10.1007/0-387-28695-0. Encontré este libro mientras investigaba gráficos antiguos hechos con papel y lápiz; los gráficos de los reportes anuales del Banco de la Reserva de Australia de las décadas de 1960 a 1980 tenían personalidad, mientras que a principios de los 2000 se convirtieron en gráficos planos de Excel.
Aunque ggplot no reproduce por completo el encanto de esos gráficos antiguos, parece haber tomado muchas referencias de su forma de transmitir información. En la sección 20.1 se recrea el gráfico de Minard sobre la campaña rusa de Napoleón, y se puede ver un ejemplo similar en https://www.andrewheiss.com/blog/2017/08/10/exploring-minard...
Los resultados se ven mejor que pyplot y las API construidas sobre este, y pyplot parece tener muchas limitaciones en el renderizado basado en ráster y el manejo de texto. Como ggplot pertenece al ecosistema de R, es menos conocido entre ingenieros de software, pero me gustaría que los ecosistemas de Node.js y Python tomaran más referencias de esta API.
También publiqué Algraf, un DSL inspirado en la misma filosofía: https://williamcotton.github.io/algraf/demos. La demo también incluye el gráfico de Minard.
Fue desarrollado dentro del entorno de RStudio, donde trabajó Hadley Wickham, creador de ggplot, y actualmente cuenta con el apoyo de Posit, donde él trabaja.
Probé tanto Flint como hacer que la IA generara directamente especificaciones de Vega-Lite, y Flint no fue la mejor solución.
Flint está bien para personalizar a bajo nivel tipos de gráficos predefinidos, pero si un agente o subagente crea directamente especificaciones de Vega, se pueden lograr visualizaciones mucho más flexibles y de mayor calidad, como mostrar mínimos y máximos en series de tiempo o marcadores explicativos para fechas de eventos específicos.
Eso sí, Vega-Lite requiere validación de la especificación e instrucciones concretas, además de tener que lidiar continuamente con bugs y comportamientos particulares. Si quieres empezar rápido sin construir la creación de gráficos como una habilidad aparte, Flint es más estable.
Parece que busca manejar varios backends de gráficos con una sola interfaz, pero si la IA puede escribir Flint, me parece que podría escribir directamente el código del backend. No queda claro por qué habría que hacer que el backend sea intercambiable.
Dicho eso, como API simple para LLM, sí tiene la ventaja de mejorar la eficiencia en tokens.
Microsoft/Flint-Chart también fue presentado el 2 de julio de 2026: https://github.com/microsoft/flint-chart, https://news.ycombinator.com/item?id=48756577
El 8 de julio volvió a aparecer como “Show HN: Microsoft releases Flint, a visualization language for AI agents”: https://microsoft.github.io/flint-chart/#/, https://news.ycombinator.com/item?id=48834924
¿Qué tiene de malo simplemente pedir “hazme un gráfico XYZ con plotly”?
Hace 22 días también hubo una discusión más grande: https://news.ycombinator.com/item?id=48834924
Un DSL para IA no tiene mucho sentido. Los modelos fueron entrenados con bibliotecas gráficas existentes y ya las manejan bastante bien.
A largo plazo, después de publicar Flint, los laboratorios podrían crear “benchmarks gráficos” para sobreajustar los modelos a este DSL, pero parece requerir demasiado trabajo.
No sé a partir de qué nivel la abstracción se vuelve excesiva. Me pregunto si Plotly o Plotly Express no son suficientes, y cómo otra especificación JSON abriría una nueva era.
Es interesante, pero no sé si realmente es necesario. Ya existen muchas bibliotecas de gráficos maduras, incluido Apache ECharts, y al final parece otro proceso de reinventar la rueda.
Se lanza una herramienta nueva, se le van agregando funciones y luego otra herramienta con un diseño y una sintaxis ligeramente distintos reemplaza a la original; el ciclo se repite.
También se podrían aprovechar las fortalezas propias de cada backend: ECharts para sunburst jerárquicos, Plotly para líneas de seguimiento estadísticas y analíticas, Excel para gráficos editables dentro de un libro. O bien elegir una biblioteca de gráficos que te guste y aprender bien sus funciones, en vez de mezclar presets de varias bibliotecas sin ajustar los detalles.