💧 Simulation de Fluide en Temps Réel — Solveur de Navier–Stokes
Simulation de fluide 2D interactive utilisant le solveur stable de Navier–Stokes de Jos Stam. Dessinez la vitesse avec votre souris, essayez les préréglages de vortex et de cisaillement, et observez les champs de densité se diffuser et s'advecter en temps réel.
À propos de Simulation de Fluide en Temps Réel
Cette simulation résout les équations de Navier–Stokes incompressibles sur une grille de 100×100 pour modéliser comment un fluide 2D se déplace et comment le colorant qu'il transporte se répand. Elle utilise le schéma inconditionnellement stable de Jos Stam : chaque image ajoute des forces, diffuse la vitesse et la densité avec un solveur implicite de Gauss–Seidel, advecte les quantités en retraçant les caractéristiques en arrière dans le temps (semi-lagrangien), puis projette le champ de vitesse pour supprimer la divergence (∇·u = 0).
Faites glisser la souris sur le canevas pour injecter vitesse et colorant. Le curseur Viscosité définit à quel point la quantité de mouvement s'uniformise, Diffusion contrôle la propagation du colorant, et Fade fait décroître la densité à chaque image afin que les traînées se dissipent. Les boutons Densité, Vitesse et Les deux changent la palette de couleurs, et les préréglages Vortex, Cisaillement et Panache amorcent des motifs d'écoulement classiques. De tels solveurs alimentent les effets de fumée, d'eau et de feu dans les jeux, le cinéma et les effets visuels.
Questions fréquentes
Que montre réellement cette simulation ?
Elle montre un fluide 2D incompressible en mouvement, visualisé soit comme un champ de colorant (densité) coloré, un champ de vitesse coloré selon la direction, ou les deux combinés. Lorsque vous faites glisser la souris sur le canevas, vous ajoutez de la quantité de mouvement et du colorant, et le solveur les advecte et les diffuse image par image, faisant apparaître tourbillons, panaches et couches de cisaillement.
Quelle méthode est utilisée pour résoudre les équations du fluide ?
Elle met en œuvre la méthode « Stable Fluids » de Jos Stam. Chaque pas de temps est divisé en étapes d'ajout de force, de diffusion, d'advection et de projection. La diffusion et la résolution de la pression utilisent environ 20 itérations d'un solveur linéaire de Gauss–Seidel, et l'advection utilise une rétro-trace semi-lagrangienne, ce qui rend la méthode inconditionnellement stable pour tout pas de temps.
Que fait l'étape de projection ?
La projection impose l'incompressibilité (∇·u = 0) en calculant un champ de pression dont le gradient est soustrait de la vitesse. Il s'agit d'une décomposition de Helmholtz–Hodge : elle supprime la partie divergente de l'écoulement, gardant le fluide à masse conservée afin qu'il ne se comprime ni ne se dilate.
Que contrôle le curseur de Viscosité ?
La viscosité définit la vitesse à laquelle les différences de vitesse s'uniformisent, modélisant le frottement interne du fluide (le terme ν∇²u). Le curseur varie logarithmiquement d'environ 1e-6 à 1e-2 ; des valeurs faibles donnent un écoulement fin, turbulent et tourbillonnant, tandis que des valeurs élevées donnent un mouvement épais et sirupeux qui s'amortit rapidement.
Quelle est la différence entre Viscosité et Diffusion ?
La viscosité agit sur le champ de vitesse, lissant la quantité de mouvement afin que les régions voisines se freinent mutuellement. La diffusion agit sur le champ de colorant (densité), étalant la couleur visible vers l'extérieur indépendamment de l'écoulement. Vous pouvez avoir un fluide à faible viscosité et rapide qui possède néanmoins un colorant très diffus et flou, ou l'inverse.
Que fait le curseur Fade ?
Fade multiplie le champ de densité par un facteur (0,80–1,00) à chaque image, de sorte que le colorant se dissipe progressivement au lieu de s'accumuler indéfiniment. À 0,99, les traînées persistent et s'accumulent ; des valeurs plus basses font disparaître rapidement le colorant injecté, ce qui est utile pour observer la vitesse actuelle plutôt que l'historique complet.
Que font les préréglages Vortex, Cisaillement et Panache ?
Vortex amorce un champ de vitesse rotatif dans un disque central pour créer un tourbillon. Cisaillement établit des vitesses horizontales opposées dans les moitiés supérieure et inférieure, amorçant une couche de cisaillement de type Kelvin–Helmholtz. Panache injecte une vitesse et un colorant ascendants le long du bas, produisant un jet de fluide montant sans flottabilité.
Est-ce physiquement précis ?
C'est un solveur qualitativement fidèle pour les équations de Navier–Stokes incompressibles, mais il n'est pas quantitativement précis. L'advection semi-lagrangienne ajoute une diffusion numérique qui amortit les détails à petite échelle, la grille ne fait que 100×100, et il n'y a ni flottabilité ni gravité, ce qui privilégie la stabilité visuelle et la vitesse au détriment de la précision d'ingénierie exacte.
Que signifient les statistiques affichées ?
La vitesse maximale est la plus grande magnitude de vitesse trouvée n'importe où sur la grille, en unités de cellule par seconde. La densité totale est la somme du colorant sur toutes les cellules, qui diminue à mesure que le facteur Fade la fait décroître. La taille de la grille indique la résolution de la simulation, ici 100×100 cellules intérieures plus un anneau de bordure d'une cellule.
Où de tels solveurs sont-ils utilisés dans le monde réel ?
Les solveurs de fluides stables sont à la base des effets de fumée, feu, eau et nuages en temps réel dans les jeux vidéo et les effets visuels de cinéma, où la vitesse et la stabilité comptent plus que la physique exacte. Les mêmes équations de Navier–Stokes, résolues avec des méthodes de plus haute fidélité, alimentent la dynamique des fluides numérique d'ingénierie pour l'aérodynamique, la météo et l'écoulement en conduite.
Injectez des préréglages de vortex, cisaillement ou panache dans le solveur de fluides stables de Jos Stam's et ajustez viscosité, diffusion et fade en temps réel.
3D · Moteur de rendu Three.js / WebGL · Cible 60 FPS · fonctionne entièrement côté client, sans installation