Holly, Hex, and Psychedelic Leaves

I’ll happily discard the blow-by-blow account this week in favor of talking about my ongoing projects:

Psychedelic Leaves is my Coursera Processing project; it’s a meditative interactive art animation.  Of course I haven’t had much time to work on this project given Summer Academy, and the web page and instructions, particularly, are a bit basic. I have until July 29 to perhaps revise…If I get a chance I might smarten up the presentation a bit, but chances are I’ll focus on Summer Academy stuff. A screenshot:


For this course we are encouraged to develop projects that extend the work done in class, exploring code demonstrated by the lecturers, so I riffed off an algorithm that was introduced as “one of the earliest computer graphics algorithms … used by John Whitney, Sr to produce a range of really famous abstract animated pieces.” (Mick Grierson). The algorithm in one of the forms it was presented to us can be tried here (I googled a line or two of the code and found that a copy was put up on openprocessing.org recently, I imagine by someone associated with this class). It creates an animation of rainbow colored circles that change as the user moves the mouse around the window:


My version has been modified extensively to use custom « leaf » inspired filled shapes rather than simple circles; to use a complex and pleasing set of colors rather than a simple set of rainbow hues; to exploit the possibilities of transparency; to allow the possibility of experimenting with layered in photos; to be accompanied by music (a choice of a Triphop inspired loop that was one of my first Logic Pro practice compositions, and one of my Bartok inspired pieces); and to allow much user interactivity via mouse and keyboard.

Note that sound may take several seconds to work after the animation is first loaded in its website presentation, as the sound files take quite a bit of time to load. Also: one must click the mouse at least once in the image window before the keyboard key controls work.

Of the two Rails projects I am developing with my husband, Ahmed Omran, Holly is more his baby. We’ve worked together on the concept/design/CSS/Ruby-logic parts, but the lion’s share of the Rails/Javascript/jQuery coding was done by him. « Holly » is a homage/reference to the « peculiar » AI computer from the show « Red Dwarf ». Holly can answer word problem math questions like “What is 70 plus 3 multiplied by 10?” and take voice input and speak the answer as well. Next we are planning to have Holly answer questions about Ruby and Rails…

The second project is Hex, an educative game app to develop fluency in naming colors by their hex codes — a color is shown, and the user has to guess its hex value; the app tells you, in a percentage score, how well you did. The next steps I plan are: a more attractive UI; the possibility to select color sets of varying difficulties; for the user to input a set of colors (via hex codes) that she would like to practice; to have a photo mode. This one is, so far, more my baby — the code resides on my computer and was typed by me, although most of the “How do you do that in Rails?” was figured out in pair programming sessions with Ahmed.


Meanwhile my florified follow-the-book-shopping-cart is coming along bit by bit, somewhat painfully, definitely with less enthusiasm than engendered by the above projects, but useful in that I am being exposed to (though hardly mastering) Rails in much more depth and breadth.

Week 2 — Starting to get more comfortable — most of the time…

Saturday was a short easy day, a pleasant interactive three hour lecture, just a bit of work outside of class, mostly resting and relaxing. Sunday would have been restful, but it turned out last minute that I had to drive to Montreal and back… But I did have a great visit with an old friend, who was very enthusiastic about the photos/animations/music I showed him. I even had enough energy left in the evening to do some Rails reading, and to do some final work wrapping up an art project. Monday more of the same before class; off to class for 1pm; we were only there a couple hours before we were told that the building needed to be cleared for electrical work. So back home to continue our work there. Ahmed and I worked a few hours peer programming a relatively complicated extension to our in-class Ruby exercise. I also got time to very quickly dispatch my week’s work for the Coursera processing course (basically I saved the videos for later — this fall — and just did the assignment), and to spend a few hours on my final project.

Tuesday we went in for class only to find that the building was still out of commission. I was still running an errand when I found out — turning in that art project I had been wrapping up — so it worked out great for me. Feeling relieved that I am almost done with all my outside-Summer-Academy commitments. On the way home I came up with the idea for another app to develop at Summer Academy. I want to donate my large format printer to my artist’s association, so that it can be used collectively. But such a concept would be a bookkeeping nightmare without some sort of printer Coop app to keep track of things. (Keep track of user accounts, ink usage of each person, monthly bills, yearly subscription prices, using money in kitty to buy more ink as needed, giving member dividends at the end of the year if too much money taken in).

At home, a pleasant day of doing a ruby exercise for a couple hours, then several on “css’ing up” the current state of my follow-the-rails book rails app. And then several on my processing final project (I’d meant to make this short and simple, but got engrossed in it; very satisfactory progress though).

Wednesday the building was back online. We were told to work in pre-assigned pairs. This was more challenging than last week as my new partner’s comfort level in the course was lower than that of my previous partner. In the morning we did a Ruby exercise and that went reasonably well. In the afternoon we were to listen to a seemingly endless stream of video tutorials on Bootstrap, then use it to (re)do the CSS on our app. Neither of us were happy with the video tutorials and I soon aborted it for myself, and showed him my solution, which he also preferred. I asked Ahmed to show me how to get started using it, how to find the documentation, and then I was happy learning it by applying it. I was resistant at first to replace the CSS I had coded in by hand, but eventually figured “meh, it’s saved on github, try something new,” threw away everything and started from scratch with Bootstrap. I ended up rather liking the clean new look (previous version had a leafy photo banner, a light background texture, and slightly greenish table row colors; I show the Bootstrapped version a bit below).

Thursday before class I continued my rails book work, feeling fairly good about it. It took a bit longer than I planned, but still, I felt caught up (which, to be honest, with this course, almost feels like being ahead in normal terms…). Before I was done, Ahmed came home (he’s been ferrying his little sister back and forth to a science/technology workshop all this week) and proposed we go for a walk, and I ended up, to my surprise, feeling good enough to do our old forest loop, and walk about half a hour.

Back in class, we mainly continued to refine our Bootstrap formatting of our Rails app page, and I even got my courage up enough to show it as the first demo of the day. Here is what it looked like:

The code for the whole app is here and most of the code formatting that view is here (using Bootstrap classes) and here (overrides — some position adjusts, and some shadows).

Time for the evening lecture; in the first part of the lecture I felt happy, I found a vacant easychair to sit in, my foot propped up on my cushion on another chair; understanding everything (css, dev tools), in control. Then he started losing me moving on to rails and mvc, not too far out of my comprehension range but too fast, and then he told us to redo everything we had done so far from scratch with no scaffolding and… my world shattered…wha…how…? Ahmed eventually nursed me through it.

One good thing is that I’ve been pretty good about exercise — in fact better than lately, what with on the one hand my foot finally getting better, and on the other hand, being forced by Summer Academy to avoid my usual problems: too much exercise or too little exercise. There is no way I have time to do too much exercise. And yet there is no way I feel I can survive Summer Academy without finding time to spend around an hour a day on stretching, strength exercises, and walking or stationary biking. So that’s an unexpected benefit of finding it painful sitting on those chairs for hours…

Summer Academy — Coding Bootcamp Week 1

© Copyright Abstract Digital Art | Estampe Numérique Abstraite – Paula Franzini