Simulateur de mécanique – Début de modélisation

J’ai commencé à réfléchir à l’utilisation du logiciel :

  • qu’est-ce que l’utilisateur en attendrait ?
  • qu’est-ce que l’utilisateur devrait pouvoir faire ?
  • comment l’utilisateur interagirait-il avec  ?
  • une interface graphique est-elle indispensable voir même utile ?

J’ai un peu discuté avec mes amis et ils m’ont bien aidé sur certains points. J’avertis tout de suite qu’il ne s’agit que du début d’un long brainstorming avant de commencer à enfin écrire des lignes de code. A dire vrai, je n’ai pourtant qu’une envie : commencer à coder la solution. Mais c’est bien pour cela que j’essaie de prendre le temps de bien préparer le projet afin de lui donner toute les chances d’aboutir.

Bref, je commence par vous présenter ce que l’utilisateur peut attendre de ce programme.

Attente du programme

Le programme se veut simple, très simple, pour commencer. L’utilisateur doit pouvoir être capable de simuler des expériences simples de mécanique du point. Par exemple, le lancer d’un mobile avec une vitesse initiale, uniquement soumis à son propre poids. Ensuite ajouter une force de frottements constante (force du vent opposée au mouvement par exemple). Un autre exemple serait un pendule sans frottements. Ces expériences simples pourraient se compliquer par un parcours complexe du mobile. Vous pouvez le voir sur l’image ci-dessous.

Trajectoire complexe pour un mobile

Mais alors, qu’est-ce que l’utilisateur aurait à faire ?

L’utilisateur aura comme tâche de décrire la simulation selon une syntaxe qui commence à prendre forme. On en reparle bientôt, dans le paragraphe sur l’interface utilisateur. Concrètement, l’utilisateur doit indiquer au programme tous les paramètres dont il dispose pour que le programme puisse correctement calculer l’évolution spatio-temporelle du mobile. Ces paramètres sont divers :

  • De quels mobiles est constituée la simulation ?
  • Quelles surfaces sont à prendre en compte ?
  • Y a-t-il un mobile attaché à un fil ?
  • Quelles forces sont à prendre en compte ?

Voici pour le moment les principaux exemple de paramètres que l’utilisateur doit renseigner au programme.

Et comment l’utilisateur décrit-il l’expérience au programme ?

Tu viens bien de mentionner une syntaxe juste avant non ?

En effet, j’ai bien parlé d’une syntaxe. Je la pense simple à comprendre et à mettre en œuvre. L’utilisateur, via une console par exemple, est invité à entrer des commandes afin de renseigner tout les paramètres de l’expérience. Ces commandes se composent d’un nom de commande et de paramètres. Je suis toujours en train de chercher quelles commandes seront nécessaires mais je tiens à vous présenter les premières idées que j’ai. De plus, cela me permettra d’avoir une sauvegarde de mes pensées car je ne me rappellerai sans doute pas de tous mes choix dans quelques années voir quelques mois.

Voici un tableau récapitulatif de ces commandes :

Nom de la commande Description de la commande
create Cette commande a pour but de créer quelque chose. A vrai dire elle est assez générique car elle doit pouvoir permettre de créer une simulation, un mobile, un point fixe, une force etc. Je reviendrai dessus dans un autre article où je présenterai plus en détails les commandes et leurs paramètres.
add Encore une commande générique. En effet, elle doit servir à ajouter un mobile à une expérience, à ajouter une forme à une trajectoire, à ajouter une propriété à un mobile, ajouter une force à un mobile ou une surface etc
set Bon eh bien en fait, il semble que les commandes soient toutes plus ou moins génériques sans leurs paramètres. Cette commande doit permettre d’affecter une valeur à une propriété quelconque. Il est assez compliqué d’en parler dans cet article. Je vous invite donc à vous tenir au courant de la sortie des futurs articles afin de ne pas manquer l’article suivant où je vous les présenterai plus en détails.

Et l’interface graphique dans tout ça ?

Oui oui j’y viens. En effet, une interface graphique permettrai de s’affranchir de cette syntaxe pour les personnes qui n’aiment vraiment pas utiliser la console et apporterait certes un aspect plus « user friendly ». Cependant, ce n’est pas une nécessité et si le code est bien conçu, elle devrait pouvoir être créée après.

Conclusion

J’arrive à la fin de cet article. Je n’ai pas grand chose à dire en conclusion si ce n’est qu’il y a encore beaucoup de chemin à faire avant de dire que le projet est prêt à être codé.

Laisser un commentaire