Jet, développé par CubeCoders, est un rastériseur 3D compact et sans dépendances, conçu pour les microcontrôleurs modernes tels que l’ESP32 et le STM32. Écrit en C++17, le logiciel fonctionne entièrement de manière logicielle et utilise uniquement l’arithmétique entière ainsi que des couleurs RGB565 sur 16 bits. Il est destiné à fonctionner avec des écrans connectés via SPI, tels que les ST7796 et ILI9488.
Sur l’ESP32-S3, Jet peut traiter environ 650 triangles à l’écran à 60 FPS et 1300 à 30 FPS, avec une résolution de 480×320. Les développeurs indiquent que ses performances se situent entre celles de la Sega 32X et de la Sega Saturn.
Pourquoi est-ce important ?
Le fait que Jet ne nécessite ni dépendances ni accélération matérielle offre une approche qui réduit la charge d’intégration pour les développeurs souhaitant utiliser des graphismes 3D dans des systèmes embarqués aux ressources limitées. Le choix de l’arithmétique entière et du RGB565 montre que le projet a été conçu en fonction des contraintes de ressources des microcontrôleurs et des écrans SPI, plutôt que pour offrir une qualité graphique comparable à celle des ordinateurs de bureau. Le nombre de triangles annoncé permet d’évaluer les scènes réalisables en mettant en évidence le compromis entre résolution, fréquence d’images et complexité de la scène sur l’ESP32-S3. La comparaison avec des consoles transforme également les données brutes de performance en une référence plus compréhensible pour les lecteurs qui évaluent les capacités 3D des systèmes embarqués. Toutefois, comme les mesures ne concernent que la configuration ESP32-S3 indiquée, il reste difficile de savoir si des résultats similaires peuvent être obtenus avec la famille STM32 et d’autres écrans compatibles.