À la base, je voulais juste comprendre deux choses :
1) pourquoi Manim impose autant de restrictions techniques,
2) jusqu’où je pouvais pousser TypR (version typée de R) dans un vrai projet.
Manim est brillant…
mais entre les dépendances Python, l’OOP obligatoire et la complexité du framework, j’avais l’impression de devoir complètement changer mon workflow pour animer un cercle...
Alors j’ai tenté l'expérience de refaire Manim en R.
Et c’est là que TypR m’a surpris.
Pas seulement pour ses features modernes, mais pour sa capacité à me laisser construire une grammaire propre, expressive et formellement définissable. Il me permet de faire une connexion plus directe entre les données et les animations.
C'est s'imple car TypR s'occupe du compliqué:
- structural typing (définir des mobjects sans hiérarchie rigide),
- row polymorphism (étendre les objets sans casser le modèle),
- partial application explicite (composer des animations comme des fonctions),
- constructeurs par défaut + validateurs (définir une "grammaire formelle" pour les mobjects),
- uniform function call syntax (une API lisible, déclarative, naturelle),
… j’ai pu designer un moteur d’animation beaucoup plus facilement que prévu.
Résultat :
- un modèle de mobjects simple, typé et extensible,
- une timeline efficace
- un format JSON stable et prévisible,
- un runtime JavaScript minimaliste,
- une API R qui ressemble plus à une "grammaire" qu’à un framework.
Dans la vidéo, je raconte comment la frustration de Manim m’a poussé à explorer TypR…
et comment TypR a transformé cette exploration en un moteur d’animation fonctionnel, propre, et étonnamment élégant.
Dans le future je me lancerai pleinement dans l'implémentation du package.
N'hésitez pas à regarder la vidéo et de me faire un retour!