Skip to main content

Terminal boids simulator

Project description

Rosella

Watch a chaotic ecosystem unfold right in your terminal. This is a boids simulation—those classical flocking birds that somehow manage to be both predictable and gloriously messy all at once.

What's Happening Here?

You've got a bunch of little critters (boids) bouncing around following three simple rules:

  • Separation: don't crash into your friends (basic manners)
  • Alignment: swim/fly in the same direction as your neighbors (peer pressure works)
  • Cohesion: stick together-ish (lonely is not fun)

But that would be boring, so we added some chaos:

Predators

Angry crosses hunting our poor boids. They're rather slow, but insistent. Currently implemented with a simple follow-nearest greedy algorithm. Watch the boids scatter!

Allures

Shimmering points that our little boids find irresistible. Boids will often head for these even with predators nearby. Bad life choices make for good entertainment :D

Random Enlightenment

Sometimes boids just get it and wander off. Celebrate their brief moment of philosophical awakening before they go back to being confused little dots. Originally implemented to reduce clustering and overly predictable patterns.

How to Run It

python main.py

Default constants are decently sensible – in my opinion :) – but feel free to pass cli flags to tweak behaviour. Some behaviours require flags.

python main.py -h # Check flags
python main.py --boid-density 1750 # Custom density (pixel-acres per boid)
python main.py --allure-chance 35 # 1/35 chance per frame; required for allures to spawn

Control it as you watch:

  • Q: quit

Your terminal is the world. Watch it all unfold in beautiful Braille pixel art.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rosella-0.1.0.tar.gz (595.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rosella-0.1.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file rosella-0.1.0.tar.gz.

File metadata

  • Download URL: rosella-0.1.0.tar.gz
  • Upload date:
  • Size: 595.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for rosella-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f71e51177b14f6f1efe82b6e8a0f9efc2540e43b3d6c29f43d570d59f5aa670b
MD5 37341e7aba7db31974122637420bef05
BLAKE2b-256 7d05cf9e8cae35e35b646dcc0a9fb7824380ebddc90c393434980d34fb5d70af

See more details on using hashes here.

File details

Details for the file rosella-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: rosella-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for rosella-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 799fba8d3e675c6593918e4854853958242cec1d5f2f1115ce46baa56474fce5
MD5 ab07ca96d4f23370d8074e069eda75cb
BLAKE2b-256 a15696248f119b435ae822a996a0d0edd5c4d8a376a9b09c1e0f02061b66344a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page