Final Project Report: GSoC’21 at Red Hen Labs

Ankit Gupta
5 min readAug 20, 2021

For the project: Simulating Representational Communication in Vervet Monkeys

Image 1: Vervet Monkeys [Chlorocebus pygerythrus]

Project Description

The project is an attempt to simulate an ecological setup consisting of vervet monkeys and their predators. The ideas for this are inspired from the work Vervet monkey alarm calls: Semantic communication in a free-ranging primate by Seyfarth, Cheney, & Marler, 1980. One of the main goals of the simulation is to efficiently model representational communication through an agent-based model and show how the differential meaning of vervet’s alarm calls is helping in their survival. Although the simulation is tweakable to accommodate any kind of predator-prey agent-based modeling, for this project we have focused on semantic communication between vervet monkeys helping in their overall survival.

Image 2

Vervets use distinct alarm calls for three types of predators: leopards, snakes, and hawks. While there is no location in the vervets’ habitat where they can seek adequate shelter from all three predator types, they seek out bushes to conceal themselves from hawks, trees to escape from leopards, and stoney ground to stay safe from snakes. Please look at Image 2 for a pictorial representation of alarm calls.

So as per the need of the project, I have developed a GUI consisting of the simulation rendering area as well as a side-by-side UI control as shown in Image 3. The floating image tiles represent various predators moving randomly. The agents/vervets/preys are represented by a colored outline corresponding to the type of predator fear and foraging. The yellow dots in each block represents food resources where the vervets move to forage. Apart from rendering simulation output, the project also takes care of writing output CSV files containing simulation data that can be analyzed to come with plausible inferences.

Image 3: The Simulation Interface with UI Control on Right.

For complete documentation of the software simulation please look at this page of the project’s GitHub repository.

Project Details

Mentors: Francis Steen (Primary), Maria Hedblom, Mark Turner, Cristóbal Pagán Cánovas, & Javier Valenzuela.

Project Github Repository: Click here.

Project Documentation Page: Click here.

Software Version Download Link: Click here.

Weekly Progress Report Blog: Click here.

GSoC Project Page: Click here.

Accepted Proposal: Click here.

Resulting Work Product

Apart from the executable Processing.py code that is there on the GitHub repository, I have made a standalone simulation software version of the simulation too that can be executed on Windows/Mac/Linux with just Java support. Please look at this link to download the appropriate package compatible with your system.

Current Results

The result obtained so far are already highly encouraging as they very clearly prove better survival rates with alarm calls. Thus it serves one of the main goals of the project, i.e., to prove that the differential meaning of vervet’s alarm calls is helping in their survival.

Cumulative Predation Death vs FrameCount with 4 Predators each and 120 agents.

In one of the test runs with 12 predators (4 each), 120 vervets and the default value of other parameters, the cumulative predation death rate for vervets came out to be 162 death per 1000 frames as compared to 238 deaths per 1000 frames in case of with and without alarm call respectively. But we would need a lot more logged data with varying parameter values to confirm our claim and maybe add something that even we didn’t expect.

Project Completion Status

Talking about the project status after the 10th and final week of GSoC’21, my primary mentor Prof. Francis Steen, mentioned that “agent-based simulation is already well past what we thought could be accomplished this summer”.

At the end of the final GSoC weekly call, given the scale of the simulation, we realized the need for some more time to give the finishing touches. With some minor tweaks to the present state of developments, we would go ahead and start mass data logging with a variety of parameter states. As we are mostly concerned with the comparative study of consequences arising in conditions with and without alarm calls, the bulk of work to be done now would be to intelligently acquire data suitable for data analysis.

But even whatever we have done so far is already useful as we have the standalone simulation software ready to be executed on any operating system. Anybody can download the software package from here and run it on their own PC, generate simulation data varying parameter values and analyze the resulting data. Varying the parameter states or with some minor edits in the code, the present version of the simulation can also be extended to any other type of predator-prey setup.

Future Developments

As mentioned above, few more tweaks are needed before we draw curtains to the project and publish our results. I am listing the following yet-to-be-implemented developments below. Please look at the project documentation page for any references regarding the following issues.

  • Implementing the periodic scan feature of agents.
  • Logging cumulative distance traveled by each agent over time.
  • Having a toggle button to skip data logging or to only log data.
  • To discuss tuning all the parameters to a reasonable value. I will make a list of all the crucial parameters that decide the fate of the simulation.
  • Having a monkey-type outline of the agent instead of the currently shown insect-like look.
  • Letting agents move as per the resultant velocity while they see a predator, resulting from avoiding the predator and fleeing to the refuge.
  • Develop a data logging system that saves simulation data in batches with varying conditions, i.e., simulation parameters.
  • Draw plots from these data and draw the appropriate conclusions.

Continuing Collaboration

I and Prof. Steen have planned to continue our weekly call even after GSoC’21 is over and complete the impending developments as soon as possible.

--

--

Ankit Gupta

PhD Student of Computer Science & Engineering at Michigan State University (Fall'23 - present). IIT-KGP Alumnus (Engineering UG, Batch of 2021).