From time to time I get possesed by an idea, which I want to implement. It is almost like if that idea was forcing me to make it happen. When this happens I can barely wait till the morning, so I can start coding and at least test, if that idea is doable.
I had an idea to implement digital caleidoscope few years back, but back then I lacked the necessary tech skills to make it happen. One night I was lying in my bed, when the idea of caleidoscope came back to me. Oh, this was something I dreamed about, I remembered. Hmmmm, let’s see how I would approach it today having the tech skills I have now. My dreamy, half sleeping mind started processing. After a few minutes I realized that yes, it is indeed doable. My heart started racing like a galloping horse. I was so excited I could not sleep anymore, I could not wait till the morning. But I waited anyway.
The next day I started prototyping. It was the first think in the morning, before breakfast or any other usual morning routine. I just had to test if my idea was indeed doable. After couple of evenings I had my first working prototype.
I do not want to disclose too much yet, the app is not yet production ready. But I have already learned a ton by making it.
What have I learned?
The core of the app is canvas animation and mirroring. So first I had to learn how to manipulate the raw pixels in the canvas. I have learned how to scale and rotate images in canvas, how to cut them to pieces and flip them. I have learned how to capture stream from device cameras, and how to produce a video. Also how to debug application on Android phone, how to host prototype application on render.com and let it automatically deploy new version when I push to repository. The world has changed significantly since I tried the first version back then. The web development technologies have matured.
In the peak of my excitement, I even skipped social activies, so I had time to study canvas APIs and related technologies. I was totally consumed by it. Now the excitement has already passed (because falling in love can be consuming as well…) and I have to actually push myself to work on my side project. It is not that I would really have to, but I have decided that I will do my best to finish it. So that’s what I am doing.
Why to have a side project?
Why to have a side project when I already work full time? Why to invest my time and energy into something what may turn out to be “waste of time”? Why to learn new technologies which I will not use in my day job?
Well, I am creative and driven by curiosity. Also I am ambitious, and I really want this project to fly. Also it is great learning opportunity. Some of the ideas and technologies are reusable in my day job, some not. But it keeps my mind fresh and programming is still an exiting thing to do. When day job becomes too grinding or boring, I still have something what is fresh, juicy and fun to do.
I have some ideas how I could monetize this idea, but it needs a lot of polishing. If you have an idea or want to cooperate on it, let me know in the comments.