XGouchet.fr

dimanche 21 juin 2009

Dao : ma première application pour Android

Mardi soir, j'ai récupéré mon nouveau téléphone, un HTC Magic équipé d'Android, l'OS créé par Google. J'avais déjà vu il y a quelques temps chez Korben que le SDK d'Android était dispo, avec même un plugin pour Eclipse.

Du coup ce week end, je n'ai pas pu m'empêcher de développer un petit jeu sur Android, inspiré d'un jeu de plateau auquel je joue parfois avec mon frangin : Dao. Le but du jeu est assez simple, un plateau de seize cases, deux joueurs avec quatre pierre chacun (noires et blanches). Chacun son tour, les joueurs déplacent une de leurs pierres pour arriver à une position gagnante (une ligne horizontale ou verticale, un carré, ou une pierre dans chaque coin).

Ce jeu était suffisamment simple pour me permettre, à partir d'un des exemples fournit par Google, de créer le jeu en deux demi-journées de travail. Résultat des courses, le jeu fonctionne nickel sur mon téléphone. Et comme c'est bientôt l'été, je vous le met à disposition directement ici. Tous les retours sont évidemment les bienvenus.

Le jeu n'est pas encore parfait, loin de là : quasiment aucune option, l'AI est vraiment basique, et il est possible d'arriver à une impasse (il faut encore que j'arrive à détecter cela). Mais à part ça l'appli est stable, donc enjoy. On joue avec les pierres noires, en les faisant glisser du doigt. À télécharger ici.

Dao sous Android

Lraktitp: Je vais développer une application pour les Emo
Artos: Sur quelle plateforme ?
Lraktitp: Android
Artos: Tu va l'appeler EmoRoid ?
Lraktitp: ...

BashFR

dimanche 24 mai 2009

Tweetcoding, ou l'art de coder en 140 caractères

Même si je n'utilise pas Twitter, ce site est réellement devenu un phénomène de mode, et les clones ne manquent pas sur le net. Pour rappel, un tweet, ou micro-blogging sert juste à décrire ce que vous faites en ce moment, et partager une pensée, une idée, en 140 caractères maximum. Un peu comme les statut MSN ou Facebook, mais sur un site dédié.

Il n'a pas fallu attendre très longtemps après l'essor de Twitter pour voir apparaître ce que l'on appelle le Tweetcoding. Le principe? Créer une application en Action Script ou en Processing, avec 140 caractères maximum.

Véritable revival du phénomène de démoscène où, à l'époque, on se limitait à 64Ko, ou parfois moins, pour coder sa démo, ici c'est encore plus court, mais permet de diffuser ses applications très simplement. Quelques exemples, sont visible sur cette page, et si vous aussi vous voulez vous y mettre, n'hésitez pas à en poster dans les commentaires.

Je me suis essayé à cet exercice assez difficile, qui oblige à chercher des optimisations partout ou c'est possible. Voici donc ma contribution, qui est passé d'un premier jet en 213 caractères à un code source de 137 caractères seulement.

Tweet

void draw(){for(int i=0;i<200;i++)for(int j=0;j<200;j++)set(i,j,(get(i,j)+get(i-1,j+1)+get(i,j+1)+get(i+1,j+1))/4);point(mouseX,mouseY);}

Xavier Gouchet

mardi 19 mai 2009

OpenVibe, interface cerveau-machine Open Source

Je pensais avoir déjà parlé de ce projet, que j'avais vu à Laval Virtual 2008, je profite donc de l'article paru récemment sur LinuxFR pour parler d'OpenVibe, un programme Open Source permettant de contrôler l'ordinateur directement avec le cerveau. Développé par l'INRIA, l'IRISA, l'INSERM et France Telecom R&D, ce projet va probablement modifier notre façon de travailler d'ici les 10 à 15 prochaines années.

Utilisant les ondes magnétiques parcourant la surface du crane, le logiciel est capable de repérer une fréquence, et donc d'y associer une commande. Et là où ça devient sympa, c'est que la fréquence émise lorsque l'on bouge la main est exactement la même que celle émise lorsque l'on pense que l'on bouge la main.

OpenVibe utilisé pour soulever un Tie Fighter

