MaiBook: A fun and personalized learning platform for kids 😃

Inspiration

Hi, I’m Anushka! As a kid, I was a voracious reader. I devoured books from Enid Blyton and Roald Dahl, comics like Calvin and Hobbes, thanks to an amazing library around me. However, I remember thinking that things around me were boring - my black hair and eyes, the names of people around me, India and its lack of magic schools. In retrospect, more diversity and representation in the content would have helped me relate to it much better.

On the other hand, my team mate Megh never got around to reading many books at all, he didn’t have access to a library like mine and never found books that caught his interest more than cartoon tv shows. Lack of reading is a habit that he has carried over into adulthood and he’s trying to fix this cycle for his 7 year old brother right now, by getting him captivating story books.

With TikTok-like addictive video content becoming popular, it’s super important to help children build a habit of reading, paying attention and learning with depth by making it more engaging and immersive.

Our project, MaiBook, simultaneously solves for these three very serious problems in educational and written content today, while being a very engaging and interactive platform for kids:

  1. Lack of access: Is every kid able to find a fun, interesting read on any topic of their choice?
  2. Lack of diversity and relatability: Is this content relatable for me? Does it use words I understand and teach me new things?
  3. Lack of focus and retention: Am I focusing on and retaining the content being taught to me? Or is it just passive consumption?

What it does

MaiBook = My Book created by AI 📚

MaiBook is a personalised learning platform for kids of all ages!

Think of any topic you might want a child to learn. It creates a bespoke book with comic illustrations to take the kid on an adventure that teaches them the target learning topic! Since kids get to learn via super fun content where they can see their own self immersing in an adventure, we believe they’ll enjoy reading and learning a lot more. They’ll connect with the material and retain the content much better.

Userflow:

  1. Profile Setup: A child or their parent can set up their profile by describing their appearance and characteristics for the storybook’s images.

  2. Choose Adventure: The child can then choose their adventure by writing a short prompt. For example, “go around the solar system and learn about planets” or “explore fossils with an archaeologist”. We also provide numerous enjoyable templates to start with.

  3. Read Story: MaiBook creates a personalised story book instantly! The book has an AI generated poem that incorporates the child’s characteristics (are they shy, funny, studious?). It also has AI generated images with the child’s character for each stanza of the poem.

How we built it

  1. Frontend: The frontend is built using Bubble, a visual programming language. We designed directly on Bubble with its drag and drop editor that’s similar to Figma. This is also where we set up our database.

  2. Backend: The backend application is made using Django, a python framework. We use this due to its ease of integration across numerous platforms and SDKs. The backend server is hosted on a Digital Ocean droplet with a Gunicorn WSGI server and an nginx reverse proxy.

  3. ML/AI tools: Given the advent of large transformer based models publicly available via APIs, we carried out 100s of experiments with various prompts for these models to choose the best combination suitable for our idea. Our text completion API uses the text-davinci-03 model from OpenAI, popularly known as the GPT3 model. GPT3 is used for both generating the poem using the kid's characteristics and adventure as well as generating suitable prompts that are given to our text-to-image model API. For image generation, we use both DALL-E by OpenAI and the Stability SDK by Stability.AI. We observed that DALL-E is very good for generating personalized images with different characters, while StabilityAI has better outputs for more landscape images. A balanced combination of both probably leads to the most fun experience for a kid. We also integrated Uberduck's text-to-speech API, because of the amazing voice options available (think of reciting a poem to a kid, what better than the voice of their favorite cartoon character!) however couldn't get it to the final product due to timeout errors. We are still looking into these (🙈).

Challenges we ran into

We overcame:

  1. Prompt engineering: It took us 100+ experiments to figure out how to send the right prompts to all the models so that we could reliably get good content for both text and images. We got a lot of meaningless images and bad poems early on. We also worked hard on ensuring content is age appropriate.

Still a challenge:

  1. Latency! The images take really long to generate. Dall-E also has generation limits per minute. We hope to use a mix of models and also in-house fine tuned models to combat this going ahead.

  2. We tried adding audio to let kids read out the content using Uberduck but ran into latency issues again. We’ll work on this feature later.

Accomplishments that we're proud of

  1. The fun UI/UX: We were able to create a production ready UI/UX. We think it’s super cute and intuitive, kids in our family love it so far! We are proud that we could get an application that is launch-worthy ready in two days.

  2. Prompt Engineering: Like mentioned above, we think our prompts differentiate the product and ensure we get high quality, personalised content for each user! Though people can get poems and images for free, our product is definitely a better bet for most people!

  3. Working towards a larger goal: We are college friends and we LOVE, LOVE NLP, especially generative models. We're happy that we found a meaningful problem both of us were passionate about and managed to use these exciting new models to solve it and hopefully make an impact.

What we learned

About large models:

  • The out-of-the-box APIs for the new generation of models are amazing! The 10s of options available each with their own strengths and weaknesses are pretty overwhelming. Experimenting with 100s of prompts across modalities also gave us a little insight into what works and what does not. Can we extend this to understand how these LMs think?!

  • Out of the box generic models can do amazingly well at very specific tasks, with some help. We definitely could not reach this quality with our own models so fast.

  • They differ from each other significantly though. Eg. We saw very different results from Dall-E and Stable Diffusion when we were experimenting to choose one. We ended up going with both, picking a usecase aligned with their strengths. We used Stable Diffusion to create the hero image for a story, since it is good at very generic and landscape images. Dall-E was better with portraying humans in specific situations so we used that for illustrating each paragraph. We think picking the right model, parameters and prompts for each task is the next big thing for products that use AI.

Building for a unique persona

  • We realised that kids can not use interfaces like chatGPT and OpenAI playground very easily on their own. We learnt a lot about building for a user persona that we don't relate to, making the UI and UX friendly for kids and their parents to help them leverage generative AI for their own goals. We studied current childrens' products and made use of fun colors, large fonts and easier vocabulary.

What's next for MaiBook:

We want to launch and expand this product!

ML Improvements:

  • Better automated prompt generation using NLU techniques such as intent recognition and sentiment classification.

  • Orchestration model: Create a standardized model that understand how to create the right prompts for different modalities and models and which model to get data from.

  • Finetune for education: Finetune image, text and audio models for our usecases. Make them very kid friendly, high quality and educative.

Product Features

  • Make it adaptive: Understand what the child likes and their pace of learning. Understand child’s age and learning goals, help them meet the goals.

  • Make it interactive: Gamify the experience. Kids will be able to participate and shape stories better. We plan to use Assembly AI to let kids talk and practice reading. We also want to leverage chat UI to gamify it further.

  • Social features: Allow users to add siblings or friends on the platform and have multiplayer stories. Allow users to receive prompts from their teachers or friends.

Business and Marketing

  • Expand target market to include toddlers (heavy on audio visual learning for just alphabets and short words) and pre-teens (help them read harder material, to improve comprehension and vocabulary).

  • We plan to launch this immediately on Product Hunt and let people use this to generate fun stories to gift to kids on Christmas 🎄.

  • User Research: We plan to launch and iterate on this further as a full fledged product if the initial response from this hackathon and early users is promising! 🙂

This project can expand to create a full personalised, adaptive and interactive learning partner for all kids. Something that brings a lot of joy into learning, helps them become better readers and improves their self esteem and soft skills thanks to better representation and diversity in content.

MaiBook helps bring cutting edge AI to the world of kids and can have a positive impact on the society!

Built With

Share this project:

Updates