Dooders in a Digital World: Exploring and Learning in a Simulated Reality
I conducted a preliminary experiment to explore the dynamics of the current design. Using default parameters in a brief and straightforward scenario.
Introduction
In this experiment, we explore the behavior and growth of a population of digital agents called Dooders within a simulated environment. The Dooders Python library is designed to enable the simulation of intelligent agents interacting within complex systems. To maintain their presence in the simulation, Dooders are required to consume energy; failing to do so will result in their removal from the environment.
In this digital environment, a 10x10 grid of cells functions as a dynamic game board, with energy randomly distributed across its surface. Over a varying number of cycles, the energy will gradually dissipate. A Dooder adapts to this environment, learning to seek out and consume the available energy efficiently.
The experimental results encompass three distinct phases: the Seeding Phase, characterized by slow initial growth and learning; the Growth Phase, marked by rapid population expansion; and the Equilibrium Phase, in which the population encounters a resource constraint and competition intensifies. Throughout these stages, we examine the Dooders' adaptation to their surroundings, their energy consumption patterns, and fluctuations in their average lifespan.
Seeding(Cycle 0 to 17)
Every simulation commences by introducing a predetermined number of Dooders. These agents initially possess no experience or knowledge of their environment. They learn through a simple neural network, which assists the Dooder in determining their movements. A Dooder that effectively seeks out energy is likely to remain in the simulation.
During this phase, growth was minimal since the initial Dooders were still learning and required a waiting period of five cycles before they could reproduce within the simulation.
By the 55th cycle, all original Dooders had been eliminated, having an average lifespan of 27.4 cycles. Despite the substantial availability of energy during this phase, the number of agents remained limited.
Throughout the seeding phase, a cumulative total of 61 energy units were consumed, with an average of 5.1 units per Dooder.
Growth(Cycle 18 to 55)
In this dynamic phase, the population experienced a rapid expansion until it eventually transitioned into the Equilibrium phase.
Throughout this growth period, 145 new Dooders emerged, exhibiting an average age of 12.3 cycles. This was notably lower than the age of the seed generation. As the Dooder population increased and resources reached their upper limit, energy availability for each individual dwindled.
This burgeoning population was accompanied by a sharp rise in energy consumption, reaching 309 units. However, when broken down on an individual level, each Dooder only consumed an average of 2.0 units. It is noteworthy that none of the Dooders from this phase will survive until the simulation's conclusion.
Equilibrium(Cycle 56 to 99)
In the final phase of the experiment, the population underwent a series of fluctuations. A total of 328 Dooders were generated, while 333 agents were terminated during this phase. In the end, 64 Dooders managed to survive until the end of the simulation, with an average age of 5.4 cycles.
The Dooders faced an increasingly challenging environment as they reached the resource ceiling, forcing them to compete for limited resources. In a follow-up experiment, I plan to let the simulation run for an extended period to observe the long-term behavior under the same conditions.
During this phase, Dooders consumed a total of 328 energy units, amounting to just one unit per agent. This consumption rate was significantly lower than what was observed in the previous two phases.
Conclusion
In conclusion, the Dooder population in the simulation underwent three distinct phases: seeding, growth, and equilibrium. The seeding phase was characterized by a negligible growth rate and higher energy consumption per Dooder, as they were learning the simulation dynamics.
The growth phase saw a rapid expansion of the population and a decrease in energy consumption per individual, but none of the Dooders from this phase survived until the end of the simulation.
Finally, the equilibrium phase involved population fluctuations, intense competition for limited resources, and a further reduction in energy consumption per Dooder. The experiment provides valuable insights into the population dynamics and resource consumption patterns of the Dooders and sets the stage for further exploration of their long-term behavior.
The GitHub repository for the project is here and you can find the list of all experiments here. For reference, the experiment was conducted from this release.