Weeks 4 and 5 — Down and back up again

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

Of animation, coding, and digital sound

Slumbering in the background of my thinking for a few years now, and slamming to the surface  in the last twelve months has been the idea that

• as an artist who whole-heartedly strives to create culturally relevant contemporary art that is both of the moment and as uniquely mine as possible — reflections of my essence, my outlook and my epoch

• as an artist very interested in technological advances in art

• as a scientist who has the capacity to learn new technological systems easily

I need to go beyond drawing, painting, Photoshop, photography, and digital printmaking. I need to be creating my own tools, writing programs to create my work rather than just using programs; I need to branch out from two-dimensional art to include the dimension of time, via animation and sound.

This realization has been expressing itself in the past year as an obsession to “learn to code.” Or, better, to re-learn to code; to learn to code in modern languages and with modern practices; to work towards fluency and the use of code as second nature. My progress towards these goals has been accelerated by my discovery of the multitude of learning resources now available on the Internet, starting with Google’s Python course (see previous blog), followed by dozens of courses and mini-courses on Codecademy and Codeschool; Coursera’s Learn to Program: The FundamentalsAn Introduction to Interactive Programming in PythonComputing for Data Analysis; Stanford U/Class2go’s Introduction to Databases ; UC Berkeley/edX’s Software as a Service.

I branched out a few months ago to also start covering the sound aspect. I started with Coursera’s Introduction to Digital Sound Design and familiarizing myself with Apple’s Logic Pro in combination with Native Instruments’ AbsynthKontakt, and FM8. (I first bought the Native Instruments software package in 2010, but was then too intimidated to succeed to get anywhere with it.) Eventually I want to work with sound in a broader context than music, incorporating nature sounds, mechanical sounds, and so on, into soundscapes. I would also like to work with algorithmic, generative composition, as well as interactive sound.

My first project of animation accompanied by sound was put together in honor of my mother’s birthday. For sound, I took as my starting point the Bartok violin duets that I used to play with my father. I reworked them into layered compositions using multiple synthesized and sampled instruments for each violin part. For the animation (using Processing, the Java-based programming language for visual/new media arts) I started with the lines symbolizing the codification of information, from handwriting and calligraphy to drawn traces hinting here at writing and there at representations of sound waves, described in my previous blog posts here and here, and added interactivity and colorful imagery working with simple geometric and semi-organic forms in transparency. The initial web-based version of the project was presented via Internet on my mother’s birthday this May, with my mother in Italy and I in Canada; she was delighted. I continued the project in the form of a local-computer-based application, incorporating the layering of rectangular snippets of photos and scans rather than simple rectangles of one color. Since the load times for the initial web version are already long, the newer version, with higher resolution and involving a data folder of many relatively large image files, is not appropriate for a presentation via the Internet. Here, however, are some screenshots from the application:

artwork-1349s artwork-0737s

Here are a couple more images composed afterwards in Photoshop combining a couple screenshots each:

artwork-2279ms artwork-1556ms

As well as my interests in coding for my personal work, I serve as the technical advisor of Voix Visuelle, a non-profit contemporary art exhibition space in Ottawa. I hope to develop (along with my husband Ahmed Omran) a web-based application to automatize the clerical work associated with receiving and getting artist submissions ready for review by jury. Presently, Voix Visuelle receives its submissions on CD/DVD, on paper, or by Email; the administrators must then laboriously enter each artist’s information in an Excel database, and collate the image files into file folders to give to the jury for review. The application should not only do all this work automatically, but also automatically verify the submissions and coach each artist in making a complete submission with no missing information. (At present, the administrators must often contact artists by telephone or Email to ask them for information they have inadvertently omitted).

This application will be developed partly as a volunteer effort and partly funded by a grant graciously provided to Voix Visuelle by the Association des groupes en arts visuels francophones (l’AGAVF).

Our progress in this project will be greatly facilitated by our participation in the Summer Academy of HackerYou, an intensive full-time course in web development using Ruby on Rails, this upcoming July and August in Ottawa.

While I both enjoy self-directed learning and generally progress well with it, I feel that Summer Academy is a notable opportunity for me to re-experience a less isolated learning/working environment. I greatly look forward to interacting both with other students and with the HackerYou team. Also, while I feel fairly comfortable self-studying many programming-related topics (particularly those that are more strictly mathematical), I have so far felt clumsy and ill-prepared in my attempts to learn Ruby on Rails, the model-view-controller software architecture pattern, Git, and so on. I feel therefore I would benefit significantly from a systematic, from-the-ground-up coverage and practice of this material. While front-end development is somewhat more likely to be a future focus for me than back-end, I feel the need for a good general understanding of the whole development process. Also, I believe that handling databases with Rails will come in handy for some of my projects: particularly administrative ones such as the artists’ submissions app mentioned above, but also purely artistic projects involving data visualization and sonification.

Python: 24 ao?t 2012

(probably the last post written last year which I never got around to publishing)

