From the lab

Virtual Pet Connecting Multiple Prototyp Offices

Co-workers from our Barcelona- and Stockholm offices collaborate to create a virtual pet that boosts company team spirit.

Tech used

  • Prisma ORM
  • Typescript
  • AR.js library
  • GeoJSON
  • Raspberry PI
  • WS281x Led lights

Press to view video


Inspired by the strong employee morale across the different offices, seven team members used Prototyp Week to improve it even further. The plan? To create a virtual pet that could effortlessly move between the offices in Stockholm and Barcelona. The goal was to build a mascot that you could interact with in a variety of ways, including playing with it, feeding it, and even petting it.

The Process

First, the group split up into smaller teams in order to tackle the multiple subprojects that were a part of the concept that they had created. Three prototypers worked on the interactive part of the project, which included building an AR app.

Others focused on the behavioral part of the system, or the “brain service”, while two team members put their energy and effort towards the visualization of the pet’s location. This was done by plotting positions on both a digital and a physical map. The successful completion of the separate subprojects would eventually ensure a final positive outcome for the entire team, and the creation of a functioning virtual pet.

The Challenges

With both the AR app and the location client being dependent on the pet’s state and behavior, the so-called “brain service” was a focal point of the system. The challenging part of that was to coordinate and prioritize the different requirements. Thankfully, teamwork and solution-oriented discussions between the sub-teams ensured that all essential requirements were met.

The location team, on the other hand, faced the challenge of trying to get the LED lights on the physical map to work as planned and intended. Initially, the team ran into multiple programming-based issues with artifacts, which prevented the lights from lighting up multiple LEDs. Due to the time-sensitive nature of the task, this particular part of the project was not fully operational as intended by the time that the demo was performed.

The AR app presented a challenge for the group as well, in part because the team did not have extensive experience with AR or with designing 3D models. Some intelligently spent research time later led the team to a satisfying solution in AR.js. This gave the group a library that allowed them to show content in the real world, which in turn made it easy to display the objects on top of the markers that had been distributed throughout the office. Creative problem-solving skills allowed the team to utilize simple objects and animations to successfully show the 3D models through cellphones.

Result / Key takeaways

A major takeaway was that using the right GIS (Geographic Information System) goes a long way. In order to optimize the pet’s location and movement, the team turned to a GIS solution that would allow them to manage and analyze map data. The group ended up using GeoJSON, an industry-standard data format that is built upon the JSON format. By using this specification for GEO-referenced points and polygons, they were able to consistently and accurately describe the shapes of the offices and locations. The data formatted with that standard was compatible with a wide variety of tools, services, and programming languages, which in turn helped the team define the rules for the pet’s movement. This included identifying and accommodating activity-related obstacles and objects, and ultimately really made the project come alive.

Another takeaway was that finding a compatible library was important. Thanks to AR.js, the team could use AR on the web, which in turn allowed them to use technologies that most of the team were familiar with, including HTML, Javascript, and CSS.

Future Actions

Due to the time-restricted nature of Prototyp Week, the virtual pet is currently only capable of moving around the Stockholm office. In the future, the team could add objects to interact with the pet around the different offices to create the sense that it is actively traveling between locations. An idea to build on that included incorporating the Sonos sound system in the different offices in order to alert team members of the presence of the virtual pet. This would be done by playing different sounds according to their needs and motivations.