A nanoparticle sticking to receptors on a membrane only gets internalized if wrapping the membrane around it lowers the total free energy. For wrapping fraction f (0 = untouched, 1 = fully engulfed), three terms compete — the exact same energy model as the 3D version of this simulator:
ΔG(f) = 8πκf bending cost (Helfrich, size-independent!)
+ 4πγR·√(f(1−f)) neck line-tension barrier (peaks near f≈0.15-0.5)
− w·4πR²·f receptor–ligand adhesion gain (w ∝ ρ)
df/dt = −Γ·ρ·dΔG/df overdamped wrapping dynamics
- Bending energy to fully wrap any sphere is 8πκ — independent of R. Adhesion energy scales with contact area (∝R²). This is exactly why very small nanoparticles (below ~20–30 nm) often fail to trigger receptor-mediated uptake: there isn't enough membrane area in contact to out-bid the fixed bending cost, no matter how sticky the ligand is.
- The line-tension term is a barrier concentrated at the closing neck — it models the real energy dynamin-family GTPases must overcome to pinch a vesicle free. Because it grows like √f right at f=0, almost every parameter combination has to climb some barrier before wrapping can run away downhill toward f=1.
- Once f reaches 1 the neck is assumed to scission and the vesicle is released into the cytoplasm — a genuine uptake event.
- Pathway label is a size-based overlay on top of the physics result, following the accepted diameter ranges for the three canonical routes: caveolae-mediated (~50–80 nm pits), clathrin-mediated (~80–200 nm coated pits), and macropinocytosis (>200 nm, receptor-independent membrane ruffling). If ΔG never turns favorable, the particle stalls and desorbs — modeling opsonization/clearance instead of uptake.
- Bug fixed in this 2D version (see code comment in
stepEvent()): the 3D sibling detects "stalled" by checking the raw, pre-clamp wrapping velocity, not the actual change in f. Whenever f is pinned at the f=0 floor by the barrier above — which numerical testing shows happens for most slider settings, including the defaults — that raw velocity stays large even though f truly never moves, so the 3D widget's stall timer never fires and it hangs in "Wrapping in progress…" forever instead of reporting the documented fail state. This version measures the real post-clamp displacement instead, so a genuinely stuck particle now correctly resolves to "No uptake" within ~2.2 simulated seconds.
This is a simplified, illustrative energy-competition model (after Gao, Shi & Boal-style wrapping theory) — not calibrated to a specific real receptor system, but every term is a genuine physical quantity with the right size- and receptor-density scaling.