The 3D version of this simulator renders a bead on the beam's optical axis and computes only the two axial forces — everything here reproduces that axial physics exactly at x = 0, then adds the full transverse force the bead also feels the instant it drifts off-axis, so this is a genuine 2D (x, z) force field, not a flattened 3D scene:
w(z) = w0·√(1+(z/z_R)²) beam radius at position z
I(x,z) = (w0/w(z))²·exp(−2x²/w(z)²) normalized intensity (Gaussian, energy-conserving)
F_scat(x,z) ∝ I(x,z) always +z (radiation pressure, forward only)
F_grad,z(x,z) ∝ −(z/z_R)/(1+(z/z_R)²)²·exp(−2x²/w(z)²) axial restoring component
F_grad,x(x,z) ∝ −(x/w(z))·(w0/w(z))²·exp(−2(x/w(z))²) radial restoring component (toward x=0)
Near the axis both restoring components are linear (Hookean): F_net,z ≈ −k_z(z−z_eq) and F_net,x ≈ −k_x·x, each measured the same way — a numerical finite-difference slope of the net force, not a closed-form shortcut. Because the scattering force only ever pushes along z, the axial spring fights it head-on and comes out weaker; the transverse spring pulls straight toward the axis with nothing opposing it. The result — k_x noticeably exceeds k_z at every parameter setting — is exactly what real optical-tweezers calibration measurements report: sideways trap stiffness is consistently several times greater than axial stiffness for a single-beam trap.
- Numerical aperture (NA) — a higher NA gives a smaller waist and shorter Rayleigh range, sharpening both the axial and radial intensity gradients together — trap fails below a critical NA exactly as in the 3D version.
- Laser power — scales every force linearly, stiffening both axes without moving the equilibrium or the k_x/k_z ratio.
- Bead radius — the scattering force (axial-only) grows faster with bead size than the gradient forces do, so larger beads both shift z_eq downstream and shrink k_z faster than they shrink k_x, widening the stiffness ratio.
- Brownian motion — independent thermal kicks in x and z (equipartition: ½k_BT per degree of freedom); watch the bead trace a tighter cloud sideways than along the beam — the visible signature of k_x > k_z.
Equilibrium z_eq, k_z and k_x are all found numerically every frame — root-finding the first zero-crossing of F_net,z(0,z) and finite-differencing the net force at that point along both axes — the same way you'd extract stiffness from a measured force curve.