ManimCommunity / ManimCommunity/manim

FadeOut does not work in Succession

Open
#4,257 1 comment 2 reactions 0 assignees View on GitHub

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

![Image](https://github.com/user-attachments/assets/4ac396b6-75fd-483f-9b9c-03c4f7ce75f7)

## 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

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.