Wrapping up ICM, or Final – Take 3
ICM became wrapped up in my final because I wanted an interactive scene for my book.
But when I started working on the code the book didn’t exist at all. So while I knew what sorts of interactions would happen, I used just placeholder shapes and keypresses. That way I could work on getting the code working while working on the assets and physical book separately.
I got to the point of everything working together with all prototypes…
A lot of the feedback I got from that and earlier prototypes had to deal with getting people to look where I wanted them to. How do I tell them to look up or indicate that something is happening? So the fox received a sound cue and one of the constellations now plays a song. I want the other constellations to play as well and those songs should be in there soon.
I learned a lot just getting to this point and now had to move forward dropping in my images…
- Creating objects for everything and arrays to run through all of them. I wanted each firefly to fade out randomly and float independently. Each fox has a slightly different speed. Figuring out how to change an individual quality – Is a firefly still present or has it faded out? Is a fox entering, exiting or scooting over?
- Dealing with so many imported images and resizing them proportionally. The constellations are supposed to appear in specific spots on the map but getting that to be the same no matter the window size has proven a bit difficult for me. So I tried to locate them proportionally and place them that way. Though not yet perfect, it’s much better than hard coding in their location.
- Switching between book states and clearing everything out when the book is closed as well as handling my image states. The constellations needed to go high and low and I needed to always know whether or not a fox was wearing sunglasses or sitting.
- I had to figure out how to deal with sound properly for this as well. Though I still need to fix the timing of my two looping background tracks, Everything else triggers (and cuts out…) appropriately.
- Triggering the lights was quite the challenge. I really wanted to be able to control the room lighting but I had so much trouble all because of what turned out to be something silly. You have to find the IP address and create a user for your program on the Hue bridge in order to access it. I did this through the debugger tool first and managed to control everything in that manner but when I started getting into the library I’d found (jshue), I hit a wall. I couldn’t get anything to connect or run! All because I didn’t know to add in the error callback that the creator omitted. So many thanks to a friend who helped me solve that. Unfortunately the are still dependent on a wifi connection so if the connection is bad or the program is running slowly – they change with an incredible delay. I can deal with fixing a delay over them not working at all however.
And at this point, after all that, it looks nice!
The code is available here.
But there’s still a lot I want to do with it. I want to populate the background and maybe work in another page for my book. I’d also love it if there was more interaction between the different elements. It was suggested to treat them like systems impacted each other and I think exploring that idea could be great. This will be in the ITP winter show with the book so we’ll see how much more I can create in the next few days.