ManimCommunity / ManimCommunity/manim
Create() does not suspend Mobject updating
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 40.9k
- Forks
- 3.1k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 25
Description
## Description of bug / unexpected behavior
When calling `Create(mobj)`, updaters on `mobj` continue running even though the default value of the parameter `suspend_mobject_updating` in `Animation`(which `Create` is a descendant of) is `True`. This means that setting `suspend_mobject_updating` effectively does nothing, which I am fairly certain is not intended behavior.
## Expected behavior
What I expected is for any updaters on the `mobj` passed to `Create` to be paused while `Create(mobj)` is occurring.
## How to reproduce the issue
The issue can be reproduced by adding an updater to any `Mobject`, then calling `Create(mobj)`. For comparison, calling `Create(mobj, suspend_mobject_updating=False` will give the same result, even though it shouldn't.
Code for reproducing the problem
```py
from manim import *
class CreateUpdaterBug(Scene):
def construct(self):
dot = Dot()
def mobj_updater(mobj, dt):
mobj.shift(RIGHT * dt)
dot.add_updater(mobj_updater)
dot1 = dot.copy().shift(UP).to_edge(LEFT, buff=0.1).set_color(RED)
dot2 = dot.copy().shift(DOWN).to_edge(LEFT, buff=0.1).set_color(GREEN)
self.play(Create(dot1, suspend_mobject_updating=False), Create(dot2, suspend_mobject_updating=True), run_time=4)
self.wait(4)
```
## Additional media files
Images/GIFs
Notice how the shifting updater continues throughout the `Create` animation, even though the lower dot has `suspend_mobject_updating` set to `True`.
## Logs
Terminal output
```
PS C:\Users\julia\manimStuff> manim -v DEBUG -pqk temp.py CreateUpdaterBug
Manim Community v0.20.1
[06/02/26 17:16:03] DEBUG Hashing ... hashing.py:360
DEBUG Hashing done in 0.004433 s. hashing.py:372
DEBUG Hash generated : 34461856_3556613001_223132457 hashing.py:375
INFO Animation 0 : Using cached data (hash : cairo_renderer.py:94
34461856_3556613001_223132457)
DEBUG List of the first few animation hashes of the cairo_renderer.py:103
scene: ['34461856_3556613001_223132457']
DEBUG Animation with empty mobject animation.py:185
DEBUG Hashing ... hashing.py:360
DEBUG Hashing done in 0.003761 s. hashing.py:372
DEBUG Hash generated : 3166950890_1118930784_8613154 hashing.py:375
DEBUG List of the first few animation hashes of the cairo_renderer.py:103
scene: ['34461856_3556613001_223132457',
'3166950890_1118930784_8613154']
[06/02/26 17:16:15] INFO Animation 1 : Partial movie file written in scene_file_writer.py:601
'C:\Users\julia\manimStuff\media\videos\temp\2160p60\partial_movie_files\CreateUpdaterB
ug\3166950890_1118930784_8613154.mp4'
INFO Combining to Movie file. scene_file_writer.py:753
DEBUG Partial movie files to combine (2 files): scene_file_writer.py:635
['C:\\Users\\julia\\manimStuff\\media\\videos\\temp\\2160p60\\partial_movie_files\\Crea
teUpdaterBug\\34461856_3556613001_223132457.mp4',
'C:\\Users\\julia\\manimStuff\\media\\videos\\temp\\2160p60\\partial_movie_files\\Creat
eUpdaterBug\\3166950890_1118930784_8613154.mp4']
INFO scene_file_writer.py:904
File ready at
'C:\Users\julia\manimStuff\media\videos\temp\2160p60\CreateUpdaterBug.mp4'
INFO Rendered CreateUpdaterBug scene.py:278
Played 2 animations
[06/02/26 17:16:16] INFO Previewed File at: 'C:\Users\julia\manimStuff\media\videos\temp\2160p60\CreateUpdaterBug.mp4' file_ops.py:236
PS C:\Users\julia\manimStuff>
```
## System specifications
System Details
- OS (with version, e.g., Windows 10 v2004 or macOS 10.15 (Catalina)): Windows 11 v25H2
- RAM: 32 GB
- Python version (`python/py/python3 --version`): Python 3.14.2
- Installed modules (provide output from `pip list`):
```
Package Version
------------------ ------------
argcomplete 3.6.3
audioop-lts 0.2.2
av 16.1.0
beautifulsoup4 4.14.3
certifi 2026.2.25
charset-normalizer 3.4.7
click 8.3.1
cloup 3.0.8
colorama 0.4.6
contourpy 1.3.3
cycler 0.12.1
decorator 5.2.1
filelock 3.20.0
fonttools 4.61.1
fsspec 2025.12.0
glcontext 3.0.0
idna 3.11
isosurfaces 0.1.2
Jinja2 3.1.6
joblib 1.5.3
kiwisolver 1.4.9
manim 0.20.1
ManimPango 0.6.1
mapbox_earcut 2.0.0
markdown-it-py 4.0.0
MarkupSafe 2.1.5
matplotlib 3.10.8
mdurl 0.1.2
moderngl 5.12.0
moderngl-window 3.1.1
mpmath 1.3.0
narwhals 2.15.0
networkx 3.6.1
numpy 2.4.1
packaging 26.0
pandas 3.0.0
patsy 1.0.2
pillow 12.0.0
pip 26.0.1
pipx 1.8.0
platformdirs 4.5.1
plotly 6.5.2
pycairo 1.29.0
pydub 0.25.1
pyglet 2.1.12
pyglm 2.8.3
Pygments 2.19.2
pyparsing 3.3.2
python-dateutil 2.9.0.post0
requests 2.33.1
rich 14.3.1
scikit-learn 1.8.0
scipy 1.17.0
screeninfo 0.8.1
seaborn 0.13.2
setuptools 70.2.0
six 1.17.0
skia-pathops 0.9.1
soupsieve 2.8.3
srt 3.5.3
statsmodels 0.14.6
svgelements 1.9.6
sympy 1.14.0
threadpoolctl 3.6.0
torch 2.10.0+cu130
torchvision 0.25.0+cu130
tqdm 4.67.2
typing_extensions 4.15.0
tzdata 2025.3
urllib3 2.6.3
userpath 1.9.2
watchdog 6.0.0
```
LaTeX details
+ LaTeX distribution (e.g. TeX Live 2020): MiKTeX-pdfTeX 4.18 (MiKTeX 24.1)
+ Installed LaTeX packages: Likely not relevant, but will include if someone asks.
## Additional comments
Is it possible that this could affect other animation methods like `FadeIn` or `DrawBorderThenFill`?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inspecting Create and its Animation base class, focusing on how suspend_mobject_updating is handled during playback. Run the CreateUpdaterBug reproduction from the issue with both parameter values, then locate the existing animation tests. Done means the updater is paused when the parameter is True, continues when it is False, and related animation behavior is covered by a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100