Hackathon#6 - Team Chips

Belle équipe avec Paul, Marc, Antoine, Fabien et Pierre qui veulent tester les algorithmes génétiques (machine learning), TypeScript et le moteur physique 2D Matter.js. En utilisant des «motos» (référence à la série des années 80 CHiPs) dont un certain nombre de propriétés sont générées aléatoirement (taille des roues, vitesse…) et qui évoluent sur un parcours lui aussi généré aléatoirement, le but est que l’algorithme de création soit capable d’apprendre à construire la moto «parfaite» (qui parcourt la plus grande distance possible) en étudiant les performances de chaque génération.

Daily fin de journée 1 – Ce qu’on a réalisé

  • Pierre est très fier du thème de CHiPs de toute beauté qui fait office de bande sonore pour l’application.
  • Antoine et Paul travaillent sur la génération aléatoire du terrain, en utilisant un système de «tuiles». Pour le moment les tuiles sont alignées sagement et le relief n’est pas assez «chaotique».
  • Fabien et Marc ont créé un prototype de moto dont la roue arrière tourne, par contre même s’il semble bien y avoir de la friction avec le sol, il n’y a pas de poussée, la moto reste statique.
  • Pierre intègre le travail des 2 équipes, non sans difficulté.
  • Le choix d’utiliser TypeScript plutôt que JavaScript ajoute une difficulté supplémentaire (le langage est assez simple mais la mise en place de l’infrastructure pour le faire tourner inclut une certain learning curve).
  • Jusqu’ici, le temps a manqué pour s’atteler à la partie algorithmique à proprement parler.

Review fin de journée 2

La team a réussi à mettre en place la génération aléatoire du terrain (à la difficulté croissante, pour ne pas disqualifier d’office un trop grand nombre de motos), ainsi que la génération aléatoire des motos (paramétrable via un schéma JSON passé à la factory). Le but final est de générer des motos de plus en plus performantes, en se basant sur les caractéristiques des «meilleures» motos de chaque génération, et en laissant également bien entendu intervenir l’aléatoire afin d’avoir la possibilité de voir apparaître de nouveaux caractères potentiellement intéressants (principe de l’algorithme génétique). Le temps a malheureusement manqué pour implémenter un véritable algorithme de machine learning.

Les commentaires de la team

Fabien

Matter.js n’est pas très bien documenté, pas intuitif, c’était dur au début, mais sinon ça marche plutôt bien. Dommage qu’on n’ait pas pu exploiter les schémas JSON exportables. Je voulais essayer TypeScript depuis un moment, pas déçu. Première fois sur un moteur physique 2D. Bonne répartition des tâches, on ne s’est pas marché sur les pieds.

Marc

J’ai appris à instancier des objets physiques et à les lier ensemble. Première fois également avec TypeScript et avec un moteur physique 2D.

Pierre

C’était intéressant de découvrir les algos, on avait beaucoup de questions qui n’avaient pas grand chose à voir avec le dev mais avec la physique (friction, couple, etc.).

Paul

Comme Pierre j’ai travaillé pour la première fois avec un moteur physique 2D.

Antoine

J’ai utilisé la première fois TypeScript, et j’en suis ravi. Ça me donne envie de l’utiliser sur un vrai projet. Il ne nous manquait pas grand chose pour arriver à réellement faire des algos génétiques comme on le voulait au départ.

Plus d’infos sur nos hackathons ? Venez sur notre page Facebook !