유튜브에서 수학 관련 영상 채널로 유명한 곳 중 하나로 3blue1brown(3b1b)이 있다. 정확한 설명과 잘 만들어진 영상이 그 채널의 특징이다. 만약 여러분이 그 채널의 영상과 같은 영상을 직접 제작하고싶다면? 매님(Manim)을 사용하면 된다.

매님은 Math와 Animation을 합성해서 만든 이름으로, 3blue1brown채널을 운영하는 Grant Sanderson이 자신의 유튜브 영상 제작에 사용하기 위해 시작된 프로젝트다. 그의 채널이 점점 유명세를 타면서, 그의 프리젠테이션 방식을 도입하고 싶어하는 많은 사람들이 생겨났다. 하지만, 매님이 개인 프로젝트를 위해 개발된 것이어서 다양한 사람들의 환경에 적합하도록 만드는 것은 쉬운 일이 아니었다. 대중적으로 사용할 수 있도록 만들기 위해 많은 개발자들이 자원을 했고, 그렇게 해서 매님의 대중적 버전인 ManimCE가 만들어졌다.

매님을 사용하기 위해 인터넷 검색을 해보면 많은 자료들을 발견할 수 있으나, 매님의 버전간 호환성이 아직 좋지 않기 때문에 반드시 공식 사이트에서 버전 확인을 하고 설치를 시작해야 한다. 안그러면 시스템이 뒤죽박죽이 되어 설치가 복잡해지기만 할 것이고, 최악의 경우 구동도 해 보지 못할 수 있다.

현재 사용 가능한 매님의 버전을 세 종류가 있다.

  • ManimCairo
  • ManimCE
  • ManimGL

ManimCairo는 2019년 이전에 제작된 Manim의 소스코드를 컴파일 하기 위해 남겨놓은 것으로, 처음 시작하는 사람들에게는 필요없는 버전이다.

ManimGL은 가장 최신버전의 Manim이다. 하지만, 기능에 대한 설명이 문서화가 잘 되어있지 않아 처음 시작하는 사람들에게는 접근이 어렵다.

처음 사용자는 ManimCE를 사용하는 것이 좋다. 이 문서 제일 아래에 있는 매님 커뮤니티 링크를 따라가면 Manim의 설치와 사용법에 대해 잘 구성된 문서를 얻을 수 있다.

Manim과 Jupyter

ManimCE, ManimGL을 Jupyter notebook이나 Jupyter lab에서 구동하면 좀 더 편한 환경에서 작업을 할 수 있다. ManimCE의 경우, 다음과 같이 manim을 불러오면 버전명이 출력된다.

from manim import *

그후 다음과 같은 방식으로 manim 코드 실행결과를 화면에서 바로 확인할 수 있다.(-qh는 해상도 옵션으로, manimCE 공식 사이트에서 다른 옵션을 확인할 수 있다. 중요한 것은 이 옵션이 반드시 중간에 있어야 한다는 것이다.)

%%manim -qh Animation

class Animation(Scene):
    def construct(self):
        circle = Circle()
        self.play(Create(circle))
        self.wait()

(아래 그림은 분명히 animated gif인데 자동재생이 안되네요 ㅠㅠ 그림을 클릭하면 제대로 보이기는 합니다)

 

출력 화면이 작아서 불편하면 다음과 같이 config 옵션을 조절해주면 된다.

%%manim -qh Animation

config.media_width = '100%'

class Animation(Scene):
    def construct(self):
        circle = Circle()
        self.play(Create(circle))
        self.wait()

링크

매님 커뮤니티

https://docs.manim.community/en/stable/index.html

매님GL 공식 사이트

https://3b1b.github.io/manim/index.html

+ Recent posts