Jax's true calling: Ray-Marching renderers on WebGL
L'auteur explique qu'il a utilisé JAX pour créer un rendu graphique 3D en définissant une image comme un tenseur dépendant de la position de la souris et du temps. Le rendu repose sur les fonctions de distance signée (SDF) qui décrivent des objets par leur distance et se composent facilement par min/max ou versions lissées pour préserver la différentiabilité. L'algorithme de raymarching exploite la propriété des SDF selon laquelle on peut avancer d'une distance sûre sans collision, et JAX permet de vectoriser le calcul des pixels avec vmap. La différentiation automatique de JAX fournit le gradient de la SDF, qui donne la normale de surface et permet de calculer l'éclairage de manière propre au moment de compilation. En post-scriptum, l'auteur mentionne des pistes d'exploration comme jax-js, la géométrie projective avec JAXGA, les liens entre réseaux de neurones et SDF, et l'usage potentiel de jax.experimental.jet pour améliorer le ray-marching.