HomeMaterials ScienceNanofiltration Membrane 2D: Pore-Scale Diffusion & Rejection

Nanofiltration Membrane 2D: Pore-Scale Diffusion & Rejection

2D cross-section nanofiltration simulator: watch dissolved ions and molecules random-walk (Brownian dynamics + convective drift) through a membrane cross-section, find one of a few real pore gaps, and get tested there by the Ferry steric-sieving and Donnan charge-exclusion laws, exactly as in real nanofiltration membranes.

Materials Science2DAdvanced60 FPS📱 Mobile-adapted⇄ 3D version
2d-nanofilters ↗ Open standalone

This is a 2D cross-section companion to the 3D nanofiltration membrane simulator, built on genuinely distinct 2D mechanics rather than a flattened camera view. Solute particles — a neutral glucose-size molecule, Na⁺, Cl⁻ and SO₄²⁻ — undergo real Brownian dynamics (a Stokes–Einstein diffusion coefficient that shrinks with solute radius) plus convective drift from the applied pressure, so each one must actually random-walk through the feed channel until it stumbles into one of a handful of real pore gaps in the membrane line; particles that hit the solid membrane between gaps simply bounce off. Only at a pore mouth does the same Ferry steric-sieving and Donnan charge-exclusion test from the Donnan-Steric Pore Model decide whether the particle is admitted. Adjust pore radius, membrane fixed charge and applied pressure to see size- and charge-selective rejection emerge from first-principles 2D transport.

⚙ Under the hood

A 2D cross-section nanofiltration simulator: solute particles undergo real Brownian dynamics (Stokes-Einstein diffusion) plus convective drift through a feed channel, must physically find one of a handful of real pore gaps in the membrane, and are tested there by Ferry steric sieving and Donnan charge exclusion — the same physics as the 3D companion sim, but driven by genuine 2D diffusion-limited transport rather than an abstract pass test.

nanofiltrationmembraneBrownian motionDonnan exclusionsteric sievingdiffusionwater treatment2D simulation

2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)