Manim, un motor de animación para videos matemáticos explicativos
(github.com/3b1b)- Manim es un motor de animación preciso basado en programación para crear videos explicativos de matemáticas
- Es un proyecto desarrollado por el autor de 3Blue1Brown para sus propios videos educativos
- También existe una versión fork de la comunidad, que ha seguido evolucionando en usabilidad, contribuciones y pruebas
- Funciona sobre Python y requiere varias dependencias del sistema como FFmpeg, OpenGL y LaTeX
- Es código abierto (licencia MIT), por lo que cualquiera puede usarlo y contribuir libremente
La importancia y ventajas del proyecto Manim
- Manim es un motor de animación de código abierto desarrollado para explicar de forma visual y efectiva conceptos de matemáticas y ciencia
- A diferencia de otras herramientas de video, permite crear animaciones precisas basadas en código, lo que le da una gran ventaja para visualizar paso a paso ideas matemáticas complejas
- Está operado directamente por 3Blue1Brown y se considera una herramienta única que incorpora experiencia y know-how de producción de videos educativos
- Además, una versión fork de la comunidad se desarrolla activamente por separado, lo que permite una estructura amigable para desarrolladores y una rápida incorporación de diversas mejoras
Resumen del proyecto
- Manim es un motor de animación programable de alta precisión para explicaciones matemáticas, con el que se pueden implementar libremente fórmulas, figuras y desarrollos conceptuales complejos en video
- Originalmente comenzó como una herramienta para la producción de videos educativos de 3Blue1Brown, y el código específico relacionado también se publica en un repositorio aparte
- En 2020 se creó un fork comunitario para que más personas pudieran usarlo fácilmente, formando un ecosistema con mejoras en estabilidad, contribuciones de la comunidad y pruebas
Características principales y requisitos
- Se divide en ManimGL (original) y Manim Community Edition (fork de la comunidad)
- Como la instalación y el uso difieren según la versión, conviene elegir de antemano cuál se quiere usar
- Al instalar con pip, la versión original puede instalarse mediante el nombre de paquete manimgl
- Requiere Python 3.7 o superior y también puede necesitar FFmpeg, OpenGL, y en ciertos entornos, LaTeX y Pango para Linux
Guía de uso (ejemplo)
- Incluye ejemplos de código, archivos de escenas y comandos de ejecución
- Se pueden revisar y aprovechar varias escenas de ejemplo, la documentación y también el código específico usado en videos reales de 3Blue1Brown
- Al ejecutarlo desde la línea de comandos ofrece varias banderas para
- guardar archivos de salida, omitir escenas completas, ejecutar en pantalla completa y admitir diferentes modos de salida y entornos personalizados
- El archivo
custom_config.ymlpermite configurar en detalle aspectos como estilo, calidad y rutas
Documentación y contribuciones
- La documentación oficial se ofrece en un sitio aparte, y también hay disponible una versión en chino y recursos adicionales de personalización
- Como buen proyecto de código abierto, da una bienvenida activa a los pull requests y a las contribuciones de la comunidad
- Se distribuye bajo licencia MIT, por lo que cualquiera puede modificarlo y redistribuirlo libremente
Información técnica y estadísticas
- Está compuesto principalmente por Python (96.3%) y GLSL (3.7%), entre otros lenguajes
- Con más de 80 mil estrellas en GitHub y 6,800 forks, muestra una gran popularidad y participación de la comunidad
- Hay más de 167 colaboradores activos
Resumen
- Manim es un motor de animación programable especializado en visualizaciones precisas y detalladas de matemáticas y ciencia
- Es muy útil para creadores de videos educativos, especialistas en visualización de datos y desarrolladores que necesitan animaciones basadas en código
- Su curva de aprendizaje rápida, entorno personalizable y libertad para contribuir junto con el crecimiento de la comunidad son diferenciadores importantes
1 comentarios
Comentarios de Hacker News
Últimamente he comprobado que funciona de forma realmente eficaz junto con asistentes de programación; con prompts como “necesito un diagrama donde la ecuación X se transforme en Y” casi siempre obtengo el resultado que quería a la primera. Creo que esto se debe a que aprendieron de una sintaxis simple y de muchísimos ejemplos open source de manim. Me parece un gran ejemplo de cuánto tiempo pueden ahorrar los agentes de código con IA. Mientras el video final salga bien, no hace falta preocuparse mucho por el proceso detallado, así que ese enfoque resulta más cómodo.
Recuerdo haber escuchado en un pódcast con Grant Sanderson que él probó generar código de manim automáticamente con LLM, pero comentó que el resultado no fue muy bueno. Al final, creo que eso significa que hay una gran diferencia entre el nivel de dominio o el estándar que nosotros imaginamos y el que tiene Grant.
Me pregunto qué pasaría si se combinara con una función de RAG sobre la documentación.
He usado Manim para presentaciones de clase y fue una experiencia realmente divertida. Mucha gente reconoció ese estilo, la presentación recibió muy buenos comentarios y, además, tuve la suerte de conocer a Grant en persona hace unos años. Cuando le dije que había usado Manim, se puso genuinamente feliz, y eso me impresionó. Es una gran persona que contribuye muchísimo al conocimiento y la comprensión de la humanidad.
Creo que 3b1b es de verdad una maravilla del internet. Sus animaciones son bellísimas y sus explicaciones están cuidadosamente pulidas, algo que siempre me deja admirado. Pero hay una cosa que no entiendo: ¿por qué una sola librería puede implementar en animación conceptos tan variados? Parece que todo debería ser trabajo personalizado hecho a mano, aunque quizá Grant trabaja desde un nivel más alto de pensamiento matemático.
Para la mayoría de la gente, creo que el enlace a la versión fork de la comunidad sería más apropiado: Manim Community GitHub
El proyecto que hizo Grant es realmente sobresaliente, porque no es solo un mantenedor de una librería open source, sino alguien que realmente se preocupa por ese dominio, tiene experiencia en él y desarrolla y mantiene la herramienta porque no existía algo adecuado para su aplicación real. En cambio, creo que el fork de la comunidad, al intentar construir infraestructura y adaptarse a muchos casos de uso en vez de ajustarse bien a su propósito original, termina alejándose cada vez más de ese objetivo y sacrificando la experiencia de usuario. Lo veo como la diferencia entre una herramienta hecha por un desarrollador experto para hacer su propio trabajo y un fork mantenido solo para conservarlo y promocionarlo.
Me pregunto si el fork se hizo por una buena razón o solo por alguna controversia. Leí la explicación sobre el fork, pero no me queda claro el motivo exacto, considerando que Grant sigue manteniendo el original.
Llevo tiempo buscando con ganas un renderizador de animaciones basado en código que se enfoque no en matemáticas sino en infografías, gráficas y motion graphics en general. Los métodos existentes son After Effects, Davinci Fusion, Blender, Cavalry, etc., pero desde que conocí PovRay hace años y luego Manim, no puedo sacarme de la cabeza la idea de una herramienta de motion graphics basada en código o texto. Siento que brillaría si se combina con LLM. Últimamente han salido servicios de motion graphics basados en ChatGPT, pero más que ese tipo de generadores web de video, lo que yo quiero es una herramienta con código o lenguaje de plantillas que permita renderizar repetidamente cualquier dato, incluso offline o dentro de automatizaciones.
Cuando probé Manim hace unos 4 años, sufría tanto de
kwargs-itisque prácticamente todos los parámetros estaban puestos como kwargs y ni siquiera se podían usar anotaciones de tipos, así que era innecesariamente difícil de usar. Intenté impulsar mejoras, pero no obtuve mucha respuesta, así que me pregunto cómo habrá cambiado recientemente.Como este proyecto aparece con frecuencia en HN y suele generar buenas discusiones, dejo un enlace de búsqueda en lugar de un enlace a una sola discusión: resultados de búsqueda de manim en HN
Me pregunto si existe alguna awesome list para ver de un vistazo el software relacionado con manim. Dejo algunos recursos abajo.
Según entiendo, en HN normalmente no se permiten duplicados del mismo enlace. Me pregunto si sí se puede volver a enviar uno repetido.
Dejo una recopilación de discusiones antiguas de HN y enlaces de Show HN relacionados con Manim.
Lo que Grant ha logrado con 3blue1brown y Manim es realmente impresionante. Gracias a la alta calidad de los videos y a las visualizaciones, incluso temas abstractos se vuelven fáciles de entender. Ya se menciona en el README, pero de verdad quiero recomendar el video demo donde Grant muestra su proceso de trabajo con Manim (enlace de YouTube).
Es un proyecto realmente genial, y en cuanto lo vi pensé de inmediato en aquel impactante video Animation vs Math, así que hice clic: Animation vs Math en YouTube. Me gustan las matemáticas, pero siento que mostrar gráficos gigantes no siempre es necesariamente una buena forma de presentarlas a la gente.