# Trying to create visualization of EM waves

I'm trying to create a visual representation of EM waves traveling through space and I'm having a tough time. I found these images I like but I am having trouble coming up with a good way to render them. I'm using cycles and it is a still image so I don't need to worry about animating.

Thanks.

You can recreate the first image fairly well using the math function mesh (Add --> Mesh --> Math Function --> Z Math Function).

This is what we're aiming for here:

First, you need to enable the AddMesh:Extra Objects add-on (press CtrlAltU to access the system preferences)

Type in the wave function you want to display in the input box (I used Z = sin(x) + sin(y) for this example).

Then, delete the edges along one axis (I deleted the ones along X):

1. Select and add each edge loop using AltShiftRight Mouse Button.
2. After you've got 'em all, delete edges and faces only (X --> Only Edges and Faces).

From here you can take it to many different places, but here's a suggested workflow:

1. Convert the mesh to a curve, then add a fill.

1. Add a taper object (bezier curve with an arch shape along the Y axis), and set it as a taper object for the wave curve.

1. Add a subsurf modifier to get smoother curves.

2. In Cycles, set an emission material to the wave object and choose a proper color.

1. If you want to add particles for added effect, create another copy of the original wave mesh, then add a particle system to it.

Set Fill type: Triangle Fan

and Vertices: 6

Then rotate 90 degrees on X so that the circle faces the Y axis.

Apply rotation (CtrlA --> Rotation).

Apply the same material you created for the wave to this circle.

1. Use the following particle settings:

Emission: Number: 50000 Jittering Amount: 2

Velocity: Random: 2 Rot: 1

Physics: Size: 0.025 Random Size: 1 Mass: 0

Render: Emitter: False (uncheck) Render type: Object Dupli Object: The hexagonal circle you created earlier.

2. In the Scene tab on the Properties Window, turn Gravity off.

1. Run the animation (AltA) for a bit until you have a nice distribution of particles around your mesh.

You can enhance this further by adding depth of field or motion blur, but I'll let you find tutorials or other answers to find out how to do this.

• @gtbuzztim Thanks! And if this answer works for you, please mark it as accepted: blender.stackexchange.com/tour – TLousky Feb 7 '16 at 14:16
• For anyone else reading this: Z Math Function is not enabled by default. You need to go to User Preferences > Addons and enable the "Add Mesh: Extra Objects" plugin. – Somatic Feb 7 '16 at 16:50

You can similar effects using procedural shaders.

The second example image is similar to that produced in this answer, specifically :

Also, consider this related answer which uses similar techniques but in 3 dimensions and would be relevant to your first example image.

For example, this material :

Can produce this :

Tweaking the parameters and Color Ramp should be able to produce the desired result.

EDIT : Another technique would be to use a similar method to generate the waves on a surface generated from a Noise texture (although you could also use a Wave texture for more regular waves) and to use a Modulo function to use the Y coordinate to generate multiple contour lines as shown. Tweaking the Scale in the Mapping node allows the effect of the Noise texture to be varied independently along each dimension.