Reboot model to avoid eusocial bees and consider hoverflies and solitary bees instead
@mlange @hanst I basically just replaced the nest-scout entities by single hoverflies and solitary bees and added spatially-indexed (circular) flower patches.
I have not added any actual life cycle activities besides finding flower patches as I need to research and document this more as hoverflies and solitary bees seem to have quite distinct life styles:
- Hoverflies seem to have no fixed center of activities and their eggs and maggots live by and feed themselves on leaves or within water. So for now it seems some cycle of explore, forage, rest and laying eggs would be appropriate.
- Solitary bees built one or more borrows with multiple chambers in which their eggs and larvae maturate on their own with basically adult bees leaving these burrows in the next year (males before females). So after mating, the main activities would rather be explore, forage, rest, return to burrow, build chambers, build new burrow.
I wonder on what state variable to model the activity transitions: Maybe the amount of excess energy (gained by foraged, lost by flying) for returning and building another chamber and the number of chambers for building a new burrow? I also wonder whether to split these processes into explore, forage, rest and reproduction (laying eggs or borrow-related activities) to able to reuse some of the code.
Also sadly enough, while the R-tree data structure does work, querying it allocates which is quite visible in the CPU profile which is why I switched the allocator as well. With this change, this is now doing barely 1000 IPS on my machine, i.e. a speed up factor of 3000.