Inspiration
Most learning apps for little kids ship with a fixed bank of questions. A four year old and a ten year old get handed the same flashcards. We wanted to flip that. What if every question was written fresh, in the moment, for that specific child, on the topic they care about, at the reading level they can actually handle? And what if a kid who cannot read yet could still play the whole thing on their own, because everything is spoken out loud? That idea became Cosmos.
What it does
Cosmos is an AI-powered learning game for young children. A child signs in, picks a biome (Forest, Savanna, or Arctic), chooses an animal guide that lives there, and then picks a topic like Math, Science, Space, Making Friends, or Emotional Learning. From there the animal becomes their teacher and starts asking questions. Every question is generated live by a language model and tuned to the child's age and how they have been doing. The animal can read each question out loud in a natural voice, react with different expressions to right and wrong answers, and get excited after a streak of correct ones. Right answers earn Stardust, a currency the child can spend in a Space Shop on cosmetics for their animal and on helpers like Streak Savers and Small Hints. The shop also has an AI robot shopkeeper that holds a real conversation and answers whatever free form questions the child types. The game adapts in two ways at once. It tailors language and difficulty to three age bands (3 to 5, 5 to 8, and 10 and up), and it changes the format of the questions. The youngest kids only get gentle multiple choice problems. Older kids also get true or false and open-ended written questions, where they answer in their own words and the AI decides whether they understood the idea.
How we built it
The frontend is a React 19 single page app built with Vite and styled with Tailwind CSS v4, using a set of shadcn style components on top of Radix primitives. React Router handles the flow between the landing page, auth, the biome and animal and topic pickers, the game loop, and the shop. Supabase handles authentication and stores each child's profile, including their age, their Stardust balance, and the cosmetics and helpers they own. The AI layer is the heart of it and lives in one file. There are four distinct AI jobs:
- Question generation. We prompt a language model with the topic, the animal character, the child's age band, and the recent question history, and ask it to return a strict JSON object for one of three question types. It is told not to repeat earlier questions and to adapt to recent performance.
- Answer evaluation. Open-ended written answers cannot be checked with string matching, so we send the child's answer back to the model and let it judge whether they understood, staying warm and lenient for the younger ones.
- Text to speech. Every question and every piece of feedback is turned into a natural voice through an AI speech service, so non-readers can play.
- The robot shopkeeper, which is a friendly conversational agent for free-form questions.
Challenges we ran into
One major challenge we ran into was cooperating and resolving merge conflicts. While collaborating on the website, we often found ourselves editing files that another team member had unsaved changes in, creating conflicts when we tried to push to the main branch. These merge conflicts caused many bugs in our code, costing us a lot of time used to fix them. However, through learning how to deal with merge conflicts, we enhanced our collaboration skills and deepened our understanding of Github.
Accomplishments that we're proud of
We built a learning experience that genuinely personalizes itself to each child in real time rather than serving a static deck. A child who cannot read a single word can still play the entire game start to finish because of the spoken interface. The combined grade and generated flow makes open ended questions feel instant. The whole thing stays warm and playful, with an animal that talks, reacts, and celebrates, instead of feeling like a quiz.
What we learned
We learned how much of the experience comes down to prompt design and the contract with the model, not just the UI. Small choices, like forcing a strict output format, weighting which question types appear, and tuning the tone per age, had an outsized effect on how good the game felt. We also learned to treat AI latency as a design problem and to hide it by overlapping work, prefetching audio, and asking for more in a single request.
What's next for Cosmos
We want to add real progress tracking so parents can see what topics a child is learning and where they struggle, and feed that history back into the prompts for sharper adaptation. We would like more biomes, animals, and cosmetics, voice input so kids can answer by speaking instead of typing, and support for more languages so the spoken interface can reach more children.
Built With
- deepgram
- express.js
- gemini
- node.js
- react
- supabase
- tailwind
- vercel
- vite
Log in or sign up for Devpost to join the conversation.