Logo

Rédigé par retrodev | Classé dans : Do It Yourself

28
02 | 13

Vous l'avez peut-être remarqué, le Blog of Things a un nouveau logo. Oui, là haut, regardez ! Maintenant, rechargez la page, pour voir ... Hourra, il a changé. Rechargez encore ... Il est à nouveau différent. En effet, c'est un logo génératif.

Design génératif

L'art génératif, c'est la création à travers des algorithmes. L'artiste ne réalise pas l’œuvre, mais une formule, un protocole, un programme, permettant de la créer. La générativité impliquant souvent une dimension aléatoire, le résultat de l'algorithme peut prendre une multitude de formes différentes. La démarche du créateur réside dans le choix et l'organisation des opérations successives.

Bien que l'art génératif ait existé avant l'informatique (notamment avec la musique sérielle), les ordinateurs ont décuplés ses possibilités. La générativité est aujourd'hui appliquée à l'infographie, la vidéo, la musique, mais aussi la littérature et le jeu vidéo.

Processing

Processing est un langage de programmation (libre !) issu d'un projet de recherche du MIT Media Lab. Relativement simple et pédagogique, il a rend l'art numérique accessible aux non-informaticiens. Initialement dédié à la création graphique, la communauté a largement étendu ses fonctionnalités (son, réseau, ...). Son environnement de développement et sa syntaxe, par leur simplicité, ont influencé la création d'Arduino.

Ecrit en Java, Processing est nativement multi-plateforme. A l'origine, les programmes (sketchs) compilés n'étaient également disponibles qu'en Java, l'environnement de développement permettant néanmoins de les distribuer sous forme d'applications natives ou d'applets web.

En parallèle, le projet Processing.js a porté Processing en JavaScript, permettant d'exécuter directement du code Processing dans une page web (avec le canvas d'HTML5 pour l'affichage). Depuis la version 2, le support de Processing.js est inclus.

Le code

Voici donc le code commenté de ce nouveau logo. Tout d'abord, on initialise les variables du programme :

int taille = 120; // taille de l'image
int spots = 3; // nombre de points par ligne/colonne
int[][] tab; // la tableau des points
int space; // l'espacement entre les points

Ensuite, on ouvre la fonction setup(), qui sera lancée à l’exécution, et qui contiendra toutes les instructions nécessaires au dessin, et on initialise quelques paramètres :

