Cet exemple plutôt complexe, voire compliqué, montre comment changer le comportement d'un objet en lui changeant sa classe.
On utilise le principe du polymorphisme qui permet à plusieurs classes d'hériter les mêmes aspects et comportements de base (position, taille, couleur, etc), puis de changer uniquement un aspect ou un comportement. On traite chacun des objets spécifiques comme un objet générique (variables communes) mais avec ses comportements spécifiques (méthodes spécifiques).
Voici un exemple qui montre comment faire un projet plutôt simple qui exploite l'aspect multi-touch des iPhone et iPad. Ce code marche uniquement avec OpenFrameworks v0062 (cf. http://github.com/openframeworks/op...). Il montre également l'utilisation des classes, structs, vectors, et #define.
À noter enfin que cet exemple révèle l'existence d'un onzième doigt humain.
Étudiant-e-s concerné-e-s : 3° / 4° / 5°
Intitulé : « Programmation artistique avancée avec OpenFrameworks »
Enseignant (s) : Douglas Edric Stanley Date et heure : 9h à 18h du 25 au 29 octobre 2010
Objectifs
Passer à la vitesse supérieure dans la programmation d'œuvres interactives et évolutives
Compréhension du langage de programmation C++
Acquisition des techniques avancés de la programmation, notamment l'usage des pointeurs et vecteurs
Comprendre l'environement de programmation « XCode »
Développement d'applications mobile (iPhone, iPodTouch, iPad)
Intégration de PureData dans un projet OpenFrameworks sur iPhone/iPad
Contenu
OpenFrameworks est un environment de création algorithmique, conçu pour et par des artistes pour faciliter la création de dispositifs interactifs et génératifs. Il s'inspire de la philosophie de Processing, et partage un certain nombre de ces fonctions : si vous vous sentez à l'aise avec les fonction de base de Processing vous serez prêt à passer le cap vers OpenFrameworks.
Pourquoi un deuxième environment de travail, alors ? Tout d'abord pour des questions de vitesse et de qualité d'affichage et d'execution. Processing est basé sur Java, alors qu'OpenFrameworks est basé sur C++, un langage beaucoup plus rapide, mais aussi un peu plus difficile à apprendre, surtout pour ceux qui n'ont jamais touché une ligne de code. En contrepartie de ce supplément d'apprentissage, le langage C++ vous permettra de travailler à la vitesse maximale de votre machine, et de faire certaines choses que vous ne pourriez jamais faire en Java.
Deuxièmement, le langage C++ est très proche de Java et lui ressemble énormément. De cette façon, OpenFrameworks a été conçu pour permettre aux personnes expérimentés de passer de l'un à l'autre dans leur apprentissage, ou en façon des besoins de chaque projet (chaque environment a ses avantages et désavantages).
Enfin, OpenFrameworks vous donnera accès à des fonctionalités — par exemple la vidéo — qui sont difficilement accessible à l'intérieur de Processing ; sinon à des plate-formes nouvelles qui nécessite une meilleure gestion des ressources de la machine, comme la plate-forme iOS d'Apple (iPhone, iPad, AppleTV, ...).
Cours intensif. Démonstration et explication des concepts avancés de la programmation, exemples et analyses d'oeuvres interactives, exercises pratiques (individuels et collectifs).
Nous recommandons fortement à tous les participants de réviser l'ensemble des cours sur [Processing–>rub81], notament ceux sur les listes et la programmation orientée-objet. Le cours sur Processing sera par exemple une bonne préparation pour cette formation.
Matériel personnel
Les machines sont fournis par l'atelier, et les logiciels entièrement gratuits. Nous recommandons néanmois aux étudiants d'apporter leurs ordinateurs portables s'ils en possèdent. Pour ceux voulant exécuter directement leurs programmes sur iPhone ou iPhone, une machine MacIntel sera nécessaire.
Stage de remise à niveau
du 18 au 22 octobre 2009 (9h-12h / 14h - 17h)
Enseignant : Douglas Edric Stanley
Années concernées : 3°/4°/5°
Objectifs
Découvrir les possibilités de l'algorithme dans la création de dispositifs artistiques. Bien connaître l'environnement de programmation « Processing ». Acquisition des techniques de base permettant de gérer seul ou à plusieurs un projet d'œuvre interactive ou évolutive.
Contenu
Souvent on sous-estime le rôle de la programmation dans les œuvres interactives, oubliant que l'interactivité nécessite en réalité la création d'un programme. Malheureusement, l'ordinateur ne créera pas ce programme à notre place. HAL9000 n'existe pas encore, ce qui est plutôt rassurant, mais la plupart du temps gênant pour l'étudiant en arts plastiques qui n'a pas forcément envie de devenir ingénieur informatique pour créer des œuvres artistiques. Heureusement de nombreux artistes ont déjà traversé cette difficulté et ont laissé derrière eux de puissants outils à la fois ouverts, gratuits et conçus spécifiquement pour des étudiants en art.
Ce cours utilisera un des plus célèbres logiciels de programmation artistique : Processing (http://www.processing.org). Le cours sera basé sur des cours en ligne du site de l'école (http://www.ecole-art-aix.fr/rubrique81.html) et le nouveau livre Processing, dessiner et créer avec du code informatique qui vient d'être publié sous une licence libre. Ce deux cours en-ligne et/ou sur paper, permettront à l'étudiant de revenir à n'importe quel moment après la formation sur les concepts et techniques enseignés, mais à son propre rythme. Ces cours en ligne seront révisés sur place, accompagnés d'expérimentations artistiques.
La base de Processing est la création d'images et nous axerons le cours sur ces aspects de l'environnement. Mais Processing peut manipuler de nombreuses autres matières : nous traiterons par exemple les entrées audio et vidéo, des programmes en ligne, et l'interfaçage avec le monde physique via Arduino ou Pinguino.
Méthode d'enseignement
Démonstration et explication des concepts de base de la programmation, exemples et analyses d'oeuvres interactives, exercices pratiques (individuels et collectifs).
Nous devons noter ici qu'aucune connaissance préalable est nécessaire pour suivre ce cours, et rappelons à tout ceux qui auraient fuit les mathématiques en s'inscrivant dans une école d'art, que la programmation n'est pas de la mathématique et peut être un lieu fertile pour l'exploration artistique.
Particularités
Les machines sont fournies par l'atelier, et les logiciels entièrement gratuits. Nous recommandons néanmoins aux étudiants d'apporter leurs ordinateurs portables s'ils en possèdent.
Casey Reas, "Processing : A Programming Handbook for Visual Designers", 978-0262182621
Daniel Shiffman, "Learning Processing", 9780123736024
Kostas Terzidis, "Algorithms for Visual Design Using the Processing Language", 978-0470375488
Joshua Noble, "Programming Interactivity : A Designer's Guide to Processing, Arduino, and openFrameworks", 978-0596154141
Ira Greenberg, "Processing : Creative Coding and Computational Art", 978-1-59059-617-3
Bill Moggridge ed., "Designing Interactions", 978-0262134743
John Maeda ed., "Code de création", 978-2878112467
John Maeda, "Design by Numbers", 978-0262632447
John Maeda, "Maeda@Media", 978-2878111866
Lucy Bullivant, "4D Space, Interactive Architecture", 978-0470090923
Tom Igoe, "Making Things Talk : Practical Methods for Connecting Physical Objects", 978-059651051
In Scolu one discovers a virtual and interactive aquarium – also a multi-tactile interface – inhabited by aquatic creatures created by Leïla Jaquet in collaboration with Stanislas Bernatt (HEAD–Geneva/Media Design). By placing their iPhone on the interface, visitors see the behaviour of the creatures alter: when one of these creatures enters an iPhone, the visitor can take it with them and then give or exchange it. The experience is therefore intended to continue and to spread beyond the walls of the exhibition.
Scolu begins as an interactive aquarium, populated by virtual creatures. As a gateway between digital life and physical life, the aquarium is the starting point of a journey that will eventually lead to the four corners of the planet. Moving from iPhone to iPhone, from pocket to pocket, the virtual creatures form a community that is both real and virtual, connecting human beings and virtual creatures through physical contact. The experience is thereby prolonged beyond the walls of the exhibition and seeks to spread itself well beyond its source.
update: I’m updating this post now because of a recently released video that I have yet to publish here.
Scolu prend naissance dans un aquarium virtuel et interactif, peuplé de créatures virtuelles. Passerelle entre vie numérique et vie physique, l’aquarium est le point départ d’un périple que ces créatures vont faire à travers la planète. Ces êtres se propageront à travers le monde, passant d’iphones en iphones, de poches en poches, formant ainsi une communauté à la fois réelle et virtuelle puisqu’elle réunie êtres humains et créatures virtuelles autour d’un contact physique.
Voici un fichier .ai et .pdf pour fabriquer votre propres T-Shirts pour se rappeler à tout moment les fondamentaux de la programmation objet. Sur un côté on trouve la définition de la classe, sur l'autre les instructions pour créer 1000 instances de cette classe.
Voici un programme pour dessiner avec votre visage. Il s’agit d’un programme fabriqué vite-fait dans le cours « Design algorithmique » du Master Media Design au HEAD Genève.
Lieu: Head – Genève, HEPIA, 4 rue de la Prairie (2e étage)
Karsten Schmidt and I are currently teaching parallel workshops at the Master Media Design in Geneva. I’m basically teaching the basics of Processing and introducing the core principles of algorithmic design, whereas Karsten is working on data visualization and doing what he does best.
For those in town, he will be giving a conference tomorrow (Tuesday) at the main HEAD building Blvd James-Fazy 15. The following text has been copy/pasted from the official Media Design website.
Karsten Schmidt (aka toxi), is a London based computational designer merging code, design, art & craft skills. Originally from East Germany and starting in the deep end of the early 8-bit demo scene, for the past 2 decades he’s been adopting a trans-disciplinary way of working and been laterally involved in a wide range of digital disciplines. With his studio PostSpectacular, he is actively exploring current possibilities at the intersection of design, art, software development and education and applying these in a variety of fields.
His talk entitled «Polymorphism & open source design» will deal with the process & philosophical shifts of creating new design tools and understanding technology as an activity rather than a set of consumable objects.
Karsten Schmidt (aka toxi), né en 1975 est designer et programmeur. Originaire d’Allemagne de l’Est il est basé à Londres où à travers son studio PostSpectacular il explore le potentiel d’une activité transdisciplinaire, touchant à un large éventail de disciplines entre design, art, développement informatique et enseignement.
Sa conférence intitulée «Polymorphism & open source design» traitera du processus de création de nouveaux outils de design, des changements philosophiques que cette création implique, et de l’appréhension de la technologie comme activité plutôt que comme ensemble d’objets consommables.
Decode, identité visuelle, V&A Museum, 2009–10
Sascha Pohflepp, Karsten Schmidt, Social Collider, 2009
En attendant la première version officielle du PDF du livre Processing : Dessiner et créer avec du code informatique, voici quelques liens pour télécharger le livre en format HTML (lecture en ligne), papier, PDF, ou ePub (iPad, iPhone, etc).