Particle
Excitation
Clipping
to see an explanation.
Module Imports
This visualization imports directly from the @galihru/mnp npm package, which bundles both the material dielectric model and the Mie/Rayleigh scattering module.
The package is loaded from unpkg CDN using the browser-native ES Module import map.
Drude Dielectric Function
The complex dielectric function ε(ω) of the metal is computed using the Drude free-electron model:
where ωₚ is the plasma frequency and γ is the damping constant. Both are material-specific constants stored in the built-in table (Au, Ag, Al).
Quasi-Static Polarizability
In the Rayleigh (quasi-static) limit, the complex polarizability of a sphere of radius R is:
The denominator ε + 2εₚ reaches a minimum (resonance) when Re(ε) = −2εₚ, giving the Fröhlich condition for LSPR.
Electromagnetic Cross Sections
The three physical observables are computed from the polarizability α and wavenumber k:
Cₛₚₘ = k⁴|α|² / (6π)
Cₐ₋ₛ = Cₐ₋ₜ − Cₛₚₘ
These have units of nm². The spectrum peak wavelength shifts with particle size and surrounding medium — the basis of plasmonic sensing.
CDF Sampling — Near-Field Cloud
Particle positions in the 3D cloud are sampled from the near-field intensity distribution of a point dipole:
The radial CDF inverts the r⁻⁴ probability density analytically. The angular weighting uses rejection sampling on the factor (1 + 3cos²θ) / 4.
WebGL Point Cloud Rendering
Each sampled point is a GL_POINT rendered as a soft glowing disc via the fragment shader. Additive blending accumulates overlapping points to create the glowing cloud effect.
The hot colormap maps intensity linearly through: black → purple → red → orange → yellow → white, matching the thermal radiation spectrum.
Wireframe Bounding Sphere
A low-polygon wireframe sphere (icosphere subdivided once) frames the near-field extent, showing the region where field enhancement exceeds the background.
The sphere radius matches the visualization cutoff at 5× the particle radius.