Skip to main content
The Species tab controls the initial conditions for each species population — how many species compete, how large they grow, how long they live, and where food concentrates in the world.

Sliders

Changing Number of Species triggers initWorld and resets the entire simulation.
Keep Reproduce at Size well below Max Size — if they are equal or close, organisms reproduce the instant they could grow further, preventing large predators from ever developing. A gap of at least 6 units (e.g., Reproduce at 12, Max at 18) allows a meaningful size hierarchy.

Species color assignment

Species are assigned colors in index order from a fixed 12-color palette: Hue values are passed directly to the GLSL hsv() function in the particle fragment shader.

Size–energy relationship

An organism’s rendered size is derived from its internal energy value:
This means energy scales with the square of size — a larger organism needs proportionally more food to maintain its size and to grow further. This relationship naturally limits unchecked growth and creates ecological pressure.

Food oases mechanics

Each oasis is placed at a random position within the canvas with a radius between 80 and 200 px (80 + random() × 120). A random strength value between 2 and 5 is also assigned per oasis. When a food pellet spawns:
  • 60% of the time it is placed within or near an oasis (biased toward that oasis center)
  • 40% of the time it is placed at a uniformly random canvas location
With Show Food Oases enabled in the Visual tab, semi-transparent teal circles mark each zone.