Tous ceux qui touchent de près ou de loin aux arts numériques, et pas seulement les algoristes, connaissent bien Processing, langage open-source dédié à la manipulation d'éléments graphiques.
Processing jouit en effet d'un quasi monopole pour toute sortes de travaux autour de la visualisation, qu'il s'agisse de prototypes de visualisation de données scientifiques, d'ébauches artistiques abstraites, d'animations interactives (quoique dans le domaine de l'interactif Flash semble bien plus populaire) ou de tout ça en même temps.
La preuve en image pendant un petit entracte Processing (cliquez pour trouver l'auteur) :
La domination de Processing pourrait bien être prochainement challengée. Microsoft va en effet offrir une technologie concurrente à travers un nouveau langage, Vedea, tout juste sortie des labos (ce qui ira, comme prévu, incrémenter notre compteur de langages).
Processing et Vedea sont des langages dédiés à la définition, à l’animation et au contrôle d'éléments graphiques. En quelque sorte un DSL (Domain Specific Language) dont le domaine de pertinence est la visualisation. Le plus de Vedea c’est de permettre à l’artiste-développeur (mais tous les développeurs ne sont-ils pas des artistes ? Ah non) de composer, de tester et d’expérimenter avec le moins d’efforts possible.
Deuxième entracte...
Comparé à Processing, Vedea possède quelques points forts.
Rendu en mode "retenu" (retained mode).
Alors que le mode dit immédiat (immediate mode) de Processing impose de dessiner explicitement les éléments graphiques à chaque appel d'une méthode de type draw() -- comme avec le Canvas d'HTML 5, Vedea permet en plus de construire une scène et de confier le rendu au moteur -- comme avec WPF et Silverlight.
Ok, un entracte, mais tout petit alors :
Magnetic Ink, Process video from flight404 on Vimeo.
Hiérarchie d'objets
Un objet peut être parenté à autre objet. Dans ce cas la modification de certains propriétés du parent affectera ses descendants (transformations, coordonnées, etc.). Un peu comme une hiérarchie de Canvas sous Silverlight en somme.
Bon c'est le dernier hein :
Binding bi-dimensionnel trop fastoche
Vraiment bien. Voilà un binding mono-directionel, du slider vers la textbox :
textbox.Text := slider.Value;
Et en voilà un bi-directionnel qui fera donc bouger le slider quand la textbox sera éditée :
textbox.Text :=: slider.Value;
Joli non ?
Dernier de chez dernier :
Des données à portée de clavier
Beaucoup de formats d'import devraient être disponibles (csf, netCDF, HDF, SQL, Excel). La manipulation des données est annoncée comme facilitée par un mode "à la Linq" :
myData = DataSet(“mydata.csv”);
currentYear := slider.Value + 1900;
bubbles := from row in myData
where row.Year :== currentYear
select new Circle()
{
X = row.Latitude,
Y = row.Longitude,
Radius = row.Population * scalingFactor,
Fill = BlackBodyPalette(1., 1., row.DeltaCarbon)
};
Scene[“USMap”].Add(bubbles);
Pour résumer
Vedea est prometteur, il y a de bonnes trouvailles. J'attends de voir les performances, c'est pour bientôt, Vedea devrait être disponible durant le début de l'année 2010.
Question runtime, Vedea est dépendant de .Net 4 et du runtime dynamique (DLR), ce qui limitera sérieusement son utilisation en tant que plug-in de navigateur.
Vedea n'étant pas annoncé comme open-source, je ne suis pas certains que ces trouvailles puissent à elles seules déclencher une révolution. Processing a de beaux jours devant lui.
Beaucoup plus d'infos sur Vedea : http://blogs.msdn.com/martinca/archive/2009/12/03/introducing-the-microsoft-visualization-language.aspx
Plein d'images réalisées en Processing sur Flickr : http://www.flickr.com/search/groups/?q=processing&m=pool&w=13813978@N00&s=int
Les commentaires récents