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.

Rosellas in action!

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! I do like you, but not that much :D)
  • Alignment: swim/fly in the same direction as your neighbors (peer pressure works, even in the digital world!)
  • Cohesion: stick together-ish (lonely is not fun, let's stay friends :) )

But that would be boring, so I 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.

Allures

Shimmering points that our little boids find irresistible. Boids will often head for these even with predators nearby. Bad life choices make for some great 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

pip install rosella
rosella

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

rosella -h # Check flags
rosella --boid-density 1750 # Custom density (pixel-acres per boid)
rosella --allure-chance 35 # 1/35 chance per frame

Control it as you watch:

  • Q: quit
  • LMB: spawn an allure!

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.1.tar.gz (43.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.1-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rosella-0.1.1.tar.gz
  • Upload date:
  • Size: 43.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.1.tar.gz
Algorithm Hash digest
SHA256 0961412077fcd733945c481df8f35f7a5803d3c134f840fdb3b34114b5f28476
MD5 01982c805058039929863adeb12edae9
BLAKE2b-256 818aab509535de9ef1e4a7c159c9bf3e0ca59e142abd307a9e5055733c48656e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rosella-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 612905935b208e2a102d708cd528b3adab10069189fb0706c3190318262caa71
MD5 68526bc110f6f2f96fb5a1f0de516567
BLAKE2b-256 e3736ebc3c3b3964f294932dbd2d87da7f1ba62f963f9a2313b96daf5b4a142b

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