# 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)
Source: claude-code-templates (MIT). See About Us for full credits.