Adepts was developed using Processing. The code is organized in different parts, and written in different tabs with Processing. Each tab contains a piece of code that allows the application to do something.We divided the code in this way:

The main tab, Adepts, contains all the variables and the “events listener” like for instance “mouse pressed” events.
In BottomMenu and TopMenu tabs, we created an animated menu using object-oriented programming. We use this paradigm of programming because it allows us to manage in a simpler way the animation and construction of the menu.

Each menu is built as a combination of buttons status, as you can see in the image below.

As one proceeds through different screens, some menu buttons might be available, others not.
So we thought to build the menu each time we loaded a different screen, calling the setButton function through which we can set the top or bottom buttons to be available or not. The two statuses are shown also in the interface, because a not-available button is shown as semi-transparent to indicate that it is disabled, and the user can not click it, for logical reason of the application.
In the draw function we put the logic of the application and the function that draws each screen.
In the floatingBubble tab is all the code that creates the movements of the bubbles on the main screen, and in the speechRecognizer tab there is all the code that creates the animation of the speech recognizer button when we chose to set it to active.
In the animation tab we load all the images that make up the animation where a new bubble comes up. For reason of time we decided to create that animation with Adobe Flash first, using a guide line to create the text animation, and then we exported it frame by frame as images. With Processing we took these images and we show them one by one with the same result we had with Flash, but very quickly way (this refers to the idea of sketch/prototype). (*read more at the bottom of the page)
![]()
A very interesting and innovative part of the programming was when we tried to load the processing application into an iPhone. Tom Hulbert, an interaction designer at the Royal College of Art in London; sent us a framework he developed to allow to run Processing sketches in iPhone. So we jailbroke our iPhone and imported our Processing code in Xcode (the enviromentfor developping iPhone applications). We hacked again a little bit the iPhone to allow it to run .pde files, we transferred the application, and all worked perfectly!
You can see the icon in the image below:

* How the animation could be programmed in Processing
We chose the quickest way to make the animation but whether we, or other people decide to make it in Processing we suggest a way to do it. Processing is a lower level programming language than Flash, so you have total control of your sketch just using simple functions.
The way we suggest to make the animation using Processing is first create a very simple algorithm which stores all the movements of the mouse inside the canvas in a double array, storing both x and y coordinates for each point. In this way you can “draw” an invisible path to use as a guide and save its in an array.
Then you can load the text from a text file and store all the words inside another array whose length is equal to the number of words in the text file.
One by one you can use these words and move them fillowing the invisible guide you created before (using the position x and y stored in the first array you created). This partly works but partly not because in this way we have, at the end, all the words in the same position (the last x and y in the array of the guide). To solve this we may start the animation of the words inside a “for” cycle and every time the cycle is running we may decide that the word we are managing flow a little less, in order to place it in the right place along the guide.
That’s it!
We wish to thank:
Tom Hulbert – for his big help giving us the Xcode framework for loading Processing applications on the iPhone.
Nicholas Zambetti - for his help on programming and compiling the application for the iPhone.
Luca De Rosso – for his support on developing Flash animations.