void setup(){
  background(#dedede); // couleur de fond
  size(taille, taille); // taille du dessin
  space = taille / (spots + 1);

On remplit aléatoirement un tableau pour positionner les points colorés :

  tab = new int[spots][spots];
  for(int i = 0; i < spots; i++){
    for(int j = 0; j < spots; j++){
      // avec differentes valeurs
      tab[i][j] = floor(random(0, spots+1));
      // signifiant "rien", "blanc" ou "bleu"
    }
  }

On parcours une première fois le tableau pour dessiner les halos :

  for(int i = 0; i < spots; i++){
    for(int j = 0; j < spots; j++){
      if(tab[i][j] >= int((spots+1)/2)){
        noStroke(); // pas de contour
        if(tab[i][j] >= 3*int((spots+1)/4)){ // selon la valeur
          fill(35, 101, 176, 50); //remplissage  bleu
        }
        else{
          fill(255, 255, 255, 120); // remplissage blanc
        }
        // et on dessine le disque
        ellipse((i + 1)*space, (j+1)*space, 2*space, 2*space);
      }
    }
  }

On lance une seconde boucle pour tracer les connexions :

  stroke(0); // on reactive les contours
  for(int i = 0; i < spots*spots; i++){
    // on calcule des coordonnees aleatoires
    int a = floor(random(0, spots));
    int b = floor(random(0, spots));
    int c = floor(random(0, spots));
    int d = floor(random(0, spots));
    // et si il y a des points a chaque extremite
    if(tab[a][b] >= int((spots+1)/2) && tab[c][d] >= int((spots+1)/2)){
      // on dessine la connexion
      line((a+1)*space, (b+1)*space, (c+1)*space, (d+1)*space);
    }
  }

On parcours un deuxième fois le tableau, pour dessiner les points, cette fois :

  for(int i = 0; i < spots; i++){
    for(int j = 0; j < spots; j++){
      if(tab[i][j] >= int((spots+1)/2)){
        if(tab[i][j] >= 3*int((spots+1)/4)){ // selon la valeur
          fill(35, 101, 176); // remplissage bleu
        }
        else{
          fill(255); // remplissage blanc
        }
        // et on dessine le disque
        ellipse((i + 1)*space, (j+1)*space, space/2, space/2);
      }
    }
  }

Et c'est fini !

}

Vous pouvez télécharger le fichier processing (.pde) ici : bot_logo.pde

Liens

Mots clés : processing, logo, generatif, code, diy, javascript 16 commentaire(s)

Reborn

Rédigé par oxo | Classé dans : Do It Yourself

22
10 | 11

Nous l'évoquions précédemment, Mindscape à récemment décidé d'abandonner définitivement le Nabaztag et son grand frère le Nabaztag tag. Du coup tous ces charmants lapin se retrouvent sans vie. Revenons sur les alternatives et l'ouverture du code source à la communauté.

J'ai suivi de près la mort programmée de mon Nabaztag tag. J'ai paniqué comme tout le monde jusqu'à l'annonce (sous pression ?) de l'ouverture du code du lapin. Alors certes, une partie de l'API était déjà accessible, mais de nombreuses fonctions étaient réservées et restreintes à ce que Violet voulait faire du Nabaztag. Avec cette ouverture, tout était possible ou presque.

Malgré cette belle promesse, deux barrières se sont rapidement imposées. Une première celle de la "technique". Non pas que le code était compliqué, mais que les serveurs nécessaires à faire tourner le parc mondial de lapin coûtent excessivement cher. Deuxième problème, la voix du lapin. En fait la technologie Acapela est également payante, désormais les nabaztag sont donc condamnés à parler une langue un peu "hachée".

Mais venons-en au fait. Votre lapin est décédé ? Vous souhaitez lui offrir une nouvelle vie dans un monde plus beau et libre ? Suivez le guide...

Pour être synthétique, je vais vous présenter les deux grandes alternatives qui s'offrent à vous pour redonner vie au nabaztag. La première s'appelle OpenJabNab, la seconde NabIzDead. Il existe d'importantes différences entre les deux techniques.

Commençons par OpenJabNab (http://ojnwiki.psnet.fr/). Avant toute chose ne vous aventurez pas avec un Karotz, pour l'instant ils sont liés aux serveurs de Violet. Pour faire simple OpenJabNab est un serveur alternatif à ce que proposait Violet. À la différence de la taille des serveurs bien évidemment. Sa force c'est qu'au final on garde à peu près les même fonctionnalités qu'auparavant. Il suffit juste de reconfigurer votre lapin et de redéfinir vos paramètres sur l'admin OpenJabNab. Vous pouvez même découvrir de nouvelle fonctionnalités ! Les puces RFID sont également gérées que ce soit sous forme de ztamps ou de nano nabaztag.

Là où tout devient intéressant, c'est qu'OpenJabNab est complètement libre. Vous pouvez donc créer votre serveur maison avec les fonctionnalités que vous désirez. Si le code ne vous fait pas peur vous pouvez aussi développer de nouvelles fonctionnalités ! Nous reviendrons prochainement sur la création d'un serveur privé.

La deuxième solution c'est NabIzDead (http://www.nabizdead.net/). L'idée de serveur alternatif est la même. À première vue NabIzDead est plus "convivial" tant en terme d'ergonomie, de configuration que de graphisme. J'entends hurler nos amis développeurs que "l'interface graphique on s'en fout", je ne suis pas toujours de cet avis mais pour NabIzDead je reconnais que le développement est plus compliqué. Officiellement on ne bidouille plus directement le service (bien que ce soit possible) mais on joue sur l'api mise à disposition. C'est du coup un peu moins intéressant.

MAIS il y a quelque chose d'intéressant dans NabIzDead. En fait dans ce projet, l'équipe souhaite limiter la connexion au serveur afin d'éviter les aller-retour. L'idée est donc de donner plus d'autonomie au lapin pour des choses basiques : connaitre son heure de réveil et de couché par exemple.

Voilà ce qu'on pouvait dire rapidement sur le pourquoi du comment qu'il faut connaitre pour redonner vie aux lapins.

Entre de (trop ?) nombreux projets, je travaille (au fond de mon garage...) à vous pondre un semblant de serveur privé pour connecter les nabaztag. Plus d'info dans un prochain billet...

Mots clés : nabaztag, nabizdead, openjabnab, diy 67 commentaire(s)

Violet

Rédigé par retrodev | Classé dans : Produits

28
09 | 11

Violet est une société française crée par Olivier Mével et Rafi Haladjian en 2003. Pionnière de l'informatique pervasive, elle a su introduire cette discipline auprès du grand public avec des objets qui ont marqué tant les informaticiens que les designers du monde entier.

Produits

DALLe premier objet communiquant crée par Violet fut DAL, en 2003. Dal est une lampe interactive, connectée à Internet via Wifi. Dotée d'une interface tactile et d'un capteur sonore, elle communique exclusivement par des lumières colorées. DAL embarque un ordinateur complet (bien que minimal) tournant sous Debian, ce qui lui permet de fonctionner indépendamment des serveurs de Violet (elle se programme via une interface web). Lancée à un prix trop élevé, et peut-être trop tôt, elle n'a jamais eu le succès escompté.

nabaztagC'est en 2005, avec le Nabaztag (et ses différentes déclinaisons) que le succès est arrivé. Ce lapin connecté associe un design sonore et lumineux original à un visuel accrocheur pour transmettre toutes sortes d'informations disponibles sur Internet. Cette configuration se fait sur les serveurs de Violet, par le biais de mini-applications à configurer. Cependant, cette architecture centralisée a toujours été le point faible du lapin. Lors de son introduction aux USA (Noël 2006), l'infrastructure s'est avérée sous-dimensionnée et des interruptions de service aussi fréquentes qu'handicapantes sont apparues.

mirrorLe Mir:ror, lancé en 2007, intègre une fonctionnalité phare des objets communicants : la lectures des radio-étiquettes (RFID). Ce périphérique, qui se connecte en USB à un ordinateur, permet d'associer des actions à des étiquettes (Ztamp:s). Plus simple que ses prédécesseurs, le mir:ror bénéficie également d'un design d'interaction intéressant (il suffit de le retourner pour le mettre en veille).

Le Dal:dal, nouvelle version de la lampe DAL ne fut jamais commercialisé. Reprenant le principe de véhiculer les informations à travers des signaux lumineux (ainsi que, cette fois, des indications sonores), l'architecture était plus proche d'un Nabaztag, avec une forte dépendance aux serveurs de Violet

Design

Les produits de Violet ont tous en commun le grand soin apporté au design sous toutes ses formes : physique, lumineux, interaction, sonore, ... Le sound design est principalement l'oeuvre de Jean-Jacques Birgé tandis que les comportements et signaux lumineux sont créés par Antoine Schmitt. La société InProcess a supervisé la majeur partie de la conception des objets.

Le design des produis Violet a joué un grand rôle dans leur succès, Le minimalisme des formes et leur affordance ont favorisé leur adoption avec une forte dimension émotionnelle. Ils représentent par ailleurs un très bon exemple de technologie calme, en privilégiant une communication non-intrusive, simple et poétique. En outre, la cohérence de l'ensemble des produits, jusqu'aux noms, a permis la formation d'une communauté très attachée à la marque.

Violet a reçu de nombreuses distinctions et récompenses pour ce travail. On peut citer une Etoile de l'Observateur du Design en 2003 pour DAL, deux autres (2006 et 2008) pour le Nabaztag et une dernière, en 2009 pour le Mir:ror.

Déchéance

A la mi-2009, n'ayant pas réussi à transformer son succès en équilibre budgétaire, Violet est placée en redressement judiciaire. Des rumeurs les plus folles sont avancée sur son repreneur mais, après le refus de plusieurs propositions, c'est MindScape, un éditeur français de logiciels qui s'en porte acquéreur.

karotzAprès plusieurs mois de flottement, et l'abandon de plusieurs projets en cours (dont Dal:dal), MindScape finit par lancer Karotz, le successeur du Nabaztag. Matériellement plus proche du DAL (ses caractéristiques techniques sont celles d'un ordinateur embarqué), il apporte quelques nouvelles fonctionnalités (webcam, VOIP, geolocalisation, ... ) sans changement de design.

Cependant, l'instabilité des serveurs n'a fait qu'augmenter, tandis que a communauté fidèle n'adhére pas aux divers changements. L'abandon prévu du support des Nabaztag, les condamnant au silence (justifié par le coût des serveur), a déclenché des réactions violentes. MindScape a même du s'adresser directement aux possesseurs de Nabaztag et leur offrir des réductions, ainsi que la libération des codes sources, pour endiguer le mécontentement.

Il y a quelques mois, fin Juin 2011, MindScape est à son tour engagée dans une procédure de redressement judiciaire. Sans repreneur (la proposition de rachat par la communauté ayant été refusée), cela signifie la fin d'une des premières odyssées de l'Internet des Objets. Et la mort de milliers de lapins innocents ... à moins que la communauté n'en décide autrement. Et Anthony/oxo reviendra très prochainement sur ce dernier point dans son prochain article.

Mots clés : nabaztag, violet, dal, mirror, karotz 34 commentaire(s)

Genesis

Rédigé par retrodev | Classé dans : Vie du blog

12
09 | 11

En ce premier article, je souhaitais tout d'abord présenter un peu plus la démarche qui nous a amenés, Anthony et moi, à ouvrir un blog sur le sujet très précis (mais très vaste) qu'est l'Internet des objets.

Nous nous sommes rencontrés en 2008 à l'IUT de Dijon au cours du DUT SRC (Services et Réseaux de Communication). Un an plus tard, nous sommes rentrés dans le vif du sujet avec une présentation de l'Internet des objets dans la langue de Shakespeare.

Las des présentations ennuyeuses et des powerpoints assassins, nous avions pour idée d'y ajouter un peu d'interactivité et de tape-à-l'œil. Pour cela, c'est le NabazTag Tag d'Anthony qui devait faire (au moins partiellement) le show (à la fois visuel et verbal). Je me suis donc lancé dans la programmation de l'API Violet pour créer la "chorégraphie".

stuffernetFinalement, ce sont les restrictions techniques de l'IUT qui ont douché notre enthousiasme, ne nous permettant pas de connecter le lapin au réseau pour lui passer les instructions. Même le partage 3G et un mac ont eu raison de notre motivation ! Nous nous sommes donc rabattus sur un format plus standard...

Cependant, cet échec a éveillé un intérêt commun pour la question et, malgré la fin du DUT, nous sommes restés en contact, lui à Lille, moi à Montbéliard. Plus récemment, c'est en déplorant le rachat de Violet (la société créatrice du NabazTag) et la perte de sa vision avant-gardiste, que nous avons décidé de ne pas en rester là. Et voilà le résultat.

Bien sûr, on se revoit très vite pour vous expliquer un peu plus en détail les divers projets que nous allons conduire au travers de ce blog. N'hésitez pas à nous faire part de vos remarques et/ou suggestions par mail.

A bientôt !

  • La présentation (PDF) "Internet of Things" pour l'IUT de Dijon
  • L'article que j'ai écrit avant cette présentation

Mots clés : nabaztag, src, projet, histoire, blog 51 commentaire(s)

précédentepage 2 sur 2