mirror of
https://github.com/dredx/prole.git
synced 2026-09-24 19:44:33 +00:00
85 lines
3.1 KiB
Markdown
85 lines
3.1 KiB
Markdown
# Prole Loading Screen Animation
|
|
|
|
An animated GIF loader inspired by 1980s Electronic Arts floppy disk loaders, featuring:
|
|
- **Crackling energy effects** on the magnetic field lines (fast animation, 8-frame cycle)
|
|
- **Science mice from Douglas Adams** standing on the rings taking notes (slower animation, 30-frame cycle)
|
|
- **Alternating animation speeds** to reflect installation progress
|
|
|
|
## Generated Files
|
|
|
|
- `proleLoading.gif` - The animated loading screen (1024x768, 60 frames)
|
|
- `generate_loading_gif.py` - Script to generate/regenerate the animation
|
|
|
|
## Usage
|
|
|
|
### Generate the Animation
|
|
|
|
**Default (1024x768, 60 frames, ~53MB):**
|
|
```bash
|
|
cd img
|
|
source ../bin/activate # Activate virtual environment
|
|
python3 generate_loading_gif.py
|
|
```
|
|
|
|
**Optimized for smaller file size:**
|
|
```bash
|
|
# Smaller resolution and fewer frames
|
|
python3 generate_loading_gif.py --size 800x600 --frames 40 --colors 128 --output proleLoading_small.gif
|
|
|
|
# Even smaller
|
|
python3 generate_loading_gif.py --size 640x480 --frames 30 --colors 64 --output proleLoading_tiny.gif
|
|
```
|
|
|
|
**Command-line options:**
|
|
- `--size WIDTHxHEIGHT`: Output resolution (default: 1024x768)
|
|
- `--frames N`: Total animation frames (default: 60)
|
|
- `--energy-frames N`: Energy animation cycle (default: 8)
|
|
- `--mice-frames N`: Mice animation cycle (default: 30)
|
|
- `--colors N`: Color palette size (default: 256, lower = smaller file)
|
|
- `--output FILENAME`: Output filename (default: proleLoading.gif)
|
|
|
|
### Integration with Installer
|
|
|
|
The GIF can be displayed in the installer during deployment. The animation runs while `install.py` deploys Prole.app and configures local services.
|
|
|
|
## Animation Details
|
|
|
|
- **Resolution**: 1024x768
|
|
- **Total Frames**: 60 (complete cycle)
|
|
- **Energy Animation**: 8 frames (fast, cycles ~7.5 times per full cycle)
|
|
- **Mice Animation**: 30 frames (slow, cycles 2 times per full cycle)
|
|
- **Frame Duration**: 50-80ms (varies with energy intensity)
|
|
- **Loop**: Infinite
|
|
|
|
## Customization
|
|
|
|
Edit `generate_loading_gif.py` to adjust:
|
|
|
|
- `OUTPUT_SIZE`: Change resolution (default: 1024x768)
|
|
- `FRAMES_PER_CYCLE`: Total animation frames (default: 60)
|
|
- `ENERGY_FRAMES`: Speed of energy animation (default: 8)
|
|
- `MICE_FRAMES`: Speed of mice animation (default: 30)
|
|
- Colors: Modify `BLUE_DARK`, `BLUE_MEDIUM`, `ENERGY_BRIGHT`, etc.
|
|
|
|
## File Size Optimization
|
|
|
|
The current GIF is ~53MB. To reduce file size:
|
|
|
|
1. **Reduce frames**: Lower `FRAMES_PER_CYCLE` (e.g., 30-40 frames)
|
|
2. **Reduce resolution**: Lower `OUTPUT_SIZE` (e.g., 800x600)
|
|
3. **Reduce color palette**: Change quantization from 256 to 128 colors
|
|
4. **Use external tools**: Use `gifsicle` or `ffmpeg` for further compression
|
|
|
|
Example with gifsicle:
|
|
```bash
|
|
gifsicle -O3 --colors 128 proleLoading.gif -o proleLoading_optimized.gif
|
|
```
|
|
|
|
## Design Notes
|
|
|
|
- The energy effects overlay on the existing field lines from the blueprint logo
|
|
- Mice are positioned on the rings in an elliptical path matching the logo's perspective
|
|
- Animation speeds are intentionally mismatched (like old EA loaders) to create visual interest
|
|
- A "stuck" animation would indicate a failure, just like the old floppy loaders
|
|
|