Animación vectorial · Python · GPU

Anima ideas con código

Gaanim describe escenas en Python, las muestra en vivo mientras escribes y las renderiza con trazos vectoriales en la GPU, listas para exportar a video.
Escenas en PythonUna API fluida: setters inmediatos para el estado y .animate para describir el tiempo.
Vectores en la GPUVello sobre Bevy: trazos nítidos a cualquier resolución y vista previa con recarga al guardar.
Texto y matemáticasTipografía y ecuaciones con Typst, animables glifo a glifo con write.
Exporta a videoMP4, WebM con transparencia, WebP, GIF y secuencias PNG desde la misma escena.

Empieza en tres pasos

1Instala y crea un proyectoDescarga el ejecutable gaanim y crea un proyecto con gaanim init video mi-video. Ver instalación.
2Escribe la escenaEdita main.py: crea objetos con scene.geometry y descríbelos en el tiempo con .animate y scene.play.
3Previsualiza y exportagaanim . abre la vista previa con recarga al guardar; gaanim export . --output video.mp4 genera el archivo final.

Tu primera escena

La escena mide 16 × 9 unidades lógicas con el origen en el centro. Cada animación se describe con .animate y se programa con scene.play:

from gaanim import BLUE, GOLD, WHITE, Easing, Scene

scene = Scene(frame=(16, 9), background="#0f172a")
title = scene.text("Hola, Gaanim", role="title").fill(WHITE).move_to(0, 3)
circle = scene.geometry.circle(1.2).fill(BLUE).move_to(-3, -0.5)
arrow = scene.geometry.arrow(-1.4, -0.5, 1.4, -0.5).fill(GOLD).stroke(GOLD, 0.02)
square = scene.geometry.rect(2.4, 2.4).fill(GOLD).move_to(3, -0.5)

scene.play([title.animate.write().duration(1.0)])
scene.play([
    circle.animate.create().duration(1.0),
    arrow.animate.create().duration(1.0),
    square.animate.grow_from_center().duration(1.0).easing(Easing.SMOOTH),
])
scene.play([circle.animate.shift_by(0, 1).duration(0.6)])
scene.render()
animation preview

Elige por dónde seguir