Réalisation et extension d`un simulateur d`automates cellulaires

Réalisation et extension d'un
Réalisation et extension d'un
simulateur d'automates cellulaires
simulateur d'automates cellulaires
:
:
BioDyn3D
BioDyn3D
(Image de prototype, peut être sujette à des évolutions)
Rapport de stage
du 13 octobre 2014 au 13 avril 2015
par Olivier LE FLOHIC
Maître de stage : M. Pascal BALLET
Responsable de stage : M. Goulven GUILLOU
1
Sommaire
Introduction
I. Contexte
II. Travail demandé : objectifs principaux et secondaires
III. Analyse de l'existant
III.A. NetBioDyn
III.B. Prototype de BioDyn3D
IV. Environnement et outils de développement
IV. A. Unity3D
IV. A. 1. Éditeur
IV. A. 2. Environnement de codage : MonoDevelop
IV. B. Outils d'aide au développement
IV. B. 1. SVN
IV. B. 2. doxygen et Trac
V. Analyse et développement
V. A. Architecture du programme
V. B. Cheminement du développement
V. C. Optimisation du programme
Conclusion
Remerciements
Outils et références
Annexes
3
4
5
6
6
12
14
14
14
15
17
17
17
20
20
21
26
30
30
31
32
2
Introduction
Dans le cadre de ma deuxième année de Master SIAM (Systèmes d'Information en Applications
Marines) à l'Université de Bretagne Occidentale (UBO) de Brest, j'ai effectué un stage d'analyse et
développement, au sein même de cet établissement, dans le Lab-STICC*. La durée initialement
prévue était du 13 octobre 2014 au 13 février 2015, mais elle a été prolongée jusqu'à 17 avril 2015.
L'objectif de ce stage, en autonomie, est la poursuite du développement et l'extension d'un
simulateur d'automates cellulaires s'appelant BioDyn3D, créé par M. BALLET. Il est basé sur un
simulateur existant, NetBioDyn, qui est du me auteur. La principale différence est que
BioDyn3D est, comme son nom l'indique, en trois dimensions.
Le simulateur fournit un environnement dans lequel des entités vont évoluer et interagir d'après des
comportements, définis par l'utilisateur via une interface simplifiée. En effet, l'idée est de pouvoir
configurer le modèle de simulation, sans pour autant avoir des connaissances en programmation,
puisque les principaux utilisateurs seront des étudiants en biologie.
En raison de sa nature pédagogique, il est aussi prévu de permettre aux utilisateurs d'enregistrer et
charger leurs modèles en ligne afin de pouvoir les partager, d'où la nécessité de prévoir un système
adapté.
Le développement de BioDyn3D avait déjà commencé avant le début du stage : en effet, un
prototype fonctionnel (bien que comportant des bugs) a été réalisé par l'auteur original, et a posé les
bases des spécifications du programme, ainsi que l'environnement de développement.
La réalisation du projet a non seulement exigé de se familiariser avec l'existant (NetBioDyn et le
prototype de BioDyn3D), mais aussi avec l'environnement de développement Unity3D, sur lequel
l'application est développée.
* Lab-STICC : Laboratoire des Sciences et Techniques de l’Information, de la Communication et de
la Connaissance
3
I. Contexte
BioDyn3D est destiné à des étudiants en biologie, notamment dans des pays d'Europe de l'est de
l'ex-URSS. Il s'agit d'un projet financé par l'Union Européenne, et qui fait partie d'un plus vaste
programme dont l'objectif est de permettre à ces pays de se mettre à jour sur les compétences
d'appareillage biologique, par exemple pour l'identification de bactéries.
Le programme de l'UE implique plusieurs partenaires de pays membres : le Royaume-Uni, l'Italie,
la République Tchèque, et la France. Cette dernière se concentre davantage sur les simulations
d'instruments, le Royaume-Uni dispose d'un matériel bien physique, mais cher et peu
accessible.
C'est tout l'intérêt d'avoir des simulateurs, et BioDyn3D en fait partie : il aspire à fournir un outil
pour la simulation de colonies bactériennes, pour qu'ensuite les étudiants puissent aller au
Royaume-Uni afin d'être formés à l'usage du matériel physique.
On notera également la coopération de l'Université de Bretagne Occidentale (UBO) et de l'École
Nationale d’Ingénieurs de Brest (ENIB) : la première se spécialise dans les simulations, tandis que
la seconde se tourne davantage vers les modélisations 3D des appareillages.
4
II. Travail demandé : objectifs principaux et
secondaires
Comme nous l'avons déjà précisé, le projet, BioDyn3D, est une amélioration de NetBioDyn qui
introduit la 3D. Par conséquent, BioDyn3D devra avant toute chose d'être au moins capable de faire
les mêmes choses, tout du moins d'un point de vue simulation.
Les fonctionnalités qu'il faudra donc forcément inclure sont :
grille redimensionnable (dimensions X, Y ; dimension Z ajoutée pour BioDyn3D)
définition / modification des entités (demi-vie)
définition / modification des comportements (probabilité, réactions entité → entité)
exécution, pause et pas-à-pas de la simulation
enregistrement / chargement de modèles de simulations
dessin / gommage d'entités sur la grille
Certaines fonctionnalités secondaires n'ont pas é retenues, parce qu'elles ne sont pas nécessaires
pour l'exécution du programme :
graphes de quantités d'entités
exportation des résultats de la simulation
exportation du modèle de simulation sous forme textuelle
À noter que ces fonctionnalités restent prévues, mais leur priorité est très faible.
Une fois que toutes les fonctionnalités originales de NetBioDyn seront implémentées, il sera alors
possible de se pencher sur les extensions, qui permettront à BioDyn3D de bien se distinguer de son
ancêtre. On citera comme nouveautés :
molécules : produites et consommées par les entités
réactions « simples » : différentes des réactions de NetBioDyn : chaque direction peut avoir
une entité différente. Quelque chose d'assez similaire existe déjà dans une ancienne version
de NetBioDyn.
Idéalement, on souhaiterait aussi que les fonctionnalités suivantes soient implémentées :
système de « cloud » pour stocker/charger des modèles de simulation, afin de pouvoir les
partager
support OpenCL, ou au moins un traitement des données en parallèle : en effet, la grille peut
devenir très dense (beaucoup d'entités), ce qui aura tendance à ralentir le programme. La
parallélisation de l'exécution des comportements permettrait d'accélérer la simulation, mais
cela pourrait rendre le code plus difficile à gérer.
Enfin, il serait aussi souhaitable, à terme, de fournir une aide pour l'utilisation du programme :
tutoriels et fichiers d'exemples, pour permettre aux utilisateurs de comprendre le fonctionnement et
les possibilités de BioDyn3D.
5
1 / 39 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !