pbg-membrane-actin-composite

Closed-loop Brownian ratchet — pbg-readdy actin pushing pbg-mem3dg membrane via a published wall_z + osmotic_strength_offset back-channel.

Architecture

bigraph architecture diagram

ReaDDy publishes positions; Mem3DG publishes vertex_positions. The coupler reads both, computes contact_force, and publishes back into control.wall_z (read by ReaDDy on its next interval) and control.osmotic_strength_offset (read by Mem3DG). Mem3DG is included only on Rung 3.

Cross-scenario comparison — the boundary-condition staircase

Per the spec §2.2, the same actin model is run against three boundary regimes — fixed, movable rigid (Peskin 1993), and flexible Mem3DG mesh — so the F-V relationship can be compared across them. The two panels below are the central spec-aligned comparison: one overlays barrier displacement vs time across all three rungs; the other lands a single F-V scatter point per rung as a starting hook for full Inoue 2015 reproduction.

Spec §1.2's headline benchmark — Inoue 2015's concave→convex F-V transition as polymerization rate varies — requires a polymerization-rate sweep with statistical aggregation, plus Cytosim-style fiber-scale actin (which this composite does not yet wrap). The F-V point per scenario here is the v0.1 hook the rate-sweep micropub will fill in.

Rung 1 — Fixed boundary

