Night
Barras anchas con esquinas totalmente redondeadas, sin trazo y opacidad completa. Wide bars with fully rounded corners, no stroke and full opacity.
Mi propio toolkit de visualización de datos procedural para After Effects: gráficos de barras, líneas, áreas, radares y círculos que se dibujan solos a partir de los datos y que cambian de forma, color y estilo desde un único panel de control.
My own procedural data-visualization toolkit for After Effects: bar, line, area, radar and circle charts that draw themselves from the data and change shape, color and style from a single control panel.
ShapingCharts nació en 2018 en el BBVA Innovation Center, con una necesidad muy concreta: mostrar los KPIs del banco en las distintas pantallas del interior del edificio. Datos que cambian, pantallas con formatos distintos y la exigencia de una marca muy cuidada. Así que en lugar de animar gráficos uno a uno, empecé a programar cómo debe comportarse un gráfico.
Lo que empezó como un puñado de barras animadas es hoy un sistema completo de plantillas que no ha dejado de crecer. Y hasta 2026, lo hice todo completamente a mano: cada expresión, cada control y cada ajuste.
ShapingCharts was born in 2018 at the BBVA Innovation Center, out of a very specific need: showing the bank's KPIs on the different screens inside the building. Changing data, screens with different formats and a brand that demands great care. So instead of animating charts one by one, I started programming how a chart should behave.
What began as a handful of animated bars is now a complete system of templates that has never stopped growing. And until 2026, I did everything entirely by hand: every expression, every control and every adjustment.
Las plantillas se reparten en cinco familias: barras, líneas y áreas, radar, círculos e Independent Shapes, que verás más abajo. Todas hablan el mismo idioma: los mismos grupos de controles, la misma paleta y la misma lógica de animación.
The templates are grouped into five families: bars, lines and areas, radar, circles and Independent Shapes, which you'll see further down. They all speak the same language: the same control groups, the same palette and the same animation logic.
Si hay algo que define este proyecto es que cada composición se basta a sí misma. Todo lo que el gráfico necesita para dibujarse, animarse y colorearse vive dentro de él: ni nulos, ni sólidos de los que dependa nada, ni capas de referencia escondidas, ni enlaces a otras composiciones.
If anything defines this project, it is that every composition is self-sufficient. Everything the chart needs to draw, animate and color itself lives inside it: no nulls, no solids anything depends on, no hidden reference layers, no links to other compositions.
Toda la parte gráfica está construida con shape layers, de ahí el nombre: Shaping Charts (y porque sonaba "Chasing Cars" en ese momento). Las 927 capas del proyecto son 309 de forma y 618 de texto. Fue una decisión tomada a conciencia: formas vectoriales que escalan sin perder calidad y gráficos que copio a cualquier proyecto y funcionan a la primera, sin reconstruir nada ni arrastrar dependencias.
All the graphics are built with shape layers, hence the name: Shaping Charts (and because "Chasing Cars" was playing at the time). The project's 927 layers are 309 shape layers and 618 text layers. It was a deliberate decision: vector shapes that scale without losing quality, and charts that I copy into any project and work right away, without rebuilding anything or dragging dependencies along.

Barras anchas con esquinas totalmente redondeadas, sin trazo y opacidad completa. Wide bars with fully rounded corners, no stroke and full opacity.

Esquinas rectas, barras inclinadas con Skew, trazo marcado y relleno translúcido. Square corners, slanted bars with Skew, a strong stroke and a translucent fill.

Barras finas en escala de grises y un único color de acento para el dato destacado. Thin grayscale bars and a single accent color for the highlighted value.

