How to update Line2 dynamically?

AFAIK, FatLines in its core uses instancing. So each segment is an instance of a plane (I think), that has instanced values for its start and its end. When you create fat lines, it internally creates an instanced mesh or a mesh with InstancedBufferGeometry (not sure which one).
How it processed in shaders is something of the black magic for me in general, though I can figure out of how some parts of it work and create funny things, like this: FatLines + noise
or this (there is no forum post of it yet, but I’ve got it on a plan)

See, what happens, when you call .setPositions(): three.js/LineSegmentsGeometry.js at 154e543b1e43e3156f0be02bcd34c39652350072 · mrdoob/three.js · GitHub
There is no original array anymore, it creates InstancedInterleavedBuffer for two InstancedInterleavedAttributes - instanceStart, instanceEnd

Ah, and yes, internally, it’s Mesh with InstancedBufferGeometry.