Fortraneries/BloubWorld
2024-01-30 13:31:54 +01:00
..
doc more bla 2024-01-28 01:43:23 +01:00
WS adding a lot of grabage 2022-03-18 12:21:40 +01:00
.gitignore bloubworld: more tweaking, more pimping 2024-01-29 05:25:08 +01:00
bloubspace.f90 bloubworld: cleaning 2024-01-29 10:54:45 +01:00
encode.sh dir struct 2022-03-18 22:07:01 +01:00
essai.f90 adding a lot of grabage 2022-03-18 12:21:40 +01:00
exportbloubs.f90 pimping the bloubworld 2024-01-25 21:44:49 +01:00
genbloubs.f90 bloubworld: more tweaking, more pimping 2024-01-29 05:25:08 +01:00
listbloubs.f90 big commit before big mess 2022-10-28 21:53:57 +02:00
Makefile using my module collection 2024-01-07 05:58:05 +01:00
mathstuff.f90 adding a lot of grabage 2022-03-18 12:21:40 +01:00
mergebloubs.f90 oups... 2024-01-29 14:30:31 +01:00
movebloubs.f90 bloubworld: more tweaking, more pimping 2024-01-29 05:25:08 +01:00
plotbary.sh bloubworld: more tweaking, more pimping 2024-01-29 05:25:08 +01:00
povstuff.f90 need more work :) 2022-02-16 14:29:29 +01:00
README.md bloubworld: more tweaking, more pimping 2024-01-29 05:25:08 +01:00
runme.sh bloubworld: more tweaking, more pimping 2024-01-29 05:25:08 +01:00
scene.pov bloubworld is now a cube 2024-01-30 13:31:08 +01:00
toinc.awk add finish to bloubs 2024-01-30 13:31:54 +01:00

BloubWorld

C'est quoi ?

Le BloubWorld (que l'on appelle aussi BloubSpace) est un espace borné dans lequel se déplacent des bloubs, lesquels sont des sortes de particule munie de certaines propriétés (age, grosseur, vitesses, etc...). Lesquelles valeurs peuvent évoluer en fonction du temps. Tout est expliqué dans ce document.

la structure d'un bloub est (presque) simple, en fait. Le plus compliqué, c'est de savoir quoi faire de ce fatras de bigdata. On peut fabriquer des gazillions de bloubs, et ensuite les lacher dans un espace clôt, avec des parois 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.

Comment ça fonctionne ?

Pas trop mal pour un premier jet. Il suffit de lire le script runme.sh pour avoir une idée de l'enchainement des opérations. Lequel enchainement est décrit plus bas.

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 pas optimal, mais c'est un cadre idéal pour les bricolages hasardeux.

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 de fichier qui va être modifié assez souvent, ne gardez pas d'archives.

Les logiciels

genbloubs

Fabrication d'une population de bloubs plus ou moins aléatoires. Deux paramètres : le nom du fichier (extention .blbs) et le nombre de bloubs désirés. Les règles de génération devraient être paramétrables. source

movebloubs

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 bloubs usés par les chocs, et faire naitre de nouveaux bloubs 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

exportbloubs

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 ce qu'il faut pour les différents moteurs de rendu. 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

Un exemple : l'idée est de générer un fichier .inc pour Povray pour utiliser les données exportées dans une scène, par exemple le barycentre des bloubs. Et c'est très facile à faire avec un script Awk.

mergebloubs

Alors, celui-ci, il n'est pas vraiment au point. Il faut tout ré-écrire et faire gaffe à l'explosion quadratique. source

TODO

  • Concevoir un système de bouding box facile à utiliser
  • Réfléchir à une politique de vieillissement des bloubs
  • le merge de deux bloubs est-il un acte politique ?