Manim é uma biblioteca para a linguagem de programação Python. Ela foi criada por Grant Sanderson, dono do canal de youtube 3blue1brown onde ele cria animações sobre matemática e tópicos relacionados. Mas o que é uma linguagem de programação? De forma simples, podemos definir como uma linguagem que seres humanos conseguem entender e que será traduzida para a linguagem que o computador consegue entender. E o que é uma biblioteca? Podemos definí-la como um conjunto de funcionalidades que nos ajudam a programar. No nosso caso, usaremos para criar as animações. Atualmente, existem 3 versões do manim:
ManimCairo
ManimGL
ManimCE
Para esse manual, usaremos o ManimCE pois podemos usá-lo na web, no google collab junto ao google drive sem precisar ter que instalar programas no computador. Ou seja, basta ter um conta do google drive que podemos começar a criar animmações. Mais adiante, será mostrado como instalá-lo no próprio computador.
Instalação do Manim¶
Para começar instalaremos o manim no google collab com o seguinte comando. Para executá-lo, basta clicar no botão de play ou apertar shift + enter do teclado.
In [ ]:
from IPython.display import clear_output
!sudo apt update
!sudo apt install libcairo2-dev ffmpeg texlive texlive-latex-extra texlive-fonts-extra texlive-latex-recommended texlive-science tipa libpango1.0-dev
!pip install manim
!pip install IPython --upgrade
clear_output()
Não é necessário decorar essas linhas de código. Basta copiá-las para usá-las. Aqui no google collab, cada arquivo é chamado de notebook que contém diversas células dentro dele. Cada célula pode ser código python que pode ser executado ou markdown (célula de texto).
Com a instalação feita, é necessário "reiniciar o ambiente de execução". Fazemos isso no menu superior em ambiente de execução -> Reiniciar ambiente de execução.
Primeira animação¶
Com o Manim instalado, vamos à primeira animação.
In [ ]:
from manim import *
Manim Community v0.10.0

In [ ]:
%%manim -v WARNING PrimeiraAnimacao

class PrimeiraAnimacao(Scene):
  def construct(self):
    texto = Text("Hello World!")
    self.play(Write(texto))
Your browser does not support the video tag.
Destrinchando um pouco o que está acontecendo, temos a primeira linha:
%%manim PrimeiraAnimacao
Ela é utilizada para mostrar a animação depois que a célula é executada. Sem ela, a animação não será criada e mostrada tornando o código escrito inútil. Em seguida, temos a linha:
from manim import *
Ela irá importar tudo que está dentro do manim. Agora, vamos analisar o que está no bloco de código a seguir:
class PrimeiraAnimacao(Scene):
  def construct(self):
    texto = Text("Hello World!")
    self.play(Write(texto))
Declaramos uma classe do tipo Scene. Definimos uma função chamada construct onde todas as animações serão criadas. Definimos um texto que irá aparecer na tela com Text e animamos o texto com o self.´play(Write(texto)). Não é necessário se preocupar com conceitos de classes e funções pois eles serão abordados posteriormente.