Each organism has a 'boredom' attribute expressed as a percentage between 0 and 100
Each organism has a 'speed' attribute expressed as a number between 1 and 10
When moving, each organism has a 'destination' expressed as a set of coordinates
Upon each tick of the script's clock:
Each organism's boredom will increase by 1 if they aren't moving, or decrease by 2 if they are
Each organism will calculate, using boredom and a random integer, whether it should begin walking
If an organism is to begin walking, it will pick a new destination on the screen
If an organism is already walking, it will move towards its destination at its own speed
If an organism reaches its destination (or would exceed it in the next tick) it stops walking
If two organisms come within fight_radius of each other, they will "fight" - a white rectangle around the OLED indicates that a fight is taking place
When two organisms fight, there is a 50% chance that either will win
The winner's speed increases by 1, and the loser's decreases by 1
The resulting 6 CV outputs are essentially LFOs with a slight stepping nature as the clock runs in discrete ticks. They are truly generative, as their attributes (speed for example) have a real effect on their future (a faster organism is more likely to fight often and therefore affect its own speed)
K1 can be used to adjust the speed of the overall simulation
This script births 6 organisms on start-up.
Upon each tick of the script's clock:
fight_radius
of each other, they will "fight" - a white rectangle around the OLED indicates that a fight is taking placeThe resulting 6 CV outputs are essentially LFOs with a slight stepping nature as the clock runs in discrete ticks. They are truly generative, as their attributes (speed for example) have a real effect on their future (a faster organism is more likely to fight often and therefore affect its own speed)
K1 can be used to adjust the speed of the overall simulation