La présentation que j'avais vue à Laval Virtual l'an dernier proposait aux public de soulever un Tie Fighter par la pensée, certains y arrivant plus que d'autre. J'ai notamment assisté à l'expérience d'une personne qui faisait de la méditation, et qui était capable de contrôler parfaitement ses ondes cérébrales.

Pour vous faire une meilleure idée, je vous invite à aller voir la vidéo sur le site de l'INRIA.

Le cerveau est un organe merveilleux qui se met en marche au moment où vous vous réveillez et s'arrête au moment précis où vous arrivez au bureau.

Robert Frost

jeudi 7 mai 2009

SuperShapes 3D

Voici un travail de recherche des plus intéressants, qui pourrait peut-être devenir un projet en Processing. Supershapes 3D est une représentation en 3D de Super Formules mathématiques.

Supershape - Equations
Supershape - Equations

Les formes générées par ces formules sont visiblement procédurales, mais les résultats sont cependant assez surprenants.

Supershape 3d

La politique est éphémère mais une équation est éternelle.

Albert Einstein

Source : Rémi Quittard

mercredi 29 avril 2009

Shadow Physics : Que la lumière soit, et la physique fut...

Même si je baigne dans le monde du jeu vidéo depuis pas mal de temps, je ne suis pas un hardcore gamer, préférant me limiter aux jeux vraiment originaux. Et non seulement Shadow Physics est un jeu original, mais il dénote en plus une compétence technique remarquable. Présenté à la GDC 2009, Shadow Physics vous laisse contrôler une ombre capable d'interagir avec celles d'éléments 3D.

