Nanofiltration membranes reject dissolved organics, multivalent ions and colloids by size and charge, but every rejected particle that isn't swept away by the feed stream has to go somewhere — it piles up on the membrane face as a cake layer. This simulator renders a 3D feed channel where foulant particles are driven toward a nanofiltration membrane by transmembrane pressure while a tangential crossflow sweeps a fraction of them past; the particles that deposit build a visible cake whose growing hydraulic resistance is fed straight into the real resistance-in-series Darcy law, so permeate flux declines exactly as it would on a real skid. Tune feed concentration, applied pressure and crossflow velocity to find the trade-off between throughput and fouling rate, then trigger a backwash pulse — or switch on periodic auto-backwash — and watch the cake lift and flux recover, never quite to the clean-membrane baseline.