Totally Real and Legal Horoscope

Oh openFrameworks. Oh oh oh openFrameworks. Where do I even start? I guess with explaining the initial idea.

The only direction given for this assignment was that it had to be made with openFrameworks and you could do something around the theme of ‘space’. Now, space is an incredibly wide concept, so with a bit of creative thinking you could fit pretty much everything in it. Considering how I had absolutely no clue where to start, I just took the cosmic definition of space and went on from there. While daydreaming about the vastness of the universe and questioning multiple life choices my brain suddenly made the connection between the cosmos and the very human and above all very silly concept of astrology. I’ve always been intrigued in astrology, not because I believe in it (quite the opposite really), but because there is so much theory and mystical bullshit surrounding a concept based on pretty much nothing.

With the general idea established I started thinking of ways to make it a reality. I have moderate but specific programming experience, and never worked with C++ before, so I had to think about simple methods. I ended up with a sort of interactive survey where I could create several states or scenes each with a custom GUI, with some nice animations to make the experience more streamlined.

Well, that was the plan. Seemed doable at the time, with maybe even some time to spare to add extra things. How wrong I was. My first discovery was that openFrameworks did not have a very good GUI option. There was an integrated GUI, sure, but it was more geared towards debugging or quick setting changes than being an actual center piece of an application. “Oh, no worries” I thought when I delved through tens of pages full of add ons. “Surely there is a nice GUI plugin that lets me do exactly what I want with it”.

Well, technically I was not wrong. After trying out several GUI add ons that did not quite satisfy my need I settled with DatGUI, a nice add on that was relatively customisable and easy to use. The next challenge was to find a way to switch scenes (or states or screens or whatever you want to call them), preferably with a nice face effect. This was mostly inspired by work I have done in Unity, which has a scene manager built in. It was a pretty major blowback to discover that openFrameworks did not in fact make use of such a mechanism, and that there are very few add ons that can add this functionality, and even less that are relatively recently updated. After a rather extensive learning process of how these darned thing work I decided to go with an add on called PwrrPoint. As the name suggests this is an add on that adds the functionality of making slideshows like Microsoft PowerPoint. Not nearly as pretty as some other add ons I used, but sure as hell more easy to use. After finally figuring out how everything works, I started combining the GUI add on with the PowerPoint add on. Boy was I in for a nasty surprise.

OpenFrameworks advertises itself as an incredibly accessible tool for prototyping and the likes, with a giant library of add ons. While they are not wrong, the add ons in question vary widely in quality. Take the example of DatGui, a pretty nifty add on that works like advertised… on its own. Someone with more programming experience could probably get it to work in a heartbeat, but I wouldn’t be able to explain what EXC_BAD_ACCESS if my life depended on it.

In the end I ended up making the most basic version of this concept possible, by keyboard key input for making choices instead of actual on-screen buttons in a nice UI. By loading all questions in from the start in the form of images placed on top of each other and removing the top picture every time a button is pressed I achieved the basic functionality at the cost of good looks.