This is an independently-computed 2D counterpart to the 3D Drude free-electron model, not a flattened re-render of it. Each electron still free-flies and scatters off the lattice as a Poisson process with rate 1/τ, accelerating under the field between scatters exactly as the real model prescribes:
a = eE/m, τ(T) = τ₃₀₀·(300/T), τ₃₀₀ = m/(n·e²·ρ₃₀₀)
v_d = a·τ, J = n·e·v_d = σE, σ = n·e²·τ/m
What is genuinely new here is that the on-screen electrons also undergo real momentum- and energy-conserving elastic disk-disk collisions with each other — the idealised Drude gas treats electrons as non-interacting, but a real electron gas is dense and does collide. Because an elastic collision only exchanges momentum between the pair (their sum is unchanged), it cannot shift the ensemble's mean drift — so the panel's Electron–Electron Collisions toggle lets you turn that mechanism on and off and watch the drift readouts stay identical either way, a direct, checkable confirmation of that conservation argument.
Poisson-process memorylessness makes a second, stronger prediction: at every instant in steady state the mean forward velocity averaged over the whole electron ensemble equals a·τ exactly (in expectation), with statistical scatter around it that shrinks as you keep averaging. The bottom panel plots the running time-average of the simulated ensemble's ⟨vx⟩ (visual units) against that analytic target — watch the solid trace settle onto the dashed line as more samples accumulate, and note it resets fresh every time you move a slider so you can watch a new convergence unfold.
- Metal — swaps n and τ₃₀₀, back-derived per metal from its measured room-temperature resistivity; silver scatters least, iron scatters most.
- E field / Temperature feed directly into the same equations as the analytic readouts above — nothing here is measured off the animation.
- Reverse Field flips the sign of the drift and of the analytic target together.