The post is an old tutorial that explains how to fake fluid motion on a grid with just enough math to produce convincing visual results. It frames fluids in simple terms, then sketches a simulation loop for advection, diffusion, and related steps. That made it readable in 2006, but readers were blunt that it should be taken as a graphics hack, not a real introduction to computational fluid dynamics. The biggest complaint was not just simplification. It was that the article gets core physics concepts wrong in ways that matter if you try to build on it. Treating incompressibility as if water simply “does not compress” and pressure as if it can be mostly waved away hides the hard part of real solvers.
If your team touches simulation, graphics, climate, or scientific tooling, the lesson is to separate “visually plausible” models from physically faithful ones because the algorithms, costs, and failure modes diverge fast.
Mostly appreciative but corrective. People liked the post as an accessible, nostalgic graphics tutorial, but the dominant reaction was that it is outdated and physically sloppy enough to mislead anyone who mistakes it for real CFD instruction.
01 The article skips the one step that defines real incompressible CFD.
Practical solvers do a projection step after an initial velocity update, solving a Poisson equation for pressure so the final velocity field has zero divergence. That is the expensive core of the method, not a side detail. Once you see that, the tutorial reads as a visual effects recipe rather than a numerical fluid mechanics guide.
If pressure projection is missing or hand-waved, you are not learning serious incompressible CFD. You are learning how to fake plausible flow.
02 Better learning paths exist, and they teach the math the article hides.
Lorena Barba’s “CFD Python: 12 Steps to Navier-Stokes” was recommended because it walks through the numerical pieces explicitly. A follow-up commenter pointed out that the blog’s unexplained 3D constant of 6 is just the six direct neighbors from a finite-difference Laplacian. Another reader suggested Jameson et al. 1981 as the next rung once you want real solver development.
Use the old post for intuition, then switch quickly to material that derives the operators and update rules. Otherwise you will memorize code patterns without understanding the solver.
03 Atmospheric modeling does not require “full compressible CFD” in the way many newcomers assume.
The key distinction is between density changes caused by compression, which introduce sound waves and force a harder class of algorithms, and density changes from temperature or composition, which can often be handled with Boussinesq or anelastic approximations. That reframes a climate toy model from impossible to tractable.
For large-scale atmosphere work, the first question is not “compressible or incompressible.” It is which physics you need to keep and which expensive wave modes you can safely remove.
01 The post still succeeds as a teaching artifact even if the physics is loose.
A longtime reader remembered the blog as consistently good at rebuilding complicated systems from scratch in approachable terms. That is a different kind of value than numerical rigor, and it explains why the article still resonates.
Accessibility has its own payoff. A simplified model can be worth reading if it lowers the barrier to first understanding.
02 Complaints about “incompressible fluids” being literally false miss how scientific models are used in practice.
The argument here is that every field relies on approximations that are only valid inside a target regime, and readers should infer that framing rather than demand perfect literalism in an introductory piece.
Not every simplification is a flaw. The real issue is whether the approximation matches the use case.