- Outil de création d’animation 2D de nouvelle génération développé en C#, Avalonia et SkiaSharp, qui réimplémente de façon moderne les fonctionnalités de Flash
- Fonctionne sur Linux, Mac et PC, et fournit un environnement de production complet avec timeline, dessin vectoriel, symboles, tweening et scripting
- Prend en charge l’import de fichiers .fla/XFL, ce qui permet d’ouvrir et de modifier des projets Flash existants
- Inclut des fonctions de production intégrées comme un système de scripting en C#, un convertisseur ActionScript et un éditeur audio intégré
- L’essentiel est de proposer un environnement de création open source qui hérite de l’héritage de Flash tout en offrant un workflow moderne
Vue d’ensemble du projet
- Un outil complet de création d’animation 2D imaginé autour de l’idée suivante : à quoi ressemblerait Flash s’il était recréé en 2026
- Reconstruit entièrement depuis zéro avec C#, Avalonia et SkiaSharp
- Compatible avec Linux, Mac et Windows
- Inclut toutes les fonctions clés de Flash : timeline, outils de dessin, bibliothèque de symboles, tweening et scripting
- Permet d’ouvrir et d’éditer des projets Flash existants grâce à la fonction d’import de fichiers .fla/XFL
- Le transpileur ActionScript → C# permet aussi de réutiliser du code de script existant
Systèmes principaux
- Fournit des fonctions de documents multi-onglets, sauvegarde automatique, sérialisation de projet, gestion des scènes et configuration de la scène
- Structure de sauvegarde en fichiers
.anim, sous forme de dossier ou d’archive compressée, basée sur JSON + SkiaSharp
- Taille de scène, couleur d’arrière-plan, fréquence d’images, etc. peuvent être personnalisées
Moteur de dessin et outils
- Moteur vectoriel basé sur DCEL (doubly connected edge list) reproduisant le mode de dessin par fusion de Flash
- Prise en charge de 5 modes de peinture : Paint Normal, Behind, Fills, Selection et Inside
- Comprend 17 outils de dessin
- Pinceau, crayon, ligne, rectangle, cercle, arc, gomme, transformation, pot de peinture, pipette, texte, caméra, etc.
- Contrôle précis avec détection de pression, lissage, transformation libre, zoom/panoramique, etc.
Système d’objets et de symboles
- Prise en charge de divers types d’objets comme Shape, Text, Rich Text, Bitmap, Symbol Instance
- Implémentation complète de la structure de symboles de Flash avec Graphic, MovieClip, Button, RichText Symbol
- La fonction Convert to Symbol permet de transformer les objets sélectionnés en symboles réutilisables
- Tous les assets sont gérés de manière centralisée dans la Symbol Library
Timeline et animation
- Fournit une timeline multicouche et un système de keyframes
- Types de calques : Normal, Guide, Mask, Folder, Camera, Sound
- Prise en charge de Classic Tween, Motion Tween et Shape Tween
- Possibilité d’éditer des trajectoires de mouvement basées sur des courbes de Bézier, de créer des animations de caméra et de faire de la synchronisation audio
- Prise en charge des fonctions d’easing (Linear, Quad, Cubic, Sine, Expo, Back, Bounce, Elastic) et des courbes personnalisées
Styles et effets
- Remplissage (Fill) : couleur unie, dégradé linéaire/radial, motif
- Contour (Stroke) : épaisseur, couleur, style des extrémités/jointures, limite de mitre
- Filtres et effets : Blur, Drop Shadow, Glow, Bevel, Adjust Color, etc.
- Plusieurs filtres peuvent être combinés en chaîne
Sélection, alignement et transformation
- Prise en charge de la sélection rectangulaire/libre, de la transformation de groupe, de la courbure de tracé et du snapping
- Les outils d’alignement et de distribution permettent d’ajuster l’espacement et la position des objets
- Jusqu’à 100 niveaux d’Undo/Redo, avec prise en charge de la fusion de commandes et de l’exécution par lots
Import et export
- Chargement de projets Flash via l’import de fichiers XFL/.fla
- Prise en charge de l’export SWF et de l’export HTML5/Canvas
- Inclut la conversion Bézier, le baking des tweens et un compilateur de Shape
Scripting et automatisation
- Le moteur de scripting C# basé sur Roslyn permet une automatisation de la création au moins au niveau de JSFL
- Fournit des API pour le document, la timeline, les calques, la sélection, les graphismes et la bibliothèque
- Les scripts de frame permettent d’exécuter du code à des moments précis de la lecture
- Convertisseur ActionScript 3 → C# et parseur/lexer AS3 intégrés
- Le moteur d’exécution de scripts, l’API de détection des entrées et le panneau de sortie facilitent le débogage
Audio et texte enrichi
- Éditeur audio intégré avec affichage de la forme d’onde, couper/coller et lecture synchronisée avec la timeline
- Traitement des entrées/sorties audio via la bibliothèque NAudio
- Le moteur de texte permet un contrôle fin de la police, de la taille, de la couleur, de l’alignement, de l’interlettrage et de l’interligne
- Le rendu de contours de glyphes permet d’animer le texte sous forme vectorielle
UI/UX
- Prise en charge d’un système de panneaux ancrables de style VS et de fenêtres flottantes
- Ensemble de panneaux pour la timeline, les propriétés, la bibliothèque, les outils et le sélecteur de couleurs
- Fournit une gestion des documents par onglets, des panneaux masquables automatiquement, des préréglages de zoom et un éditeur de profil d’épaisseur de trait
Avancement du projet et soutien
- Le projet est actuellement en développement actif, avec des fonctionnalités ajoutées en continu
- Il est possible de soutenir le développement via la page de soutien Patreon
- Les mises à jour du projet continueront d’être publiées sur Newgrounds
1 commentaires
Discussions sur Hacker News
J’ai fait des jeux Flash à une époque. Mon profil Newgrounds existe encore
L’avantage de Flash, c’était un environnement où codeurs et artistes pouvaient travailler ensemble. L’artiste créait une animation dans un fichier FLA et me l’envoyait, puis je n’avais plus qu’à la copier dans le projet. Au besoin, je pouvais aussi ajuster quelques frames pour rendre le tout plus naturel
Aujourd’hui je travaille avec Love2D, et la gestion de versions est bien meilleure. À l’époque, on gérait les fichiers avec des noms du genre « GameName-1.fla », « GameName-2.fla ». Plus tard, il est devenu possible de séparer l’ActionScript, mais le FLA restait quand même un gros bloc binaire
L’animation vectorielle de Flash reste hors de portée des outils actuels basés sur les sprites. L’animation de boss de Clock Legends que j’avais faite à l’époque comptait des centaines de frames, et pourtant le fichier FLA ne faisait qu’environ 23 Mo. Je suis impatient de voir ce type de projet renaître
Quand je travaillais chez Adobe, j’ai créé un crawler Flash. Vers 2008-2010, on a commencé par crawler le top 1 million des sites Alexa
On utilisait Firefox en mode headless et un lecteur Flash personnalisé pour extraire et analyser des données d’exécution. On avait monté un cluster dans un centre de colocation à Bucarest, et je devais souvent m’y déplacer moi-même à cause de problèmes comme les limites de poids ou les mises à niveau de RAM
On utilisait des technologies des débuts comme Nutch, Hadoop et HBase, puis on visualisait les résultats avec une base SQL et une interface UI. Des stagiaires ont terminé le projet en apprenant énormément, et certains travaillent aujourd’hui dans la Silicon Valley
Cet outil a aussi permis de découvrir beaucoup de failles de sécurité. Si Adobe conserve encore ces données, ce serait une bonne idée d’en faire don au Computer History Museum
Flash reste encore aujourd’hui la plateforme de développement la plus amusante que j’aie utilisée
Pouvoir dessiner directement, relier le tout avec du code, et ne pas avoir à recompter les frames, c’était incroyablement pratique. L’époque où je créais des jeux dans ma chambre avec une copie piratée de Flash MX 2004 Pro (ou Flash 8) me manque encore
Construct et GameMaker sont bien, mais aucun ne procure autant de plaisir que Flash. S’il y avait un nouveau Flash, j’en serais vraiment ravi
L’idée d’un outil open source capable d’ouvrir et de modifier directement des fichiers .fla / XFL a surpris beaucoup de monde. Si ce n’est pas juste pour les lire mais aussi pour les éditer, cela a une vraie portée en matière de rétrocompatibilité
Certains ont trouvé que le style du texte manquait de cohérence, au point de soupçonner une génération partielle par LLM. La ponctuation et l’usage des majuscules sont irréguliers, alors que le résumé est rédigé dans une grammaire parfaite
L’expression « Not just play them back — edit them » a notamment semblé artificielle à certains. Cela dit, ils souhaitent quand même la réussite du projet
Depuis quinze ans, certains se disent souvent que « le monde a de nouveau besoin de quelque chose comme Flash ». Flash a été l’outil qui a appris à toute une génération l’art, le jeu vidéo, la musique et l’animation
Pour la génération actuelle, ce rôle semble être tenu par Minecraft et Roblox
On peut encore faire tourner Flash MX 2004 avec Wine, mais ce serait bien d’avoir une version ouverte avec des mises à jour régulières
ToonBoom est un excellent outil d’animation, et Construct 2 un bon moteur de jeu, mais il n’existe rien qui soit comme Flash, un outil hybride où animation et code se combinent naturellement
Dans Flash, on pouvait faire une BD sans connaître ActionScript, puis ajouter peu à peu du code pour en faire un jeu. C’était vraiment une structure remarquable
Certains pensent que se présenter comme un projet open source tout en lançant d’abord un Patreon, ce n’est pas un très bon départ. Surtout qu’il n’y a encore ni démo fonctionnelle ni vidéo, demander un soutien payant nuit à la confiance
En 2012, quelqu’un a créé IvanK.js, une bibliothèque JavaScript qui recréait l’API Flash sur le web. Cela nécessitait WebGL, qui était encore mal pris en charge à l’époque
Malgré cela, quelques jeux Flash ont pu être portés rapidement sur le web
Lien vers la démo
Haxe a été cité comme successeur possible de Flash, mais en réalité cela se rapproche davantage d’un remplaçant pour ActionScript
Le vrai attrait de Flash venait de la combinaison entre outil graphique et scripting. Le simple fait d’avoir un langage similaire ne suffit pas à reproduire la même expérience
Site officiel d’OpenFL
Certains pensent qu’Adobe aurait dû publier Flash en open source. Cela lui aurait peut-être permis de continuer à dominer le marché des outils de développement payants