JWildfire Swan !

Accueil / Fractales / JWildfire Swan !

Nous sommes tous effondrés ! Le logiciel JWildfire n’évoluera plus. Son génial dévellopeur à décidé de le remplacer par un successeur survitaminé baptisé Swan… J’en entends parler depuis quelques semaines et les passionnés (nous sommes 3) rêvent de l’essayer. 🙂

C’est encore une version en cours de développement et nous sommes encore loin des premières beta publiques. Mais il est déjà possible de tester la bête au prix de quelques manoeuvre cabalistiques. Inutile de chercher sur l’Internet : l’installeur n’y est pas répertorié. Il faut se rendre sur le Patreon du développeur Andreas Maschke, s’y connecter (il existe un vague bouton « gratuit », sinon c’est payant) et ouvrir le dernier billet du blog intégré…

 

C’est bien caché… Tout au bas de ce post (et à condition d’être connecté) apparaissent enfin les liens de téléchargement de l’application en Linux, Windaube et MacOS ! Mais les soucis ne sont pas terminés sur MacOS puisque cette appli refuse de s’ouvrir. Il faut bidouiller les préférences du Mac (on a l’impression d’avoir une maladie vénérienne incurable) pour passer outre cette limitation. Enfin, le nouveau bazar s’ouvre !

Avec les chemins par défaut (je vous le donne en mille) des différents paramètres, flames, scripts, gradients, vaches, cochons : à la racine ! Mais pas que… En fait dans : Bibliothèque (dossier caché – ah ben oui)/Application support/Godot (si,si)/app_userdata/JWildfireSwan (strong and beautiful)/ oufff…

Mais que vient faire Godot Engine, moteur de jeu français et logiciel libre dans cette galère ?

En attendant Godot

L’objectif de ce projet est de permettre la création de superbes flammes fractales sur GPU, sur presque toutes les plateformes. Cela signifie que le GPU est le mode unique et natif. Rappelons que le GPU est « la carte vidéo » des ordinateurs, un processeur spécial mis au point initialement par les fabricants de jeux pour les consoles et qui permet du rendu « temps réel ». De semblables puces sont également utilisées aujourd’hui pour l’IA.

Des logiciels comme Unity ou Unreal Engine, sont apparus pour modéliser ces « mondes » et récemment Godot. Si bien qu’on est en droit de se demander à quoi peuvent bien servir les logiciels 3D traditionnels et les puces CPU ? Bref…

Alors que JWildfire était développé en Java, et tournait avec le CPU (lent comme un percheron) la nouvelle version Swan l’est en GD script. Encore un langage de programmation parmi la multitude déjà existante ? Caprice ?

Mais, comme le dit lui-même Andréas : « je cherchais un langage de programmation moderne qui soit amusant à utiliser et qui permette de développer rapidement. Ma première tentative pour créer JWildfireSwan a été d’utiliser une application Web avec Vaadin, TypeScript et WebGl. Pour être honnête, c’était vraiment nul ».

« Je ne peux pas exprimer avec des mots à quel point c’est génial de travailler avec le moteur Godot. Je travaille comme développeur de logiciels depuis environ 30 ans maintenant et j’ai utilisé de nombreux systèmes. Au bout d’un moment, chaque système commençait à m’énerver. Soit vous ne pouvez pas faire une certaine chose, soit cela devient plus lent à mesure que le projet grandit, soit c’est tout simplement nul. Un bon exemple est IntelliJ : lorsque je charge le projet JWildfire, IntelliJ prend littéralement le contrôle de mon ordinateur et commence à analyser ses index, ce qui est inutile. Godot : C’est tout simplement le niveau au dessus. Je suis vraiment très excité à ce sujet. »…

 

GDScript est un langage de programmation conçu spécifiquement pour le moteur de jeu Godot. Il s’agit d’un langage de script orienté objet, à typage dynamique et graduel, dont la syntaxe est similaire à celle de Python. Souhaitons donc longue vie à Godot

Mais Andréas est un mutant. Qui a déjà en quelques mois codé 70.000 lignes de ce GDscript dans 280 fichiers ! Et comme le GDscript est un langage très compact ça fait vraiment beaucoup… Et les performances attendues sont là !

