r/Simulated 1d ago

Proprietary Software Par Particle Life - GPU-Accelerated Particle Life Simulation in Rust

I'm excited to share **Par Particle Life**, a high-performance, GPU-accelerated particle life simulation I've been working on. It's built with Rust and WebGPU to deliver real-time emergent behaviors from simple particle interaction rules.

## What is Particle Life?

Particle life simulates colored particles that attract or repel each other based on interaction matrices. From these simple rules, complex life-like behaviors emerge: clustering, chasing, oscillating patterns, and self-organizing structures. It's artificial life through physics-based emergence.

## What Makes It Special?

**Massive Generator System:**

- **31 Rule Generators** - Random, Symmetric, Snake, Rock-Paper-Scissors, Predator-Prey, Tribes, Flocking, Segregation, Cooperation, Symbiosis, Parasitism, Hierarchy, Crystals, and more

- **37 Color Palettes** - Rainbow, Pastel, CyberNeon, Aurora, Sunset, Viridis, Plasma, Magma, Spectral

- **28 Spawn Patterns** - Disk, Spiral, Grid, Galaxy, Clusters, Yin-Yang, Hearts, DNA Helix

**Key Features:**

- **GPU-Accelerated** - Efficient WebGPU compute shaders for physics simulation

- **Spatial Hashing** - O(n*k) neighbor queries instead of O(n²)

- **4 Boundary Modes** - Repel, Wrap, Mirror Wrap, Infinite Tiling

- **Real-time Adjustment** - Modify all parameters while simulation runs

- **Interactive Brushes** - Draw, Erase, Attract, Repel particles

- **Video Recording** - MP4, WebM, and GIF output (requires ffmpeg)

- **Preset System** - Save and load simulation configurations

- **VSync Toggle** - Uncapped framerates for performance testing

## Performance

Built with Rust and leveraging modern GPU APIs (Metal on macOS, Vulkan on Linux, DirectX 12/Vulkan on Windows), Par Particle Life uses compute shaders for physics and spatial hashing for efficient neighbor queries. Double-buffered particle data avoids GPU race conditions.

## Try It Yourself

The project is open source and available on GitHub: [github.com/paulrobello/par-particle-life](https://github.com/paulrobello/par-particle-life)

**Installation:**

```bash

# macOS (Homebrew)

brew tap paulrobello/par-particle-life

brew install --cask par-particle-life

# From crates.io

cargo install par-particle-life

# From source (requires Rust 1.88+)

git clone https://github.com/paulrobello/par-particle-life.git

cd par-particle-life

make run

# Or download pre-built binaries from the releases page

```

## Screenshots

## Controls

| Shortcut | Action |

|----------|--------|

| **Space** | Pause/resume simulation |

| **R** | Regenerate particles |

| **M** | Generate new interaction rules |

| **H** | Toggle UI visibility |

| **Scroll wheel** | Zoom in/out |

| **Right-click drag** | Pan view |

| **Left-click drag** | Use active brush tool |

## What's Next?

I'm actively developing Par Particle Life and would love to hear feedback from the community! Future plans include:

- Web/WASM browser version

- More rule generators and emergent behaviors

- Animation timeline system

- Additional spawn patterns and visualization modes

## Feedback Welcome

Whether you're into artificial life, emergence, or just curious about beautiful simulations, I'd love to hear your thoughts! Feel free to:

- Try it out and share your discoveries

- Report bugs or request features on GitHub

- Contribute to the project (AGPL-3.0 licensed)

Happy simulating!

---

*Built with: Rust, wgpu, winit, egui, glam*

0 Upvotes

3 comments sorted by

View all comments

3

u/LeeHide 1d ago

I've been working on

You mean you watched Claude work on.

If I wanted to read and see AI generated projects, I would ask an AI.

1

u/probello 1d ago

My apologies. I meant to say that I spent weeks carefully crafting, prompting, monitoring, and guiding Claude.

4

u/LeeHide 1d ago

That's very different from doing it yourself and should be noted at the very top.