Circuit board (technical elements) with particles So I was watching this video the other day: https://youtu.be/-pH48mSEH0M?t=243 and at one stage they show off how they made some of the technical elements of their VFX's. 3DS was being used for this, although they were using particles; therefore, making me believe that a similar effect might be achievable in Blender.



I have minimal knowledge over how 3DS works but after a quick search, I believe this add-on was being utilised https://vimeo.com/81328417 (the functionality of the add-on is shown at 1:30) 

Essentially, the main components that I want to try and replicate are:


Restrict particles from moving on the z-axis (restrict movement on any single axis)
Limit the particle direction to multiples of 45°
(Potentially the most important aspect) Have the particles leave a mesh trail behind it


I have a theory for how to achieve the 3rd step, but unsure how it could be done. If the path of the particles could be transformed into a bezier curve, then the effect of the wires could be created by using a bevel object and then animating the start and end resolutions. That's how I believe it could be achieved, although unsure whether that'd be possible and or how to even pull that off.

Additionally, I feel as if this could be achieved through the use of animation nodes. I have not tried to do this using animation nodes due to my lack of knowledge over how to use them (I do not mind of the solution requires the use of animation nodes, just wanted to clarify why I hadn't attempted to use them to solve the problem)
Animation Nodes can be used here. First, read my answer here to create the trace visualization. Then, we are going to alter the node tree to limit the computed directions to multiples of 45 degrees. To do that, the Snap Vector operator would be used. Take the following node tree for example:



The snap operator snaps the vector to the nearest point in a grid with uniform spacing, the spacing is defined by the snap vector. Since the origin point of the space is also a possible point for snapping, and since we don't want to snap to it, we normalize the vector first, consequently, the vector will never be closer to the origin, except for the case of a zero vector, which is practically impossible to happen in a curl field, so we don't have to worry about it.

Now, all you have to do is quantize the output vector of the curl subprogram using the snap node as shown above.