When my son Rupansh was three years old, I realized that traditional learning is not helping him in this age of computers and multimedia.His fondness of TV, Youtube and mobiles forced me to look out for good education apps. I downloaded quite a few of them from Google play into my tab. But I realized that mobile based learning is more isolating for the kids, as we hardly can participate with them in their learning process.

His school has smart class. But when I went to school to check up, I realized that the contents were rich in animation and graphics as you would expect but low in process of learning. So I started thinking of creating some PC based apps for Rupansh.

It is then I created a very simple app to make some simple animations. The basic idea was to render some gif and other images to make stories for him. As I started working towards it, I kept improving the engine, incorporating Mathematics, NLP, AI and several other critical components. My focus all throughout was to create an app that can be used to create other apps for teaching the kids. I called these miniature apps as activities. Each activity is a learning lesson. My initial idea was to go with Unity as one can expect. But I wanted to build something that can be used by other teacher to build their lesson too. So, I created an engine that can play a Rainbow activity. A Rainbow activity can be created without any coding. Entire logic is embedded into the file name. So any one with some basic knowledge of MS-paint can create an activity for his child.

What it does

Rainbow is like an iTune for preschool teaching. It supports various activities like Odd Out, Pai matching, coloring, puzzles, puppetry, Mathematics, English language learning and so on. One can easily create a Rainbow activity by placing image and sound files systematically into specific folder. No coding is needed to create a Rainbow activity.

The best thing about Rainbow is that it adjusts it's UI according to resolution. It is mainly developed for AIO platform where it's engine can handle upto 10 touch points. Every operation is alternatively supported with mouse also. Rainbow adjusts image resolution according to PC RAM settings and therefore runs well even in 32 bit 2GB RAM.

Rupansh's school now has adopted Rainbow, replacing their hugely invested smart class app. The ability to run on any Windows PC makes it a one of it's kind.

More than anything else, Rainbow bridges the gap between parents, teacher and the kids. With Rainbow, a teacher can actually play alongside the kids while teaching them, instead of actually "teaching". This makes the whole interaction between the teacher and the kids more intuitive. Each of Rainbow's activity is carefully designed to help the kid with self learning ability. Every character is sound and speech supported. So, the kids can learn themselves about various concepts as well as can play alongside their teachers and parents.

How we built it

Rainbow at the core is simply a gif player. As I mentioned earlier, I wanted to add some simple animation for my kid. I had built the alphabet activity to render 'A' and 'Apple' together.

My son was glued to my AIO for two days when I made the first version of Rainbow. But then he adandoned it. I realized that kids need new 'toys' and gets bored with same animations over and over. So I had to find a way to add new contents.

Instead of building one app for whatever he needed to learn, I thought wouldn't it be cool if I can somehow create many activities without actually coding? It is this thought that gave rise to Rainbow engine.

I created an entire game engine with basic gif player as the rendering engine. This game engine now could integrate new activities in Rainbow without coding. But nature of activities were too limited to make it a strong learning tool for Rupansh. So I bought various publisher's books upto lower KG. I categorized the workbook activities and created engine plugin for these activities. Then I separated the linguistic and numeric engines and finally puppetry and learning engine.

It is then Abhishek nandy joined me in. Once I gave him a demo of what I built, he immediately said that this needs more testing and UI enhancement. Since then he is working with me tirelessly to improve the app and the overall user experience.

My wife Moumita, with he experience of teaching Rupansh came in with ideas and logic to integrate conventional learning tools like charts into Rainbow. We included Manisha into our team for her expertise in Augmented reality. We are now exploring AR and VR plugins for Rainbow.

Touch Handling

Raionbow supports both touch and mouse from out of the box. But there is a twist. Generally, when you handle mouse and touch differently, giving support to large number of activities for multi touch and multiple fingers becomes difficult. So we created a method for handling "points" relative to the rendering element. We have handled "Click" and move event separately. All we do is convert the touch and mouse specific coordinates to rendering coordinates and inject these values to our methods.

The coolest part is that, unlike any other education game, Rainbow activity game mode is controlled by a virtual teacher, called teacher mode. For all the activities, the teacher mode can be turned off. Once you turn off the teacher mode, all the props and backgrounds are available for the kids for playing around. When the teacher mode is turned off ( by tapping the teacher mode icon at the bottom), kids can tap on animated character list and play with these characters, make movie, record video and so on.

Multi-User: Our "inject" driven approach handles any number of touch points. For example in activities like ShadowArtist and Transport, you can bring multiple objects into the scene. Then many kids can together control/move these characters.

Multi touch: When teacher mode is turned off, you can tap on the select button and then select any characters. The size of these characters can be controlled using multitouch outside the selection area.

The movie player in the Video section is another multi touch fun which can be zoomed/panned and rotated in any angle with multitouch for a pleasant viewing.

Challenges we ran into

We have met several challenges during the development of Rainbow. As Rainbow, was never meant to be what it is now, at the core it gets quaky in many logics. For almost all the new type of game, we need to alter the entire game engine, adding flags and trying to keep each activity unique. We hav't yet built a parser for Rainbow activities. So, after creating each activity, we are required to test the integrity of the activity by turning onto the debug mode.

One of the other challenge was to train the teacher/user to use Rainbow. As, everyone is not well versed with kid's education, it gets difficult to perceive people about what Rainbow does. Even for the schools, pre-school teachers are far less computer trained. So created video series for Rainbow for making them comfortable with Rainbow. We are also running offline physical training programs in Rainbow to train the teachers to use it.

Rainbow now has over 100 activities covering about 70% of UKG syllabus, 100% of LKG syllabus of KidZee international preschools.

With mobile and tablets around, and with extremely high quality 3D graphics oriented apps around, it was very difficult initially to convince schools and the kids to try Rainbow. But once they did, the simplicity and the fun learning made it extremely popular.

Accomplishments that we're proud of

Rainbow is in Pilot phase where we are running pilot in eight preschools. We have created a startup around Rainbow. When I built the first version of it, I had never imagined that it could be so popular that schools will be willing to pay for it. Schools along with their smart classes have also ordered AIO on our recommendations for many kids to learn together.

We are extremely proud of the fact that kids are actually loving it and teacher are using it in real world in the class rooms.

What we learned

We are keep learning with Rainbow. However, if we are to pick a single big learning lesson, it is the understanding of kids and their needs. This has particularly helped particularly me to educate my own son in better ways. We also learnt that it is not always the eye catching 3D graphics that makes an application popular, but the overall utility to for the user group it is meant for. We are re-living our childhood with Rainbow.

What's next for Rainbow

Rainbow is now a startup, bootstrapped by us. We are looking for runrate to keep the dream and the project alive. Help us improve with your valuable suggestions and by spreading the word.

Built With

Share this project: