# Scenes in Manim Scenes are the canvas for your animations. All Manim code is organized within Scene classes, and each scene represents a complete animation sequence. ## Basic Scene Structure ```python from manim import * class MyScene(Scene): def construct(self): # All animation code goes here circle = Circle() self.play(Create(circle)) self.wait(1) ``` ## Scene Types Manim provides different scene types for different purposes: ### Standard Scene ```python class BasicScene(Scene): def construct(self): text = Text("Hello, Manim!") self.play(Write(text)) self.wait(2) ``` ### Moving Camera Scene For scenes with camera movement: ```python class CameraScene(MovingCameraScene): def construct(self): circle = Circle() self.play(Create(circle)) # Zoom in on the circle self.play(self.camera.frame.animate.scale(0.5)) self.wait(1) ``` ### 3D Scene For three-dimensional animations: ```python class ThreeDExample(ThreeDScene): def construct(self): axes = ThreeDAxes() sphere = Sphere() self.set_camera_orientation(phi=75 * DEGREES, theta=30 * DEGREES) self.play(Create(axes), Create(sphere)) self.begin_ambient_camera_rotation(rate=0.1) self.wait(5) ``` ## Adding and Removing Mobjects ```python class AddRemoveScene(Scene): def construct(self): circle = Circle() square = Square() # Add without animation self.add(circle) self.wait(1) # Add with animation self.play(Create(square)) self.wait(1) # Remove without animation self.remove(circle) self.wait(1) # Remove with animation self.play(FadeOut(square)) ``` ## Scene Methods Common scene methods: ```python class SceneMethods(Scene): def construct(self): circle = Circle() # Add mobject to scene self.add(circle) # Play animation self.play(circle.animate.shift(RIGHT * 2)) # Wait (pause) self.wait(2) # Remove mobject self.remove(circle) # Clear all mobjects self.clear() ``` ## Multiple Scenes in One File ```python from manim import * class Scene1(Scene): def construct(self): circle = Circle() self.play(Create(circle)) class Scene2(Scene): def construct(self): square = Square() self.play(Create(square)) # Render specific scene: # manim script.py Scene1 # manim script.py Scene2 ``` ## Resources - [Manim Scenes Documentation](https://docs.manim.community/en/stable/reference/manim.scene.scene.Scene.html) - [Building Blocks Tutorial](https://docs.manim.community/en/stable/tutorials/building_blocks.html)