ManimCommunity / ManimCommunity/manim

personal opinion: your code is bad!

Open
#2,380 17 comments 9 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

needs discussion
Dominant language
Python
Stars
40.9k
Forks
3.1k
Avg merge
3d 12h
Merged PRs (30d)
25

Description

- hard to read
- use decoratior and metaclass
- 3 types of renderer, cairo/opengl/webgl, BaseRenderer/SubRenderer, Scene/Renderer/MObject, the author of the related code seems superior, using lots of fancy grammer, trying to seperate things up(trying to implement the Factory mode), but the truth is that there are lots of cross-reference. I just wonder how you gonna maintain this mess in the future.

- bad documentation
- many popular python library use auto-generated api reference, which is based on doc-comment of each functio/class/module, BUT your api reference seems to be handwitten line by line.
- tutorials are mostly based on example, there are no documentation introducing pipeline or best-practice or other deeper topic like how you implemented the gpu acceleration. Or maybe your team think the user just need to know how to write construct() function and put all the needed lego blocks(different MObject/Animation) together.

The result is: the potential developer/contributor interested in core function(like rendering process) may get blocked away. It seems that what contributors can do nowadays is some documentation-editing staff only, which souds sucks.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by reviewing the renderer layers (cairo/OpenGL/WebGL), Scene/Renderer/MObject relationships, and the API reference and tutorials; a contributor would first need to narrow this into a specific, agreed change before completion can be defined.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
computer-graphics, documentation
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.