Inspiration

We wanted to create something fun, fresh, and different from the usual travel-planning experience. Instead of overwhelming users with boring, static questions, we designed a playful 2D virtual world where they can explore different biomes and collect objects that reflect their travel mood. This lets us capture their real intent in an intuitive, fast, and entertaining way.

What it does

We start by collecting the essential travel details through a short questionnaire, including compulsory data such as origin airport and number of travellers, and other optional fields such as budget or dates. Then, we combine this information with insights from the virtual world experience.

Users explore a 2D map and choose one biome, the possibilities are: forest, beach, town, city, or snow. Inside that biome, they can collect 5 out of 10 themed biome objects that represent different moods and preferences, while still allowing variety in the final recommendations.

This data is then processed by Gemma 4 together with the Skyscanner API, which helps us find real flight options and destinations matching both the practical requirements and the traveller’s interests. Finally, we show the 3 best destination matches, considering price, availability, and the user’s in-game choices, with a short storytelling explanation that justifies why each destination fits their vibe.

How we built it

We used the provided Skyscanner API to search and filter real, useful destination options. For the game experience, we forked an open-source Phaser 2D world generator and built our own biome-aware layer on top, including custom biome distribution, collectible objects, and travel-intent logic.

The frontend was built with React and TypeScript, connected to the Phaser game through an EventBus bridge. On the backend, we created a Python client for the Skyscanner Partners API and integrated Gemma 4 as an LLM agent. Gemma 4 combines the user’s questionnaire answers with the objects collected in the virtual world to generate personalized flight recommendations and explain why each destination matches the traveller’s vibe.

Challenges we ran into

The main challenge was bringing all the pieces together into one coherent experience. We wanted an idea that felt original and out of the box, but still made sense and was easy to use.

Another challenge was connecting the game insights, questionnaire data, Skyscanner API results, and LLM reasoning without losing clarity. We had to make sure Gemma 4 received the right information from both the APIs and the collected objects.

Accomplishments that we're proud of

We are proud of the teamwork behind the project: how we discussed ideas, chose the strongest ones, and committed to building something ambitious and a little crazy. We are also proud of how hard we worked while still having fun while exploring new ways of building and programming.

What we learned

We learned how to design and interact with a live virtual environment, and how to use the information generated inside it in a smart way. On top of that, we learned how to coordinate the work of four people, merge different parts of the project, and keep everything organized without turning it into a disaster.

What's next for SkysGammer

We would like to expand the virtual world with more personalized biomes, objects, and interactions, making the experience even more adaptive to each traveller, and also adding other interesing features for Skyscanner.

Built With

Share this project:

Updates