Développé par Scott Anderson (avec l'aide de Steve Swink), ce jeu n'est encore qu'un prototype et demande encore une année pour avancer le gameplay et trouver de nouvelles interactions. Comme il l'explique dans la vidéo ci-dessous, on peut imaginer différentes lumières capable de projeter différentes ombres ayant des propriétés physiques originales. À suivre donc...


Experimental Game: Shadow Physics [Youtube]

Les plus jolies choses du monde ne sont que des ombres.

Charles Dickens

Source : Graphism.fr

vendredi 17 avril 2009

De nouvelles façons de représenter nos données en Processing

Encore une fois je viens vous parler de visualisation de données, avec Open Visuals, un site qui propose de visualiser des données grâce à processing.

Le principe est simple, en utilisant la librairie fournie par le site web, vous créez une application en Proce55ing, qui sera ensuite mappée sur un tableau de donnée (des résultats d'élection, des statistiques, ...). Ou vous pouvez envoyer des données personnalisée, et voir le résultat grâce aux visualisation existantes.

Open Visuals

Pour l'instant le site ne possède qu'une demi douzaine de visualisations existantes, mais j'espère que cela permettra de voir apparaitre des tableaux créatifs à la Flight 404.

Les chiffres sont aux analystes ce que les lampadaires sont aux ivrognes : ils fournissent bien plus un appui qu'un éclairage.

Jean Dion

mercredi 8 avril 2009

Subtext : la programmation non textuelle

Travaillant beaucoup sur Virtools, je suis devenu assez fan de la Programmation Visuelle. J'ai d'ailleurs récemment parlé d'un nouveau venu dans la famille : Blade3D. Aujourd'hui, je vais vous parler d'une approche de la programmation non textuelle : Subtext.

Le principe de base de Subtext est de prendre un code source non plus comme un objet à une dimension (exécution d'une ligne après l'autre), mais à deux dimensions, à partir de tableaux de partitionnement. Imaginé par Jonathan Edwards, un chercheur au MIT, SubText prend le parti de ne laisser aucune place au hasard lors d'un développement, et d'utiliser l'ordinateur pour vérifier efficacement le code. L'architecture même de cet outil permet également des phases de debug assez simple, en dépilant simplement la pile d'exécution. Et comble de bonheur, on peut même faire de la POO

Subtext
L'exemple de la fonction Fibonacci dans SubText

Le logiciel n'est pour l'instant pas disponible au public, mais l'auteur a déjà affirmé qu'il serait open source. En attendant, je vous invite vraiment à perdre 45 minutes pour regarder la présentation de cet outil.

Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.

Anonyme

mardi 7 avril 2009

[Processing] Improvisation du mardi soir

Voici une nouvelle improvisation, qui n'en a d'ailleurs que le nom puisque j'ai pensé à faire ça depuis le jour où j'ai entendu parler pour la première fois des QR Codes.

Pour rappel, les QR Codes sont ces codes barres 2D qui permette de stocker du texte, des URL, voire même des images. Un QR Code se présente sous la forme d'un tableau de cases noires ou blanches. Hors quoi de plus semblable à un amas de case noires et blanches, qu'un amas de cases noires et blanches. Du coup je me suis décidé à faire, en processing, un cross-over entre les QR Codes et le jeu de la vie. Au passage, je vous invite à lire un article récent sur le jeu de la vie chez Dr Goulu.

QRLife

If there exist experimenters with (some) free will, then elementary particles also have (some) free will.
John Conway

mercredi 1 avril 2009

Blade3D : Now let's build games

Présenté à la GDC, Blade3D se veut être l'outil de création de jeux vidéos XBox / Windows pour que n'importe qui, même sans compétence en programmation, puisse créer son propre jeu.

Blade3D - Now let's build games

L'utilisation du logiciel se faire par un abonnement mensuel, et non une licence unique, ce qui est assez original pour ce genre de logiciel. Les prix varient de $14.95 pour un amateur, à $99.95 pour un professionnel, ce qui, rapportés à une année, rend le produit à peu près aussi cher que ces concurrents (Quest3D, Unity ou Virtools).

Comme beaucoup, Blade3D se base sur une programmation par graphes, utilisant des boites haut niveau, dont les propriétés peuvent être liées en elles. En plus de ces propriété, les boites peuvent activer la suivante via un Control Flow (et sans vouloir paraitre mesquin, ça me rappelle vaguement quelque chose ;) ). Je ne rentrerai pas plus dans les détails, n'ayant pas pu tester le logiciel (il n'existe pas de version d'évaluation), mais les features proposées semblent intéressantes : moteur de physique actif en level design, génération de terrain procédural, effets de post process génériques, ainsi qu'un marketplace permettant aux utilisateurs de partager leurs données.

Video games are bad for you? That's what they said about rock and roll.

Shigeru Miyamoto

vendredi 27 mars 2009

Les trois pépites de l'image numérique

Hier soir j'étais à une soirée organisée par le Paris ACM SIGGRAPH, où étaient présentés trois projets lié au rendu temps réel. Une soirée très agréable s'il en est, qui a commencé par une présentation par François de Sorbier sur les techniques de rendus pour les écrans relief (aussi appelés auto-stéréoscopiques). Cette présentation, assez technique, montrait les avancées faites pour permettre de rendre jusqu'à 12 vues par une seule carte graphique, sans descendre en dessous de 24 images par seconde.

Le deuxième projet présenté est celui de la start up Onesia, qui propose un logiciel de visualisation CAO photo-réaliste en temps réel, en prenant notamment appui sur une utilisation combinée du GPU et du CPU, permettant d'obtenir du Raytracing quasi temps réel, ainsi que de l'ambient occlusion et de l'illumination globale.

Exemple de rendu par Orealia

La partie qui m'a le plus intéressé était la dernière présentation, celle des recherches de Cyril Crassin sur l'utilisation et le rendu de Voxels en temps réel.

Rendu du Stanford Bunny avec la methode GigaVoxel

Un Voxel (Volume Element) est l'équivalent 3D du pixel. Un objet est décrit par une grille décomposant l'espace 3D, où chaque case (ou Voxel) possède une information de densité, et éventuellement de couleur et de transparence. Cette approche n'est pas neuve, puisqu'on l'utilise déjà pour faire des effets spéciaux au cinéma (brume, fumée, nuage, etc..). Le problème principal est que les données de base sont souvent lourdes. Pour avoir un modèle de qualité, comptez une grille de 1024*1024*1024 voxel, soit 4 Go de donnée, soit un peu moins d'un DVD classique. Pour un modèle plus fin (2048*2048*2048 voxels), on arrive à 32Go, c'est à dire 4 DVD double couche.

Quand on sait que la carte graphique de monsieur tout le monde possède rarement plus de 512 Mo de mémoire dédiée, on comprend qu'il est difficile d'utiliser des Voxel en temps réel. Mais là où l'approche de Cyril est innovante, c'est qu'il tire partie de la carte graphique en utilisant un modèle de donnée en Octree. Grace à cette structure, et un logiciel (open source) qu'il a développé, il est capable de faire des rendus à partir de modèle allant jusqu'à un tera octet, avec une carte graphique vieille de 2 ans.


GigaVoxel : High Quality Realtime Sparse Voxel Octree Ray-Casting[Youtube]

Je ne vais pas refaire une explication complète de l'algo utilisé (notamment parce que je ne suis pas familier avec certains concepts, notamment l'architecture d'une carte graphique), mais je vous invite à aller lire la publication.

L'éponge de Serpinski possède un volume nul et une surface infinie.

lundi 2 mars 2009

[Processing] Inspiration en 3D

Hier, je vous parlais du Billet Participatif sur le blog de Mister Air. Comme promis, je me suis attelé à la tâche, et voici ce qu'il en est ressorti. Juste quelques heures de code (et pas mal de frustration, j'aurais voulu obtenir un meilleur rendu). Mais peu importe, le principal c'est de participer.

