t = 0.000

  
Joule's experiment, compressible Navier–Stokes — direct CPU port. A faithful vanilla-JS/Canvas translation of the original p5.js sketch: identical in-place (Gauss–Seidel) sweeps, the same per-cell update of momentum / density / internal energy (including the viscous-heating term), the same two-chamber + channel geometry and parameters (N=200, γ=0.1, ν=0.01h, dt=0.025h, μ_mom=0.5), 20 substeps/frame. No external library. Blue dots trace fluid particles; the curves at the bottom are channel/mid cross-cuts of density, pressure, velocity, temperature.