ICM Homework Week #3 – Collab with Mike Blum

Respect the Process…

This week we were not just presented with a challenge to create a sketch within new and more complicated specifications, we got our first chance to create code collaboratively. It was an interesting challenge. I am finding more and more that coding is as intuitive as other crafts I’ve learned. Yes, there are concrete rules and concepts you have to wrap your head around and that part of the learning process is very (as the pop-psychologists like to say) right-brain; but I’ve found that the creation process is pretty much the same as any other craft. How do we fully communicate that wonky process that goes on in our brains?

The answer: stop talking and start making. I do my thinking externally. That is, I don’t fully plan out a concept before I start making it. I figure out what I want and how to solve the problem of getting there along the way. Oddly enough, I found the most satisfying part of our collaboration to be when we were doing exactly that while we were working remotely and sharing code and ideas over iMessage.

An interesting thing I noticed through this process was that Mike and I each write our code differently. For example, I liked to use variables and write out my math when plotting coordinates. I figured it saves brain power in the moment while I’m coding (at least I think it does) and it’s easier to remember the path my thinking took when I return to it later.

For example: this is me sketching a heart.

When I shared that with Mike, however, he found it difficult to parse through without me walking through it with him–which I can totally understand. Encountering a wall of code and having to refer back and for to variables declared at the top would make my brain shut down too. Perhaps that process is fine for the learned phase of p5.js but less so for the creation phase.

After Mike and I settled on an idea, we ended up splitting up the coding: I would make the mostly static elements of the “chatterbot” (perhaps one could call it doing the character design) and he would make the interactive elements. We settled on a canvas size as well the positions of the shapes within the canvas in person and then proceeded to do the rest remotely. We would send links to each other of our latest codes and over chat would suggest edits and additions.

I know that this is literally what GitHub is for but I haven’t yet wrapped my mind around all that.

Trial and Error…

As with all projects so far this semester, Mike and I started out with grand plans indeed. Time constraints as well as the fact that we are still building our skills meant we had to pare down our expectations, however. What started out as an idea to make an avatar you could tickle (or punch, depending on how you looked at it) in order to make something happen ended up just being us figuring out how to make something happen at all within the parameters we wanted.

The idea came out of me playing around with the examples given to us as part of the homework assignment. I got it into my head that I wanted to make a slider that would radiate what looked like sound waves of changing colors and sizes from one point. While we ended up using a completely different set of mechanics, that toying around gave us a canvas to work on.

Mike made a Herculean effort to try and get our avatar to spew letters, symbols, and squiggly lines instead but eventually had to settle on added text and spicing up the color and size variation.

To be fair, I couldn’t stop giggling like an insane person when he first sent me that version of the sketch.

I added the mouth opening, he included the eyes to make it even more trippy (although I initially wanted them to blink occasionally in order to give the avatar more of a sense of being alive), and there we had it!

I spent an inordinate amount of time trying to get the avatar’s button to be heart shaped. I still don’t know how to make a heart out of simple shapes and fill it. Comment below if you can help.