Sans trop entrer dans les détails, il faut comprendre que le GPU fonctionne en faisant des milliers d’opérations en parallèle et non plus en séquenciel, comme les puces CPU. Par exemple, avec une « swarm size » de 1024, 1.048576 vecteurs sont calculés à la fois. Avec une taille de 2028 (facteur 4) ce sont cette fois 4.194304 vecteurs qui sont traités !

Par exemple, pour un même fichier à rendre avec un MacBook Silicon graphic M1 (déjà largement obsolète : on en est au M4) les temps de rendu sont les suivants :

  • JWildfire : 45.35s
  • JWildfireSwan (swarm size: 1024) : 6.79s
  • JWildfireSwan (swarm size: 2048) : 1.76s

La vitesse de la lumière ! Passons à la prise en main.

Du côté de chez Swan

C’est amusant de faire tourner un logiciel pas fini ! Ca plante tout le temps et il manque une foultitude de fonctions. Et je comprend pourquoi cette version est si bien cachée…

Notons que la quantité astronomique de variations différentes y est déjà avec leurs fonctions « pre » et « post » et réécrites pour la plupart avec un certain nombre de « presets » bien utiles (Crackle, entre autres).

Il est possible d’utiliser les flames précédemment crées avec JWildfire ou même Apophysis en les copiant toutefois dans le repertoire abscons, à la racine, dans « Godot, à&@/ç!§(/etc. »

En double cliquant dessus on a accès aux panneaux de modification et celles-ci se font effectivement en temps réel dans la fenêtre de prévisualisation. A droite, d’autres visualisations contextuelles apparaissent pour faciliter la comprehension spatiale de ce que font subir au modèle les transformations choisies.

Par contre je n’ai pas réussi à importer mes gradients soigneusement peaufinés dans Jwilfire. Il faut se contenter d’en créer de nouveaux avec les différents parfums proposés…

Sinon on retrouve toutes les modifications à base de triangles à déplacer (avec les réglettes ou directement à la souris) dans leur merveilleuse clarté mais il est vrai, en temps (presque) réel !

L’interface est plus moderne, plus concentrée (tous les réglages au même endroit) et contraste fortement avec celle plus « rock & roll » du JWildfire de l’ancienne génération. Ne doutons pas que nous disposerons bientôt de toutes les fonctionnalités auxquelles nous a habitué ce génial logiciel. Il faudra réajuster tous ses réflexes mais la génération temps réel GPU n’a pas de prix !

Créer de nouveaux visuels fractals est devenu un jeu d’enfant et il n’y a plus à attendre des heures pour apprécier les effets des modifications…

Naissance de l’idée.

Notons au passage qu’il est possible d’enregistrer les fichiers obtenus au format « flame » et de les réouvrir sans problème dans JWildfire. On ne perd rien ! Manoeuvre bientôt obsolète puisque Swan va prochainement remplacer JWildfire.

Effet Plastic : le retour !

Mais, fini de rire, il est temps de se lancer ! Et de générer une fractale « from scratch » (de zéro) dans ce nouveau logiciel. Et pourquoi pas un de ces salmigondis blobesque comme nous l’expliquions jadis ? Il faut deux XForms : un blur et un linear/spherical : ce n’est pas la mer à boire !

Dans Swan, on ajoute d’abord un « Layer », puis une « XForm », puis une « variation blur », puis une deuxième XForm avec une « variation linear » et une autre « spherical ». Sans oublier de cliquer sur le bouton « set » à chaque fois pour que ces variations soient prises en compte. On y est presque !

Reste à trifouiller la position relative des deux triangles en terme de position, de taille et de rotation pour obtenir une foultitude de smarties renversés. En changeant les couleurs du gradient comme souhaité. C’est prêt ! 🙂

Par contre je n’ai pas réussi à régler un rendu avec un fond transparent (en .png) pour le compositing ultérieur. Soit j’ai de la glue dans les yeux, soit cette fonction n’est pas encore écrite ! Bon j’ai rusé mais… Laissez-moi là, je vais vous retarder…

Edit : une nouvelle version vient de sortir ! Cet homme développe plus vite que son ombre….
Le lien de téléchargement pour MacOS.

Edit 2 : en fait, les versions se succèdent à la cadence d’une mitrailleuse lourde ! Allez sur son Patreon et… Débrouillez-vous ! 🙂

 

Publié le Jan 1, 2025

Catégories

0 commentaires