Aller au contenu
La Lettre IT
Retour aux synthèses
3 min de lecture

Visualiser Navier-Stokes en 1 kB d'assembleur 386

En bref

  • Un développeur a implémenté deux visualisations du vortex de Burgers (une solution exacte de Navier-Stokes) : l'une en JavaScript, l'autre en 946 bytes d'assembleur 386 pur, exécutée dans DOSBox.
  • La version assembleur fonctionne à la vitesse d'un vrai 386 rapide, Mode 13h (320×200), et tient 35 images/seconde avec 200 particules animées.
  • Le défi d'optimisation : passer de 1594 bytes à moins de 1024 bytes (limite classique du demoscene) en conservant exactement le même rendu pixel pour pixel.

Ce que dit la source

L'auteur présente une reconstruction en assembleur x86 d'une simulation fluide (Navier-Stokes appliquée au vortex de Burgers, une solution mathématique exacte de 1948) dans les contraintes extrêmes d'un 386 MS-DOS. Le défi technique est double : implémenter correctement la physique (intégration de streamlines, évolution de particules en virgule fixe 16.16, gestion de palette DAC) et la compresser sous 1024 bytes (limite demoscene canonique) sans modifier un seul pixel du rendu.

  • Le vortex de Burgers est choisi pour son anatomie : fluide aspiré dans un plan, étiré selon l'axe, rejeté aux deux extrémités, rotation maximale au cœur ; cette solution exacte s'exécute plausiblement sur un 386.
  • La rotation angulaire dépend de la distance à l'axe : au lieu de calculer des racines carrées et divisions (coûteux), elle est indexée par une table de 1024 entrées en fonction de x² + z².
  • Version streamlines : quelques centaines de lignes de flux intégrées depuis la périphérie jusqu'à la sortie axiale, colorées par la position le long de la courbe, puis la palette DAC tourne (256 écritures port/frame) sans redessiner un pixel.
  • Version particules : 200 particules animées simultanément, tracées comme des segments de leur position précédente à la nouvelle, trails effacés par rotation de palette (32 niveaux de fade), caméra dynamique passant de vue rasante à vue axiale en 42 secondes.
  • Optimisation demoscene : passage de 1594 bytes à 946 bytes en deux passes, sans altérer le rendu visuel (vérification pixel-par-pixel aux frames 20, 45 et 100) ; recodage de l'arithmétique, routines en place, tables fusionnées et accédées par un pointeur unique.
  • Différences avec le vrai matériel : Mode 13h à 320×200 (non 320×240) pour compenser le facteur d'aspect 5/6 du 386, z-buffer remplaçant le tri en profondeur, tables précalculées en arithmétique entière (pas de coprocesseur maths), palette en deux envois par retrace.

Dans les commentaires

Peu de débat substantiel ; le fil soulève plutôt des questions techniques périphériques et des références à d'autres visualisations fluides, sans contester la réalisation elle-même.

  • Un commentateur demande explicitement où chercher dans la simulation pour identifier le point singulier ou le comportement critique du vortex (vitesse infinie, discontinuité, etc.), ce qui suggère une ambiguïté pédagogique sur ce que la visualisation Navier-Stokes est censée démontrer.
  • Plusieurs références à d'autres approches (Geisswerks sur Win98/2k, Milkdrop3/projectM réactif à l'audio, réimplantations WebGPU/Three.js) et tangentes vers d'autres équations (Gross-Pitaevskii, fluides relativistes), mais sans critique directe du travail présenté.
  • Un commentateur mentionne des optimisations sur architectures contraintes (ESP32, TI-84 en CircuitPython), ce qui ancre le problème d'optimisation extrême dans un contexte plus large, mais demeure anecdotique au fil.

Notre lecture

C'est un exercice demoscene authentique : ingénierie bas niveau, maîtrise du matériel rétro, optimisation binaire sous contrainte mathématique. La physique (Burgers) est rigoureuse ; la compression est réelle (vérifiée par diff pixel). Intéressant pour les passionnés de programmation assembleur et d'histoire informatique, sans application directe hors nostalgique ou éducatif. Le sujet est trop spécialisé pour générer un débat HN dense, mais n'en souffre pas : la démonstration parle d'elle-même. À explorer pour comprendre comment optimiser en absolu sur des systèmes contraints, mais pas de recommandation immédiate en production.

Le brief, dans votre boîte mail

Recevez chaque jour la sélection et l'analyse La Lettre IT, sans avoir à repasser sur le site.

  • Un email par jour, synthèse de ce qui compte réellement sur Hacker News
  • Le débat technique décrypté, pas juste résumé, et ce que La Lettre IT en pense
  • Zéro spam, désabonnement en un clic sur chaque email
Ajouter à mes sources préférées Google