Skip to content

Recipe: Using the Manim Escape Hatch

Goal

Access and manipulate underlying Manim Mobjects directly when you need custom Manim shaders, low-level point manipulators, or specialized updater functions.


Solution

Every Animora Component provides the .manim_object property:

import manim
from animora.core import Scene
from animora.components import Shape


class ManimEscapeHatchScene(Scene):
    def construct(self) -> None:
        circle = Shape.circle(radius=1.0)

        # Access native Manim VMobject
        native_mobj = circle.manim_object

        # Apply direct Manim methods (e.g. updater or color gradient)
        native_mobj.set_color_by_gradient(manim.BLUE, manim.GREEN)

        # Play directly with scene
        self.play(manim.Rotate(native_mobj, angle=manim.PI))