ManimCommunity / ManimCommunity/manim
FadeOut does not work in Succession
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
I wanted to use a fading animation in a Succession. The idea was to have an object fade in, wait, and fade out again. However when running the animation, instead of fading in the object is present from the start, flashes and then fades out. Removing the FadeOut makes the FadeIn work correctly in the succession.
This appears to be an issue because the Succession adds all object of all animations to early.
## Expected behavior
A succession of animations A, B, C should play exactly as if A, B, C would when played in sequence. In this case the object should only appear with the FadeIn
## How to reproduce the issue
Code for reproducing the problem
```py
class SuccessionBug(Scene):
def construct(self):
triangle = Triangle()
self.play(
Succession(
Wait(1),
FadeIn(triangle),
Wait(1),
FadeOut(triangle)
)
```
## Additional media files
Images/GIFs

## System specifications
System Details
- OS (with version, e.g., Windows 10 v2004 or macOS 10.15 (Catalina)): Linux Mint 21.3
- Python version (`python/py/python3 --version`): 3.12.10
- Installed modules (provide output from `pip list`):
```
Package Version
------------------- -----------
anyio 4.9.0
av 13.1.0
backports.tarfile 1.2.0
beautifulsoup4 4.13.4
Brotli 1.1.0
build 1.2.2.post1
CacheControl 0.14.3
certifi 2025.4.26
cffi 1.17.1
charset-normalizer 3.4.2
cleo 2.1.0
click 8.2.0
cloup 3.0.7
colorama 0.4.6
crashtest 0.4.1
cryptography 45.0.2
decorator 5.2.1
distlib 0.3.9
dulwich 0.22.8
exceptiongroup 1.3.0
fastjsonschema 2.21.1
filelock 3.18.0
findpython 0.6.3
glcontext 3.0.0
h11 0.16.0
h2 4.2.0
hpack 4.1.0
httpcore 1.0.9
httpx 0.28.1
hyperframe 6.1.0
idna 3.10
importlib_metadata 8.6.1
importlib_resources 6.5.2
importmonkey 2.1.1
installer 0.7.0
isosurfaces 0.1.2
jaraco.classes 3.4.0
jaraco.context 6.0.1
jaraco.functools 4.1.0
jeepney 0.9.0
keyring 25.6.0
manim 0.19.0
ManimPango 0.6.0
mapbox_earcut 1.0.3
markdown-it-py 3.0.0
mdurl 0.1.2
moderngl 5.11.1
moderngl-window 3.1.1
more-itertools 10.7.0
msgpack 1.1.0
networkx 3.4.2
numpy 2.2.6
packaging 25.0
pbs-installer 2025.4.9
pillow 11.2.1
pip 25.1.1
pkginfo 1.12.1.2
platformdirs 4.3.8
poetry 2.1.3
poetry-core 2.1.3
pycairo 1.28.0
pycparser 2.22
pydub 0.25.1
pyglet 2.1.6
pyglm 2.8.2
Pygments 2.19.1
pyproject_hooks 1.2.0
PySocks 1.7.1
PyYAML 6.0.2
RapidFuzz 3.13.0
requests 2.32.3
requests-toolbelt 1.0.0
rich 14.0.0
scipy 1.15.2
screeninfo 0.8.1
SecretStorage 3.3.3
setuptools 80.1.0
shellingham 1.5.4
skia-pathops 0.8.0.post2
sniffio 1.3.1
soupsieve 2.7
srt 3.5.3
svgelements 1.9.6
tomli 2.2.1
tomlkit 0.13.2
tqdm 4.67.1
trove-classifiers 2025.5.9.12
typing_extensions 4.13.2
urllib3 2.4.0
virtualenv 20.31.2
watchdog 6.0.0
wheel 0.45.1
zipp 3.21.0
zstandard 0.23.0
```
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 running the provided SuccessionBug example, then inspect the Succession, FadeIn, and FadeOut entry points to determine why the object appears before FadeIn. Done means the same sequence plays as separate animations, with the object appearing only during FadeIn and disappearing during FadeOut.
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
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100