Diez Monet
10 óleos · dominio público · Wikimedia CommonsEntre ellas, «La Gare Saint-Lazare» (1877). El borde difuso de la pincelada de Monet reduce el contraste entre masas de color, lo que facilita la metamorfosis.
Motor propio en Python: clusterización de color, transporte óptimo y splines de distancia con signo resuelven la metamorfosis entre pinturas.
- Formato
- 1350 × 1080 px @ 60 fps
- Duración
- 40 s, lazo bit-exacto
- Obras
- 10 óleos de Monet
- Motor
- río continuo v6 + meandro
- Metamorfosis
- spline de SDF (forma_spline)
- Masas de color
- k=13, mean-shift + watershed
- Mezcla de color
- Kubelka-Munk (sustractiva)
- Verificación
- flujo óptico DIS ≥ 0,5× mediana
- Cómputo
- CPU / GPU Apple Silicon
- Reproducibilidad
- determinista por semilla
Ver el procedimiento completo
- 01
Orden de la serie
Las diez obras se ordenan maximizando la afinidad cromática entre pinturas consecutivas: un camino óptimo resuelto de forma exacta (Held-Karp).
- 02
Masas de color
Mean-shift aplana la textura del lienzo, k-means agrupa por color en espacio Lab, y watershed ajusta cada masa al contorno de la pincelada.
- 03
Correspondencia
Entre cada par de pinturas, transporte óptimo (algoritmo húngaro) decide qué masa se convierte en cuál, admitiendo divisiones y fusiones.
- 04
Líneas de mundo
Las correspondencias se encadenan en toda la secuencia: cada masa tiene una trayectoria propia que atraviesa las diez pinturas.
- 05
El meandro
Un planificador por programación dinámica —algoritmo propio del proyecto— elige la velocidad de cruce de cada masa: continuidad exacta de posición y rapidez.
- 06
Metamorfosis
El cambio de silueta se calcula con campos de distancia con signo (SDF) interpolados a tasa constante: velocidad de deformación constante, sin aceleración ni frenado.
- 07
Mezcla de pigmento
Los colores de tránsito se mezclan con el modelo físico Kubelka-Munk —mezcla sustractiva—, no con el fundido aditivo de video.
- 08
Flujo perpetuo
Un campo de curl noise mantiene el lienzo en movimiento continuo: ningún frame es estático.
- 09
El lazo
El primer y el último frame son idénticos bit a bit: reproducido en loop, el video es un ciclo sin costura.
- 10
Verificación medida
Cada render se audita con flujo óptico frame a frame; si la velocidad cae de la mitad de la mediana, el render se rechaza.
Diez Van Gogh
10 óleos · dominio público · Wikimedia CommonsEntre ellas, «La noche estrellada sobre el Ródano» (1888). El mismo algoritmo funciona con el empaste grueso de Van Gogh, sin ajustes adicionales.
Motor propio en Python: clusterización de color, transporte óptimo y splines de distancia con signo resuelven la metamorfosis entre pinturas.
- Formato
- 1350 × 1080 px @ 60 fps
- Duración
- 40 s, lazo bit-exacto
- Obras
- 10 óleos de Van Gogh
- Motor
- río continuo v6 + meandro
- Metamorfosis
- spline de SDF (forma_spline)
- Masas de color
- k=13, mean-shift + watershed
- Mezcla de color
- Kubelka-Munk (sustractiva)
- Verificación
- flujo óptico DIS ≥ 0,5× mediana
- Cómputo
- CPU / GPU Apple Silicon
- Reproducibilidad
- determinista por semilla
Ver el procedimiento completo
- 01
Orden de la serie
Las diez obras se ordenan maximizando la afinidad cromática entre pinturas consecutivas: un camino óptimo resuelto de forma exacta (Held-Karp).
- 02
Masas de color
Mean-shift aplana la textura del lienzo, k-means agrupa por color en espacio Lab, y watershed ajusta cada masa al contorno de la pincelada.
- 03
Correspondencia
Entre cada par de pinturas, transporte óptimo (algoritmo húngaro) decide qué masa se convierte en cuál, admitiendo divisiones y fusiones.
- 04
Líneas de mundo
Las correspondencias se encadenan en toda la secuencia: cada masa tiene una trayectoria propia que atraviesa las diez pinturas.
- 05
El meandro
Un planificador por programación dinámica —algoritmo propio del proyecto— elige la velocidad de cruce de cada masa: continuidad exacta de posición y rapidez.
- 06
Metamorfosis
El cambio de silueta se calcula con campos de distancia con signo (SDF) interpolados a tasa constante: velocidad de deformación constante, sin aceleración ni frenado.
- 07
Mezcla de pigmento
Los colores de tránsito se mezclan con el modelo físico Kubelka-Munk —mezcla sustractiva—, no con el fundido aditivo de video.
- 08
Flujo perpetuo
Un campo de curl noise mantiene el lienzo en movimiento continuo: ningún frame es estático.
- 09
El lazo
El primer y el último frame son idénticos bit a bit: reproducido en loop, el video es un ciclo sin costura.
- 10
Verificación medida
Cada render se audita con flujo óptico frame a frame; si la velocidad cae de la mitad de la mediana, el render se rechaza.
Mármol
políptico de 3 paneles · simulación física · sin referencia pictóricaSin pintura de referencia: la paleta usa tres colores base —amarillo, verde, azul— más un acento rojo que la simulación restringe al tramo final de la acumulación.
Simulación de fluidos 2D con deposición de tinta estilo ebru. Sin pincelada ni textura importada: el resultado depende solo del solver físico y del guion de eventos.
- Formato
- 1080 × 1350 px @ 30 fps
- Duración
- 90 s, arco de tensión sin loop
- Estructura
- políptico de 3 paneles verticales
- Motor
- mármol ebru r7 (fluido de Stam)
- Paleta
- fija — amarillo/verde/azul + acento
- Advección
- MacCormack con clamp + vorticidad confinada
- Clímax
- pulso radial + tormenta (masa conservada)
- Semilla
- 23, tren de eventos determinista
- Cómputo
- CPU / GPU Apple Silicon
- Reproducibilidad
- determinista por semilla
Ver el procedimiento completo
- 01
Arranque en blanco
El papel comienza vacío: un retraso de 1,5 s impide que caiga la primera gota antes de ese punto. No hay fundido de entrada.
- 02
Acumulación programática
Un proceso de Poisson no homogéneo dispara las gotas: la tasa crece de 0,25 a 3 eventos por segundo. Los tres paneles parten desincronizados y convergen hacia el clímax.
- 03
Gota ebru
Cada impacto desplaza la tinta ya depositada con un remap analítico del marmoleado turco (ebru), en vez de depositar color nuevo encima: se abren anillos concéntricos desde el centro del impacto.
- 04
Paleta por época
Las gotas tempranas depositan pigmento rebajado y arman el fondo de mezcla; solo en los 18 s previos al clímax el pigmento llega pleno, para que el color no termine mezclado a un verde uniforme tras 66 s de acumulación.
- 05
Fluido de Stam
Advección semi-lagrangiana y proyección de presión por Jacobi resuelven la velocidad; la tinta viaja con esquema MacCormack más un clamp que impide el overshoot: bordes nítidos, sin vetas difusas.
- 06
Curl noise de fondo
Una función de corriente de ruido multioctava, libre de divergencia por construcción, mueve el lienzo desde antes de la primera gota.
- 07
Clímax
Un pulso radial redistribuye hacia los bordes la tinta acumulada en cada panel; la tormenta de vorticidad que sigue la vuelve filamentosa fina, conservando la masa de pigmento en cada paso: el pigmento se reordena, no se pierde.
- 08
Reposo
La velocidad decae con amortiguación exponencial fuerte: en 1,1 s la simulación se congela y el marmoleado de la tormenta queda fijo, sin difundirse a vetas laminares.
- 09
Secado
Un escalar determinista profundiza y satura el cuadro ya congelado. No hay advección ni remap adicional: el patrón de la tormenta queda intacto.
- 10
Composición
El políptico de tres paneles se monta sobre textura de papel procedural, con viñeta, grano de película y dithering triangular antes de cuantizar a 8 bits.