Diez Monet

10 óleos · dominio público · Wikimedia Commons

Entre 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.

Ficha técnica

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
  1. 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).

  2. 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.

  3. 03

    Correspondencia

    Entre cada par de pinturas, transporte óptimo (algoritmo húngaro) decide qué masa se convierte en cuál, admitiendo divisiones y fusiones.

  4. 04

    Líneas de mundo

    Las correspondencias se encadenan en toda la secuencia: cada masa tiene una trayectoria propia que atraviesa las diez pinturas.

  5. 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.

  6. 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.

  7. 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.

  8. 08

    Flujo perpetuo

    Un campo de curl noise mantiene el lienzo en movimiento continuo: ningún frame es estático.

  9. 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. 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 Commons

Entre ellas, «La noche estrellada sobre el Ródano» (1888). El mismo algoritmo funciona con el empaste grueso de Van Gogh, sin ajustes adicionales.

Ficha técnica

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
  1. 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).

  2. 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.

  3. 03

    Correspondencia

    Entre cada par de pinturas, transporte óptimo (algoritmo húngaro) decide qué masa se convierte en cuál, admitiendo divisiones y fusiones.

  4. 04

    Líneas de mundo

    Las correspondencias se encadenan en toda la secuencia: cada masa tiene una trayectoria propia que atraviesa las diez pinturas.

  5. 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.

  6. 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.

  7. 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.

  8. 08

    Flujo perpetuo

    Un campo de curl noise mantiene el lienzo en movimiento continuo: ningún frame es estático.

  9. 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. 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órica

Sin 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.

Ficha técnica

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
  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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. 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.