Thank you Ducky 3D!
particles0001a.blend
particles0001b.blend
Icosphere Subdivide 3 Particle Properties > + > Render: Path > Cache: Bake Particle Properties > Field Weights > Gravity: 0 Add > Force Field > Turbulence > S Add > Force Field > Turbulence > S Add > Force Field > Vortex > S Turbulence #1 Strength:13 Turbulence #2 Strength: -2.5 Vortex Strength:3 > 1 Icosphere Particle Properties > Viewport Display > Strand Steps: 7
When you are happy with results
Icosphere > Modifiers > Delete Wireframe Icosphere > Modifiers > Particle > Press Convert button Hide icosphere object [H] Select particle path strands, [F3] convert > Curve from Mesh/Text Curve properties > Geometry > Depth: 0.01 Curve properties > Shape > Fill mode: Full Curve properties > Bevel > Resolution: 5 Shade Smooth
Tips
Force Fields > Physics Properties > Untick “Affect location”. Leave this option ticked and simply Cache > Bake to refresh.
Add a wireframe with strength=0 to Icosphere to hide emitter but still see output in viewport.
Use render borders when you are in camera view. This will render only what’s inside the camera and speed up preview.
The paths can be animated with hooks, baked bounce exported and then not max out your memory.