The pipeline surface is unrolled flat: the horizontal axis is the angle θ around the pipe (wraps at 2π — drag the main view to pan around it), the vertical axis is the axial position x along its length. Each nanorobot straddles this surface with two contact legs a small distance apart; wherever the legs sit across a temperature gradient, the Seebeck effect generates a voltage proportional to the local ΔT:
ΔT ≈ |∇T(θ,x)| · legSpan
V = S · ΔT (Seebeck coefficient S)
P = V² · R_load / (R_int + R_load)²
The surface temperature is a sum of moving Gaussian hotspots in (θ,x). Every bot senses the local analytic gradient (standing in for on-board thermocouple sensing) and steers along it, exactly like stochastic gradient ascent / a simplified particle-swarm search:
v ← v + (gain·∇T + noise·rand) · dt
pos ← pos + v · dt (θ wraps 2π, x bounces at the pipe ends)
- Swarm size — how many nanorobots forage simultaneously; more bots cover more surface and harvest more total power.
- Exploration noise — random-walk vs. pure gradient-following; too low and bots get stuck on the nearest lukewarm ridge, too high and they never settle on a hotspot.
- Load resistance — the external circuit each bot's thermocouple pair drives; the right-hand curve shows power peaking near matched load (R_load ≈ R_int = 60 Ω), per the formula above.
- Heat intensity — scales hotspot amplitude, i.e. how hot the pipeline is actually running.
All harvested current pools into one shared battery model (charge accumulates from total instantaneous power, minus a small self-discharge leak) — a stand-in for a self-powered sensor swarm trickle-charging a shared energy-storage node while patrolling and monitoring pipeline health. The left chart traces total harvested power over time; the right chart is the theoretical per-bot power-vs-load curve at the swarm's current average ΔT, with a marker at the current load setting.