# SURYA - Blender Animations

Converted from the Manim animations for Das's debut album.

## Prerequisites

Install Blender (4.0+ recommended):
```bash
brew install --cask blender
```

Or download from: https://www.blender.org/download/

## Quick Start

### Generate all scenes and exports:
```bash
/Applications/Blender.app/Contents/MacOS/Blender --background --python generate_all.py
```

This creates:
- `surya_all.blend` - All animations in separate scenes
- `exports/` folder with GLTF and Alembic files for each track

### Generate individual tracks:
```bash
# Track 1 - Skin (Morphing surfaces)
/Applications/Blender.app/Contents/MacOS/Blender --background --python tracks/track01_skin.py

# Track 2 - U Saved Me (Sacred geometry)
/Applications/Blender.app/Contents/MacOS/Blender --background --python tracks/track02_u_saved_me.py

# etc...
```

### Export only:
```bash
# After generating, export all scenes
/Applications/Blender.app/Contents/MacOS/Blender surya_all.blend --background --python export_gltf.py
/Applications/Blender.app/Contents/MacOS/Blender surya_all.blend --background --python export_alembic.py
```

## Tracks Included

| Track | Name | Animation |
|-------|------|-----------|
| 01 | Skin (Intro) | Morphing parametric surface |
| 02 | U Saved Me | Particles → icosahedron |
| 03 | Nothing | Sphere explosion |
| 06 | Nature's Call | 3D fractal tree |
| 08 | IDK | Lorenz attractor |
| 09 | With U | Two orbiting souls + stars |
| 14 | Hollow | Golden spiral to moon |

## Color Palette

```python
COLORS = {
    "skin": (0.957, 0.447, 0.714),       # #f472b6 Pink
    "u_saved_me": (0.133, 0.827, 0.933), # #22d3ee Cyan
    "nothing": (0.4, 0.4, 0.4),          # #666666 Grey
    "natures_call": (0.369, 0.918, 0.831), # #5eead4 Teal
    "idk": (0.957, 0.447, 0.714),        # #f472b6 Pink
    "with_u": (0.984, 0.749, 0.141),     # #fbbf24 Gold
    "hollow": (0.984, 0.749, 0.141),     # #fbbf24 Gold
}
```

## Animation Settings

- Frame rate: 30 FPS
- Duration: ~750 frames (25 seconds) per track
- Resolution: 1920x1080 (configurable)

## Files Structure

```
surya-blender/
├── README.md
├── generate_all.py          # Master script - generates everything
├── export_gltf.py           # Export all scenes as GLTF
├── export_alembic.py        # Export all scenes as Alembic
├── utils.py                 # Shared utilities
├── tracks/
│   ├── track01_skin.py
│   ├── track02_u_saved_me.py
│   ├── track03_nothing.py
│   ├── track06_natures_call.py
│   ├── track08_idk.py
│   ├── track09_with_u.py
│   └── track14_hollow.py
└── exports/                 # Generated exports
    ├── track01_skin.gltf
    ├── track01_skin.abc
    └── ...
```

## Tips

- GLTF exports include animations and are web-compatible
- Alembic (.abc) preserves geometry animation for compositing
- Open `surya_all.blend` in Blender to preview/edit before exporting