Actin pushes against a wall that cannot move (spec §2.2 #1)

Bonded actin filaments at the bottom of the box; a flat barrier (planar wall_z) sits at z=0. The barrier does not move — `barrier_kind='fixed'`. ReaDDy's box potential confines particles to z ≤ wall_z, so Brownian fluctuations and chain bending of the filament heads are the only out-of-plane motion. This is the rigid-wall regime against which Peskin 1993's closed-form Brownian-ratchet velocity should hold (when polymerization rate ≪ ideal ratchet velocity). Headline metric: contact_force builds up but barrier_velocity stays at zero — confirming the wall is rigid as advertised.

Total simulation time
8.0
Wall time
0.5s
Final actin particles
0
Final membrane volume
0.00
Cumulative ratchet steps
132
Peak contact force
0.80
Headline coupling chart — actin tip, membrane bottom, and contact force on a shared time axis.
t = 0

Schematic: the {accent}-tinted sphere's radius tracks membrane_volume; the puck below schematizes the actin field rising as the polymerization reaction fires. Real per-particle and per-vertex meshes are not parsed in v0.1.

PBG document
"actin_sim":
"_type": "process"
"address": "local:ReaDDyProcess"
"config": ▶ 13 items
"interval": 0.5
"inputs": ▶ 2 items
"outputs": ▶ 5 items
"coupler":
"_type": "process"
"address": "local:BrownianRatchetCoupler"
"config": ▶ 8 items
"interval": 0.5
"inputs": ▶ 2 items
"outputs": ▶ 13 items
"control":
"wall_z": null
"wall_radius": null
"osmotic_strength_offset": 0.0
"actin":
"particle_counts": {}
"total_particles": 0
"positions": []
"energy": 0.0
"time": 0.0
"membrane":
"vertex_positions": []
"mean_curvatures": []
"total_energy": 0.0
"bending_energy": 0.0
"surface_energy": 0.0
"pressure_energy": 0.0
"surface_area": 0.0
"volume": 0.0
"converged": false
"coupling":
"contact_force": 0.0
"actin_max_z": 0.0
"membrane_min_z": 0.0
"actin_max_radius": 0.0
"membrane_min_radius": 0.0
"gap": 0.0
"barrier_z": 0.0
"barrier_velocity": 0.0
"mean_contact_force": 0.0
"ratchet_steps": 0
"emitter":
"_type": "step"
"address": "local:ram-emitter"
"config": ▶ 1 items
"inputs": ▶ 19 items
"global_time": 0.0

Rung 2 — Movable rigid boundary (Peskin 1993)

Wall translates under integrated force; doesn't deform

Same actin model as Rung 1, but the wall now translates under integrated contact force using simple drag-balance kinematics: dz/dt = F / drag. The wall stays planar — it's a rigid object, no deformation. This reproduces the classic Peskin 1993 setup: a rigid load whose velocity is set by force balance with the polymerizing actin. Headline metric: barrier_velocity stabilizes at a non-zero value proportional to the mean contact force.

Total simulation time
8.0
Wall time
0.5s
Final actin particles
0
Final membrane volume
0.00
Cumulative ratchet steps
115
Peak contact force
0.80
Headline coupling chart — actin tip, membrane bottom, and contact force on a shared time axis.
t = 0

Schematic: the {accent}-tinted sphere's radius tracks membrane_volume; the puck below schematizes the actin field rising as the polymerization reaction fires. Real per-particle and per-vertex meshes are not parsed in v0.1.

PBG document
"actin_sim":
"_type": "process"
"address": "local:ReaDDyProcess"
"config": ▶ 13 items
"interval": 0.5
"inputs": ▶ 2 items
"outputs": ▶ 5 items
"coupler":
"_type": "process"
"address": "local:BrownianRatchetCoupler"
"config": ▶ 8 items
"interval": 0.5
"inputs": ▶ 2 items
"outputs": ▶ 13 items
"control":
"wall_z": null
"wall_radius": null
"osmotic_strength_offset": 0.0
"actin":
"particle_counts": {}
"total_particles": 0
"positions": []
"energy": 0.0
"time": 0.0
"membrane":
"vertex_positions": []
"mean_curvatures": []
"total_energy": 0.0
"bending_energy": 0.0
"surface_energy": 0.0
"pressure_energy": 0.0
"surface_area": 0.0
"volume": 0.0
"converged": false
"coupling":
"contact_force": 0.0
"actin_max_z": 0.0
"membrane_min_z": 0.0
"actin_max_radius": 0.0
"membrane_min_radius": 0.0
"gap": 0.0
"barrier_z": 0.0
"barrier_velocity": 0.0
"mean_contact_force": 0.0
"ratchet_steps": 0
"emitter":
"_type": "step"
"address": "local:ram-emitter"
"config": ▶ 1 items
"inputs": ▶ 19 items
"global_time": 0.0

Rung 3 — Flexible Mem3DG membrane (spec §2.2 #3)

Closed icosphere vesicle inflating under actin pressure

Spec §2.2 endpoint: real Mem3DG mesh in closed-loop with the actin field. Geometry shifts here: a closed icosphere vesicle with bonded filaments INSIDE pushing radially outward against the inner surface. Why the geometry change — pymem3dg's open-mesh deformation under constant pressure isn't robust at our parameters (open hexagon won't bulge), but a closed vesicle inflates reliably under the same lever. The same coupler runs the same math; only the barrier topology differs. Headline metric: vesicle volume grows visibly (~12-15% over the run), barrier_velocity (now a radial expansion rate) is non-zero, and the F-V scatter point lies clearly off the rigid-wall curve.

Total simulation time
8.0
Wall time
0.6s
Final actin particles
3
Final membrane volume
70.71
Cumulative ratchet steps
120
Peak contact force
20.68
Headline coupling chart — actin tip, membrane bottom, and contact force on a shared time axis.
t = 0

Schematic: the {accent}-tinted sphere's radius tracks membrane_volume; the puck below schematizes the actin field rising as the polymerization reaction fires. Real per-particle and per-vertex meshes are not parsed in v0.1.

PBG document
"actin_sim":
"_type": "process"
"address": "local:ReaDDyProcess"
"config": ▶ 13 items
"interval": 0.5
"inputs": ▶ 2 items
"outputs": ▶ 5 items
"coupler":
"_type": "process"
"address": "local:BrownianRatchetCoupler"
"config": ▶ 8 items
"interval": 0.5
"inputs": ▶ 2 items
"outputs": ▶ 13 items
"control":
"wall_z": null
"wall_radius": null
"osmotic_strength_offset": 0.0
"actin":
"particle_counts": {}
"total_particles": 0
"positions": []
"energy": 0.0
"time": 0.0
"membrane":
"vertex_positions": []
"mean_curvatures": []
"total_energy": 0.0
"bending_energy": 0.0
"surface_energy": 0.0
"pressure_energy": 0.0
"surface_area": 0.0
"volume": 0.0
"converged": false
"coupling":
"contact_force": 0.0
"actin_max_z": 0.0
"membrane_min_z": 0.0
"actin_max_radius": 0.0
"membrane_min_radius": 0.0
"gap": 0.0
"barrier_z": 2.5
"barrier_velocity": 0.0
"mean_contact_force": 0.0
"ratchet_steps": 0
"emitter":
"_type": "step"
"address": "local:ram-emitter"
"config": ▶ 1 items
"inputs": ▶ 19 items
"membrane_sim":
"_type": "process"
"address": "local:Mem3DGProcess"
"config": ▶ 9 items
"interval": 0.5
"inputs": ▶ 1 items
"outputs": ▶ 9 items
"global_time": 0.0