Back to portfolio

Puppets for Parrots

1 / 4

The project

Parrots are very social and musical animals, and they can suffer a lot from loneliness when kept in captivity. This comes up most when the owner of the parrot is gone from home, and the parrot is left alone. For this reason, we were asked to create a product that could be customised by the owner and would allow the parrot to entertain themself through playing sounds when interacted with. Additionally, there is currently no effective research testing equipment for parrots that allows them to choose which sounds to play.

The product is designed so that parrots can interact with it, for example, by pressing buttons. This results in the product playing a sound that matches the sound file (.mp3 or .wav) the owner uploaded to the app, which is linked to their specific product.

Our product will serve both as a way for parrot users to enrich themselves and ease their loneliness, and as a means for the researcher client to gather information on which buttons were pressed and which sound was linked to each button. This enables the researcher to gain insights into parrots’ preferences regarding auditory stimuli.

The customer

Our client, Dr Michelle Spierings, is a researcher and behavioural biologist at the Institute of Biology of Leiden University. She specialises in animal musicality and auditory cognition, particularly in songbirds and parrots. Her research is strongly focused on the cognitive ability of animals to interact with sound, rhythm and abstract musical patterns. She is currently working to understand the evolution of vocal learning and language in parrots. At the moment, there are no tools that give a lonely parrot the autonomy to choose which sounds they want to listen to. There is no equipment on the market yet that lets parrots do so safely. Dr Spierings commissioned this project primarily to improve the parrots’ quality of life, as their social and cognitive needs are difficult to fulfil in captivity. The project can also assist these researchers with collecting data about the parrots’ behaviour and preferences. Communication with our client was conducted via email and in-person meetings, which we held with her every 3 weeks. In these meetings, we first discussed the requirements. Later, we introduced the design ideas we have implemented, as well as the results of our testing with the parrots. That way, we could improve the prototype through multiple iterations, allowing us to meet the user’s requirements as effectively as possible.

The team

Our team consisted of six students: Noam Dunsky, Dean Kuurstra, Rob te Nijenhuis, Lars de Rooij, Marta Lomovska and Elle Riezebos. Notable roles within the team included the scrum master and the product owner. The scrum master, Elle Riezebos, led and organised the scrum events, such as task division and sprint retrospectives. The product owner, Noam Dunsky, organised the product backlog and user stories and ensured the user requirements were met. Given the many aspects of our project, we decided to divide the work into hardware, software, and product design. This meant everyone could work and focus without constantly having to learn new skills. Especially because this project often required us to meet in person to work on the product. The division was not strict, as members collaborated and worked on aspects outside of their main expertise, and we had meetings where everyone got up to date with what everyone was doing During our project, the team has encountered challenges regarding the nature of our project. Our project was unique in that it was not only a software project but also a product design and hardware project, requiring many skills not taught in our program. As a result, the team had to invest significant time and effort in learning these skills, which made the start of the project’s actual work more difficult and caused delays during the work itself. Moreover, the sprint planning was sometimes unrealistic, requiring considerable flexibility and adjustments from our team. As a team, we are very proud of our motivation as a team. All of us were very involved and active in the work process. We are also proud of our ability to learn new, complex skills in such a short time, and of the collaboration we had to combine all the components into a single working project.

The technologies

Languages:

  • TypeScript and JavaScript: frontend, backend API, and communication between the web application and hardware.
  • C++: firmware for the Arduino-based physical device.

Frameworks and platforms:

  • React and Vite: development and building of the web application interface
  • Node.js: backend API for device configuration, sound management, and interaction logging
  • Supabase: storage of user profiles, sound assignments, device configurations, and button presses
  • Arduino Nano ESP32: control of the physical switches, audio playback, and API communication

Deployment:

  • We used Vercel to deploy the frontend while the backend API runs on Railway. The database is hosted using Supabase