Trazo grueso y relleno casi transparente sobre negro. Thick stroke and an almost transparent fill on black.
Estas imágenes salen de la misma composición y los mismos datos. No hay capas nuevas ni duplicadas, solo cambian los valores del panel de control. Ese es el punto de partida de todo el proyecto: la identidad de marca es un conjunto de parámetros, y un gráfico bien construido tiene que poder adoptar cualquiera sin romperse.
These images come from the same composition and the same data. No new or duplicated layers, only the values in the control panel change. That is the starting point of the whole project: brand identity is a set of parameters, and a well-built chart must be able to take on any of them without breaking.
Cada gráfico se maneja desde una única capa, CONTROL, organizada en grupos de pseudo efectos con nombres claros. Para editarlo no hace falta abrir ninguna capa ni tocar un keyframe: cambias un valor y el gráfico se recalcula, se reordena y se vuelve a animar. Estos son los grupos reales de la familia de barras:
Each chart is driven from a single layer, CONTROL, organized into clearly named pseudo-effect groups. Editing it doesn't require opening a layer or touching a keyframe: you change a value and the chart recalculates, reorders and re-animates itself. These are the real groups of the bars family:
La escala del gráfico y su línea media.
The chart scale and its middle line.
Tamaño y márgenes: el mismo gráfico sirve para 16:9, 1:1 o vertical.
Size and margins: the same chart works in 16:9, 1:1 or vertical.
La forma de cada barra y de su base.
The shape of each bar and its base.
El comportamiento: valores negativos, gráficos divergentes, orden y orientación.
Behavior: negative values, diverging charts, order and orientation.
Tipografía, separador decimal y una única curva de animación con retardo por elemento.
Typography, decimal separator and a single animation curve with per-item delay.
Colores por función (barras, datos, trazos, rejilla, texto, fondo) y una paleta de 30 muestras compartida por todo el proyecto.
Role-based colors (bars, data, strokes, grid, text, background) and a 30-swatch palette shared across the whole project.
Cada dato, eje y rejilla tiene sus propios ajustes: valor, decimales, unidades, color propio por dato (en las barras), separadores y retardos de entrada.
Each data point, axis and grid has its own settings: value, decimals, units, a custom color per data point (in the bar charts), separators and entry delays.
Una decisión de diseño que atraviesa todo el proyecto: no existe un control de "número de elementos". Cada barra, sector o punto sabe qué posición ocupa por su propio nombre. Si necesito una barra más, la duplico y el sistema la coloca, la escala, la colorea con la siguiente muestra de la paleta y le asigna su retardo de animación; si sobra una, la borro y el resto se redistribuye.
A design decision that runs through the whole project: there is no "number of items" control. Each bar, slice or point knows its position from its own name. If I need one more bar, I duplicate it and the system places it, scales it, colors it with the next palette swatch and assigns its animation delay; if one is too many, I delete it and the rest redistribute themselves.
Para que veas hasta dónde llega la parametrización, en cada tira solo cambia un único valor; todo lo demás se recalcula solo.
To show you how far the parametrization goes, each strip changes a single value; everything else recalculates itself.
Line Properties › Curve a 0, 50 y 100: de la línea quebrada a la curva suave, con el área siguiendo a la línea.
Line Properties › Curve at 0, 50 and 100: from a broken line to a smooth curve, with the area following the line.
Chart Properties › Section a 100, 75 y 50: el mismo anillo pasa a ser un arco o un semicírculo, y los sectores se reparten el espacio disponible.
Chart Properties › Section at 100, 75 and 50: the same ring becomes an arc or a semicircle, and the slices share the available space.
Slice Properties › Slice Width a 20, 50 y 90: del anillo fino a la tarta.
Slice Properties › Slice Width at 20, 50 and 90: from a thin ring to a pie.
Bar Properties › Roundness a 0, 15 y 35.
Bar Properties › Roundness at 0, 15 and 35.
Bar Properties › Skew a 0, 15 y 30.
Bar Properties › Skew at 0, 15 and 30.
Chart Properties › Points a 3, 5 y 8 en Independent Polygons: del triángulo al octógono.
Chart Properties › Points at 3, 5 and 8 in Independent Polygons: from triangle to octagon.

Valores a uno o ambos lados de un punto medio configurable. Values on one or both sides of a configurable midpoint.

Varias series por grupo; el hueco entre barras se reparte solo. Several series per group; the gap between bars distributes itself.

Barras apiladas con separación configurable entre bloques. Stacked bars with configurable spacing between blocks.

Un único eje protagonista. A single hero axis.

Línea, área o ambas, con curvatura, grosor y tamaño de punto ajustables. Line, area or both, with adjustable curvature, stroke and point size.

Comparativas multieje con dirección, espaciado de etiquetas y datos configurables. Multi-axis comparisons with configurable direction, label and data spacing.

Anillo o tarta, completo o parcial, con extremos redondeados y separación entre sectores. Ring or pie, full or partial, with rounded ends and spacing between slices.

Anillos concéntricos, uno por dato. Concentric rings, one per value.

Un porcentaje, un círculo y una línea de dato. One percentage, one circle and a data line.

Cada dato, una forma configurable y proporcional (círculos, engranajes, rectángulos, polígonos y estrellas) con su línea de dato y etiqueta. Each value, a custom and proportional shape (circles, gears, rectangles, polygons and stars) with its leader line and label.
La primera prueba de estrés llegó pronto. Al poco de empezar le pedí a un compañero del equipo de motion que pusiera el proyecto a prueba y, tras revisarlo, su conclusión fue: "estás loco". Acababa de ver la magnitud de lo que estaba construyendo con After Effects: "has hecho un software dentro del software". Por eso, antes de enseñarlo, quise una revisión mucho más sistemática.
The first stress test came early. Shortly after starting, I asked a teammate from the motion team to put the project to the test and, after reviewing it, his conclusion was: "you're crazy". He had just seen the scale of what I was building with After Effects: "you've built a software inside the software". That is why, before showing it, I wanted a far more systematic review.
Sometí el proyecto a una auditoría técnica con Claude: yo marcaba qué revisar y tomaba cada decisión; Claude preparaba los scripts de revisión que yo ejecutaba y validaba en After Effects. La regla era simple: ningún cambio entra si altera un solo valor que no debía alterar. Cada script mide el gráfico antes y después, en varios instantes y configuraciones, y ante cualquier diferencia revierte la composición entera.
I put the project through a technical audit with Claude: I set what to review and made every decision; Claude prepared the review scripts that I ran and validated in After Effects. The rule was simple: no change goes in if it alters a single value it shouldn't. Each script measures the chart before and after, at several points in time and setups, and at any difference reverts the entire composition.
El resultado: nombres de controles unificados entre familias, decenas de miles de comprobaciones sin diferencias y 407 comentarios revisados para que el código se explique solo. No se ve en ningún fotograma, pero se nota en todos: un proyecto que puedo entregar, editar y escalar sin miedo a que algo se rompa.
The result: control names unified across families, tens of thousands of checks with no differences and 407 comments reviewed so the code explains itself. It isn't visible in any single frame, but it shows in all of them: a project that I can deliver, edit and scale without fear of breaking anything.
"Más que animar gráficos, programo cómo se comportan. Si cambian los datos, la marca o el formato, el gráfico no se rehace: se adapta."
"Rather than animating charts, I program how they behave. If the data, the brand or the format changes, the chart isn't rebuilt: it adapts."