Community Meeting 2022-01-08

Manim Community Meeting

08. January 2022

Agenda

  1. Updates from the Manim community organisation
  2. Overall goals for Manim
  3. Road to Manim v1.0
  4. Any other business + space for open discussions

How does this meeting work?

  • No screen sharing in Discord stage channels, visuals via twitch.tv/behackl (mute if listening / talking via Discord)
  • Otherwise: everything very relaxed, core devs will give input to items on agenda, everyone is welcome to comment and participate
  • To participate: request to get "on stage" to speak, or use #meeting-chat / Twitch chat

Updates from community organisation

  • Updated organisation governance: elected steering council!
  • Manim is now affiliated to NumFOCUS
  • Funding
    • New OpenCollective account for managing donations
    • Current expenses: manim.community domain, manimator Discord bot
    • Ideas for future expenses: server, backups / backhub, paid GitHub plan for more CI?
    • Far-away goal: (part-time) paid devs
Please let us know if you know of further funding opportunities!

Goals for Manim

  • We want Manim to be "TeX for mathematical videos".
  • Important features: easy to use(hard to master?), batteries included, programmatic, ...?
  • Relationship with 3b1b/manim a.k.a. manimgl?
  • How important are 2D animations vs 3D animations? Interactivity? Custom plugins?
  • Which other (Python) libraries (e.g., matplotlib) would you like to see interfaces to?
  • What should the library try to accomplish?

Road to Manim v1.0

Current situation: bad

  • Manim Community = Grant's old cairo code + manimgl mashed together, plus new features / bugfixes / polishing by community devs
  • Current mobject class structure, thanks to Citrusmunch: click here
  • Roadmap in our Wiki

Refactor to the rescue: some suggestions

  • Maintenance mode: freeze merging of PRs introducing new features for a while, focus development on cleaning up + unifying core concepts between cairo and OpenGL renderer backend
  • Development happens on separate branch, tests are allowed to be broken there
  • Merging code to development branch without review?
  • Continued maintenance on main branch? Should we continue to have monthly bugfix releases?
  • What happens to currently open PRs?

Fix core concepts, a very top-level overview

  • Mobject: Unify Mobject / OpenGLMobject, VMobject / OpenGLVMobject. Remove Metaclass.
  • Renderer: should have an abstract base class which specifies the interface for new rendering backends.
  • Scene: should be renderer implementation agnostic.
  • Camera: send help cairo Camera needs rework, details to be discussed

Experimental external C++ rendering backend: Maki

  • Link to Maki
  • Not set in stone whether Manim will fully integrate it, but interesting experiment
  • Walkthrough by Chris 👏

Any other business / open space for discussions

Thanks for participating!