Voici donc la démo Processing que m'a inspiré la musique choisi par Mister Air : Nara (de Ex Posthumus).

Inspiration

On ne peut pas attendre que l'inspiration vienne. Il faut courir après avec une massue.
Jack London

lundi 23 février 2009

IArtist, quand les ordinateurs apprennent l'histoire de l'art

Voici un projet dont je rêve depuis quelques années maintenant, et qui inspire en partie la thèse que je vais entreprendre à partir de l'an prochain. IArtist est un projet monté par Benjamin Raynal (un thésard à l'IGM et accessoirement algoriste).

Le principe de base part d'une idée qui me trotte dans la tête depuis quelques temps : imaginons une IA capable de reconnaitre un tableau de Picasso, ou une toile de Monet. En poussant le vice plus loin, imaginons que cette IA, grâce à sa connaissance extrême de tel ou tel style soit capable de peindre un tableau dans le même style. J'en rêvais, Ben l'a fait !

IArtist - Ben Raynal

Le programme est capable d'apprendre tout seul, cherchant sur le net (Google ou FlickR) des références pour comprendre ce qu'est le cubisme ou l'impressionnisme. Il est également capable de chercher des références, ce qui lui permet de pouvoir peindre sur des sujet qu'il ne connait pas. Je vous invite à lire l'article original qui explique un peu plus en détail le concept.

Les ordinateurs sont inutiles. Ils ne savent que donner des réponses.

Pablo Picasso

samedi 24 janvier 2009

[Processing] Improvisation du vendredi soir

Voici une nouvelle improvisation en processing, faite hier soir.

Impro #3 - LineBreak

Je ne crois pas aux improvisateurs. En réalité, le grand art est toujours le produit d'une extraordinaire habileté technique.
Frederico Zeri

mardi 20 janvier 2009

Microsoft Songsmith, création musicale autonome

J'ai hésité à poster cet article, mais j'ai finalement réussi à vaincre ma Microsoftophobie. Songsmith est un des nouveaux outils de Microsoft permettant à monsieur tout-le-monde de faire de la musique. Le principe est simple, vous chantez au micro et Songsmith écrit la musique qui correspond (avec un contrôle sur le type de musique, l'ambiance, etc...).

Même si la pub est... kitch à souhait, je pense que ce logiciel offre pas mal d'intérêt, notamment sur la création autonome de musique. D'aucun diront qu'avec quatre accords, on refait n'importe quelle chanson, mais quand même. En l'occurrence je pense que les ingénieurs de Microsoft ont pu créer des règles simple pour créer une mélodie, reste à savoir ce que cela donnera avec quelqu'un qui chante faux (à moins qu'ils prévoient aussi un logiciel pour chanter à notre place).

Maintenant, un utilisateur de Youtube a créé une série de vidéos en reprenant des chansons cultes, en ne passant que la voix, et laissant Songsmith faire le reste. Le résultat : Wonderwall d'Oasis façon techno, une version country de Creep de Radiohead, ou encore un rythme ensoleillé pour Roxanne de Police. Certaines passent un peu mieux que d'autre, mais je pense que les chansons n'auraient alors pas eu autant de succès.

Les experts sont formels et unanimes : en règle générale, l'ordinateur le mieux adapté à vos besoins est commercialisé environ deux jours après que vous ayez acheté un autre modèle !

Dave Barry

- page 2 de 5 -