





Crogai: Description
Voici Crogai, une expérience pour introduire un peu d'intelligence artificielle dans des scénarios de comportements de foule. Il s'agit d'un projet expérimental, un cadre à des fins de recherche dans ce domaine.
Il est possible de réaliser des simulations pour tester différentes IA dans un environnement 3D complet: petit moteur physique, terrain, gestion des collisions, etc. Le premier objectif était de construire un environnement suffisamment complet pour permettre des IA un tant soit peu intéressantes. Dans cette optique, Crogai est fortement inspiré du projet OpenSteer, et réutilise d'ailleurs comme base les « steering behaviors » présentés par Craig Reynolds lors de la « game developper conference '99 ».
De plus, les agents peuvent émettre des spores dans l'environnement. Celles-ci sont ensuite utilisées pour faire évoluer d'autres agents grâce à un algorithme génétique. De nombreux comportements sont observés, les explosions de population et les extinctions sont courantes. Un cadre de travail est également disponible pour utiliser des algorithmes d'apprentissage automatique, comme des réseaux de neurones par exemple (mais pas seulement).
Crogai fonctionne aussi bien en mode graphique qu'en mode commandes de calcul, grâce à une architecture basée sur un simulateur. Ceci lui permet de plus de s'exécuter plus ou moins vite que le temps réel (dont pause), la vitesse maximum d'exécution dépendant bien sûr de la puissance de la machine.
Captures d'écran





Téléchargement
La version 0.2.1 corrige une erreur de compilation avec les version de Open Scene Graph récentes. Vous pouvez la télécharger ici. Des vieux binaires pour les utilisateurs de Windows sont également disponibles.
Les 3 programmes les plus ludiques et donc intéressants pour un utilisateur non-spécialiste :) sont: Genebasic, l'exemple avec les nuages de spores et les différentes espèces présenté dans les captures d'écran. Swarm, l'exemple d'essaim, qui peut aussi faire un joli économiseur d'écran! Colliterra, un exemple de détection et d'évitement de collisions. Utilisez la souris (les trois boutons) pour naviguer en 3D. Les touches les plus utiles sont 'espace' pour mettre la simulation en pause, 'c' pour cycler le terrain, et 'p' pour afficher les graphiques de population dans le programme Genebasic. 'g' et 'G' peuvent aussi être amusants dans le programme Colliterra (astuce: utilisez pause), et 'v' pour Swarm.
Le projet Crogai est maintenant hébergé sur Gna!. Merci à l'équipe de Gna! pour avoir mis en place l'environnement de développement. Vous pouvez voir le code source le plus récent dans le répertoire subversion. Afin de le télécharger, il vous faut pointer un client subversion vers le serveur SVN anonyme de Gna!.
Crogai, y compris le moteur de simulation, sont sous Licence GNU GPL. Merci de m'envoyer un petit mot si vous décider de l'utiliser. Et puissiez vous y trouver autant de plaisir à le modifier que j'en ai eu en le créant!
Crogai utilise comme moteur graphique OpenSceneGraph. Il vous faut donc installer correctement cet environnement avant de compiler Crogai. Une exception: Le moteur de simulation que j'ai développé est quand à lui indépendant, et peut être réutilisé avec ou sans OpenSceneGraph.
Crogai fonctionne mieux sous Linux. J'ai effectué une compilation croisée pour réaliser les binaires Windows ci-dessus.
Documentation
Pour comprendre les différentes parties et problématiques de Crogai, vous pouvez consulter mon rapport de fin de projet. Il s'agit du rapport pour le projet concernant le cours de Concordia University pour lequel j'ai développé initialement Crogai. Il n'est maintenant plus à jour avec les derniers développements, mais donne quand même une idée de certains problèmes rencontrés et des choix effectués pour mettre en oeuvre leurs solutions.
Une expérience utilisant le projet Crogai est décrite dans "Environmental fitness for sustained population dynamics". Ce document a été publié en september 2005, dans le IEEE Congress on Evolutionary Computation, Vol 1, p 343. Cf la politique de l'IEEE sur la dissemination électronique de l'information pour information sur le "copyright".
Pour les développeurs désireux de se faire une idée du fonctionnement du code, il y a également la documentation Doxygen générée automatiquement et consultable en ligne ici.