bloubworld: better doc
This commit is contained in:
parent
2b7012667a
commit
34da09281e
@ -7,36 +7,16 @@ dans lequel se déplacent des **bloubs**, lesquels sont
|
|||||||
des sortes de particule
|
des sortes de particule
|
||||||
munie de certaines propriétés (age, grosseur, vitesses, etc...).
|
munie de certaines propriétés (age, grosseur, vitesses, etc...).
|
||||||
Lesquelles valeurs peuvent évoluer en fonction du temps.
|
Lesquelles valeurs peuvent évoluer en fonction du temps.
|
||||||
|
Tout est expliqué dans ce [document](doc/what-is-a-bloub.md).
|
||||||
|
|
||||||
## Description d'un bloub
|
la structure d'un bloub est (presque) simple, en fait.
|
||||||
|
|
||||||
Attention cette description n'est qu'un exemple, mais les points
|
|
||||||
essentiels de la première étape sont là.
|
|
||||||
Les caractériques dynamiques : position et vélocités.
|
|
||||||
Coté physique : l'age en bloubcycle (avec un maximum), la taille,
|
|
||||||
un petit nom, et un état (coucou la FSM).
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
type t_bloubs
|
|
||||||
character(8) :: nick
|
|
||||||
logical :: alive
|
|
||||||
integer :: state
|
|
||||||
integer :: num ! ???
|
|
||||||
real :: px, py, pz
|
|
||||||
real :: vx, vy, vz
|
|
||||||
real :: radius
|
|
||||||
integer :: age, agemax
|
|
||||||
end type t_bloubs
|
|
||||||
```
|
|
||||||
|
|
||||||
C'est (preseque) simple, en fait.
|
|
||||||
Le plus compliqué, c'est de savoir quoi faire de ce fatras
|
Le plus compliqué, c'est de savoir quoi faire de ce fatras
|
||||||
de *bigdata*.
|
de *bigdata*.
|
||||||
|
|
||||||
On peut fabriquer des gazillions de bloubs, et ensuite
|
On peut fabriquer des gazillions de bloubs, et ensuite
|
||||||
les lacher dans un espace clôt, avec des parois
|
les lacher dans un espace clôt, avec des parois
|
||||||
rebondissantes. Chaque choc va un peu les user, et au bout d'un moment,
|
rebondissantes.
|
||||||
|
Chaque choc va un peu les user, et au bout d'un moment,
|
||||||
ils vont mourir. C'est comme ça, c'est la vie des bloubs.
|
ils vont mourir. C'est comme ça, c'est la vie des bloubs.
|
||||||
|
|
||||||
## Comment ça fonctionne ?
|
## Comment ça fonctionne ?
|
||||||
@ -45,8 +25,6 @@ Pas trop mal pour un premier jet. Il suffit de lire
|
|||||||
le script `runme.sh` pour avoir une idée de l'enchainement
|
le script `runme.sh` pour avoir une idée de l'enchainement
|
||||||
des opérations. Lequel enchainement est décrit plus bas.
|
des opérations. Lequel enchainement est décrit plus bas.
|
||||||
|
|
||||||
## Les logiciels
|
|
||||||
|
|
||||||
Pour le moment, l'ensemble des opérations est gérée par un script shell
|
Pour le moment, l'ensemble des opérations est gérée par un script shell
|
||||||
qui enchaine des opérations plus élémentaires. Oui, je sais, ce n'est
|
qui enchaine des opérations plus élémentaires. Oui, je sais, ce n'est
|
||||||
pas optimal, mais c'est un cadre idéal pour les bricolages hasardeux.
|
pas optimal, mais c'est un cadre idéal pour les bricolages hasardeux.
|
||||||
@ -55,11 +33,15 @@ Ces opérations agissent sur des fichiers de type `.blbs` qui sont,
|
|||||||
vu du fortran, des dumps séquentiels du type t_bloubs. Un format
|
vu du fortran, des dumps séquentiels du type t_bloubs. Un format
|
||||||
de fichier qui va être modifié assez souvent, ne gardez pas d'archives.
|
de fichier qui va être modifié assez souvent, ne gardez pas d'archives.
|
||||||
|
|
||||||
|
## Les logiciels
|
||||||
|
|
||||||
|
|
||||||
### genbloubs
|
### genbloubs
|
||||||
|
|
||||||
Fabrication d'une population de bloubs plus ou moins aléatoires.
|
Fabrication d'une population de bloubs plus ou moins aléatoires.
|
||||||
Deux paramètres : le nom du fichier et le nombre de bloubs.
|
Deux paramètres : le nom du fichier et le nombre de bloubs.
|
||||||
Les règles de génération *devraient* être paramétrables.
|
Les règles de génération *devraient* être paramétrables.
|
||||||
|
[source](genbloubs.f90)
|
||||||
|
|
||||||
### movebloubs
|
### movebloubs
|
||||||
|
|
||||||
@ -67,9 +49,9 @@ Le cœur actif du système : c'est lui qui, à chaque tick, va déplacer
|
|||||||
les bloubs, gérer les rebonds avec la boudary-box, éliminer les
|
les bloubs, gérer les rebonds avec la boudary-box, éliminer les
|
||||||
bloubs usés par les chocs, et faire naitre de nouveaux bloubs
|
bloubs usés par les chocs, et faire naitre de nouveaux bloubs
|
||||||
si le besoin s'en fait sentir.
|
si le besoin s'en fait sentir.
|
||||||
|
Seul problème, il n'a pas de notion directe du temps, parce qu'il est juste de passage dans un pipeline.
|
||||||
|
[source](movebloubs.f90)
|
||||||
|
|
||||||
Seul problème, il n'a pas de notion directe du temps, parce qu'il est
|
|
||||||
juste de passage dans un pipeline.
|
|
||||||
|
|
||||||
### exportbloubs
|
### exportbloubs
|
||||||
|
|
||||||
@ -77,13 +59,16 @@ Sortie sur `stdout` de certaines propriétes des bloubs, qui seront
|
|||||||
reprise par un (ou des) scripts écrits en `awk`, afin de générer
|
reprise par un (ou des) scripts écrits en `awk`, afin de générer
|
||||||
ce qu'il faut pour les différents moteurs de rendu.
|
ce qu'il faut pour les différents moteurs de rendu.
|
||||||
**Le format de sortie est susceptible de changer sans préavis.**
|
**Le format de sortie est susceptible de changer sans préavis.**
|
||||||
|
Bon, pour le moment, dans les formats il n'y a que POVray,
|
||||||
|
mais Gnuplot et/ou Rdata arriveront bien un de ces jours.[source](exportbloubs.f90)
|
||||||
|
|
||||||
|
|
||||||
Bon, pour le moment, il n'y a que POVray, mais Gnuplot arrivera en second.
|
|
||||||
|
|
||||||
### mergebloubs
|
### mergebloubs
|
||||||
|
|
||||||
Alors, celui-ci, il n'est pas vraiment au point. Il faut tout ré-écrire
|
Alors, celui-ci, il n'est pas vraiment au point. Il faut tout ré-écrire
|
||||||
et faire gaffe à l'explosion quadratique.
|
et faire gaffe à l'explosion quadratique.
|
||||||
|
[source](mergebloubs.f90)
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
|
@ -2,14 +2,24 @@
|
|||||||
|
|
||||||
## Philosophie
|
## Philosophie
|
||||||
|
|
||||||
Bonne question, mais nous n'avons pas le temps, point suivant ?
|
Bonne question, mais nous n'avons pas le temps, point
|
||||||
|
suivant ? En fait, si, il est tard, mais j'ai envie de
|
||||||
|
raconter des conneries.
|
||||||
|
|
||||||
En fait, si, il est tard, mais j'ai envie de raconter des
|
Un bloub est une entité mathématique qui vit
|
||||||
conneries.
|
dans un espace cartésien abstrait, bien que normé.
|
||||||
|
Il peut aussi être borné, soit en mode "boite", soit
|
||||||
|
en mode "tore". La notion de champ de gravité est
|
||||||
|
ignoré, parce qu'un bloub se moque d'avoir une masse.
|
||||||
|
Par contre les bloubs peuvent interagir entre eux
|
||||||
|
de divers manières : rebond (genre billard), échange
|
||||||
|
de données, fusion volumique...
|
||||||
|
|
||||||
## Technique
|
## Technique
|
||||||
|
|
||||||
Voici la version du _Sat 19 Feb 2022 12:37:42 AM CET_
|
Voici la version du _Sat 19 Feb 2022 12:37:42 AM CET_,
|
||||||
|
c'est à dire complètement différente de l'état actuel
|
||||||
|
du logiciel.
|
||||||
|
|
||||||
```
|
```
|
||||||
type t_bloubs
|
type t_bloubs
|
||||||
@ -23,17 +33,28 @@ Voici la version du _Sat 19 Feb 2022 12:37:42 AM CET_
|
|||||||
end type t_bloubs
|
end type t_bloubs
|
||||||
```
|
```
|
||||||
|
|
||||||
Certains champs sont assez explicites, comme le nick, la position
|
Certains champs sont assez explicites, comme le *nick*,
|
||||||
dans l'espace, le rayon (pour nous, un bloub est
|
la position dans l'espace, le rayon (pour nous, un bloub est
|
||||||
une entité abstraite assimilable à une bubulle)
|
une entité abstraite assimilable à une bubulle) ou la vitesse
|
||||||
ou la vitesse sur les trois axes.
|
sur les trois directions de l'espace bloubeux.
|
||||||
D'autres, comme `alive`, sont
|
D'autres, comme `alive`, sont plus délicates à expliquer,
|
||||||
plus délicates à expliquer, sauf si l'on considère que les
|
sauf si l'on considère que les bloubs sont zombifiables.
|
||||||
bloubs sont zombifiables.
|
|
||||||
|
|
||||||
D'autres, comme l'age, sont bien plus sujettes à de diverses
|
D'autres, comme l'age, sont bien plus sujettes à de diverses
|
||||||
interprétations. doit-on incrémenter l'age à chaque tick d'horloge
|
interprétations. doit-on incrémenter l'age à chaque tick d'horloge
|
||||||
ou à chaque évènement discret ? Et à quel age un bloub devient-il
|
ou à chaque évènement discret ? Et à quel age un bloub devient-il
|
||||||
trop vieux, à quel age va-t-il mourir ?
|
trop vieux, à quel age va-t-il mourir ?
|
||||||
|
|
||||||
|
## Et pour la suite ?
|
||||||
|
|
||||||
|
Au fil du temps, le bloub évolue et se complexifie.
|
||||||
|
La prochaine itération sera dotée d'un attribut de couleur et
|
||||||
|
d'amusantes fonctions pour mixer ces couleurs si deux bloubs
|
||||||
|
se trouvent à fusionner.
|
||||||
|
On peut aussi envisager de les munir d'un spin non entier
|
||||||
|
dans le but assumé d'augmenter la complexité des rencontres
|
||||||
|
interbloubs.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user