From 12fbb8935a49a255126b4952ad7fa260f2eefd4a Mon Sep 17 00:00:00 2001 From: Taksh Date: Tue, 30 Jun 2026 23:01:43 +0530 Subject: [PATCH] fix(creation): honor suspend_mobject_updating in Create/Uncreate ShowPartial rebuilds the mobject each frame from starting_mobject via pointwise_become_partial. begin() only suspended self.mobject, so the reference copy's updaters kept running and their drift leaked back into the result, making suspend_mobject_updating a no-op. Suspend the starting_mobject too when the flag is set. Fixes #4763 Co-authored-by: Cursor --- manim/animation/creation.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/manim/animation/creation.py b/manim/animation/creation.py index f79b6ec197..3da7d443a6 100644 --- a/manim/animation/creation.py +++ b/manim/animation/creation.py @@ -123,6 +123,15 @@ def __init__( raise TypeError(f"{self.__class__.__name__} only works for VMobjects.") super().__init__(mobject, **kwargs) + def begin(self) -> None: + super().begin() + # Each frame is rebuilt from starting_mobject via pointwise_become_partial, + # so its updaters must also be suspended; otherwise they keep mutating the + # reference copy and leak back into the result, ignoring + # suspend_mobject_updating (#4763). + if self.suspend_mobject_updating and self.starting_mobject is not None: + self.starting_mobject.suspend_updating() + def interpolate_submobject( self, submobject: Mobject,