Well there was a flurry of activity in processing, and then grant proposal written and submitted. Before and after the grant proposal, have been learning Python from the Google Python course. This evening I worked on the exercise of taking Social Security’s baby name data (popularity ranking of boy and girl names for the US, for each year http://www.ssa.gov/oact/babynames/) and writing a Python program to use regular expressions magic to convert the html pages into cleaned up simple text files containing only:

Aaliyah 91
Aaron 57
Abagail 895
Abbey 695
Abbie 650

Most of the work is done by the line

(please select english version; I can’t get the formatting right on both copies at once…)

thus ignoring all the chaff, zeroing in on the lines of form

(please select english version; I can’t get the formatting right on both copies at once…)

and converting them to (1, ‘Michael’, ‘Jessica’) tuples and the like.

Then in the command window  one can enter

  python babynames.py –summaryfile baby*.html

to convert many files all at once. The instructor (three cheers for Nick Parlante! ) then suggests seeing patterns over time using shell commands:

  grep ‘Juliet ‘ *.summary

gives an output in the command window like this:

… baby2007.html.summary:Juliet 519
baby2008.html.summary:Juliet 453
baby2009.html.summary:Juliet 318
baby2010.html.summary:Juliet 285
baby2011.html.summary:Juliet 252

showing the evolution of the rank of Juliet as a baby name per year. I was inspired to download the baby name rank files for the top 1000 names for the last 100 years (saving each year’s file one by one by hand as I haven’t learned how to automate such a process yet; it took 20 minutes), and then write another python program that would, for a given name, give a text file with the summary

2007 519
2008 453 etc.

I then turned to Processing since I do not yet know a quick way to deal with graphics in Python, and similarly used Photoshop as the quickest way to add labels. I found to my surprise that Paula, which I thought was an uncommon first name, actually was at rank 38-100 in the years 1943-1974. It has declined greatly since then though. Juliet (my mother’s name), which I hadn’t realized was a rare name, was much more uncommon than Paula through most of the 1900’s, but pulled ahead in this century. Ahmed (my husband’s name) first appeared as a top 1000 name in the US in 1974, and also pulled ahead of Paula around 2000. Finally, for some time around 1980, Misty (our cat’s name) was the most popular of all. Unfortunately, neither Paolo (my father’s name) nor Tortoiseshell (their cat’s name) were ever in the top 1000 in the US. Here is the graph:


Another thing that would be interesting to do is to integrate this information over time, to see, over a century, the popularity of names. One couldn’t do it with the data I have used so far, since how do you aggregate when you know rank, not number of ppl with each name. However, I have revisited the site, and found that in addition to the top 1000 ranking data, they also release the yearly data (in one nice zip file with all the little files from 1880 thru 2011 neatly packaged together, with far cleaner formatting… oh well, nice exercise Nick, but this is much nicer data) of NUMBER of people for each name, for all names with at least 5 (for privacy reasons; and apparently this accounts for about 70% of the population) ppl in that year. So in that case Paolo’s appear (85 in 2000, for example) tho still no Tortoiseshell’s…

Images couleurs avec Processing — 24 juillet, 2012

(again, a post written last year which I never got around to publishing)

Color images created along the same lines as discussed in the previous post:

jul24Var1Sample jul24Var2Sample jul24Var3Capture1

Dessins avec Processing: 18 juillet, 2012

(again, a post written last year which I never got around to publishing)


Lately I have been revisiting Processing (http://processing.org/) and reading and thinking about generative art (see for example




and making a concerted effort to get to the point where I am including generative art in my work. For the moment I am working on « expressing the codification of information, from handwriting and calligraphy to drawn traces hinting here at writing and there at representations of sound waves » (from my new artist’s statement). The idea is to first come up with algorithms to create these lines computationally, and then to see where the new medium takes me. Here is another screen shots from today’s work, where I am starting to create some graphically interesting interaction between the lines, by drawing a series of circles between each pair of lines.


Here are a couple snippets from a few days ago, where I was exploring the production of various forms of lines:

jul4b jul6

Matrices 2012 Budapest: 18 Juillet, 2012

(Posting a few posts I wrote last year but never got around to publishing)


A few days ago I created my images for an international art competition in Hungary. From the announcement:

The aim of the organizers is to give the opportunity of presenting small-sized electronic artworks created by foreign and Hungarian artists, making a survey of diversity and presenting their works at Hungarian and international level, within the size of 20 x 20 cm. We expect special technical solutions synthesizing new procedures, original ways of expression, raising topical techniques and contents, high-standard works: electrographs composed on different layers, digital installations, virtual and 3D creations, objects showing the artistic potentials implied in computer technique.

I made some new compositions because

(a) most of my pieces are meant for much larger formats (and aren’t square, which would be ideal if not required here)

(b) I wanted to submit pieces that were markedly « electrographic » (more layering, etc, than usual).

They are layerings of:

— a night office building photograph, with dream catcher in the window

— a macro shot in transparency of a leaf

— a greatly enlarged scan of an engraved plaster plate

Together the series is titled: Dream of Life

These pieces were exhibited in a group show by the Hungarian Electrographic Art Association, under the title MATRICES 2012 International Electrographic Artworks of Small Forms /3rd part/, from 10-28 December 2012, at the MTA (Hungarian Scientific Academy) Jacobin Hall, Budapest, Hungary.

dream2 dream3 dream4

Exposition ? venir

Du 9 juillet au 16 août 2011; vernissage le samedi 9 juillet à 13h

Duo Paula Franzini – Claire Lemay

à Le Centre d’artistes Voix Visuelle

81 avenue Beechwood  Ottawa ON K1M 1L7


Heures d’ouverture: du mardi au samedi, de 11h à 16h


Une annonce plus détaillée suivra bientôt.

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