fairly new to blender! im trying to animate an atom for my friend and I have it modeled, but am trying to animate the rotations of the electrons. the problem is they dont follow a set axis, and are on a tilted axis. i have tried using a circle path and setting it as a constraint on the object, but it doesnt actually rotate the object. if anyone could help, that would be amazing <3enter image description here


2 Answers 2

  • Create the orbit rings as torus objects
  • In Edit mode add a sphere to the torus to create the electron
  • In Object mode rotate the entire ring on one of the major axis.
  • Do not apply rotation.

Here is an example.

Atom with 3 electrons

I created a torus and added a sphere in edit mode. Then I duplicated the ring/electron and rotated it 120 degrees on the Y axis. (Shortcut ShiftDR120Enter)

I repeated this step to generate the 3rd ring/electron.

Because I did not apply the rotation, each ring still has a Local coordinate system where the Z axis is perpendicular to the ring. If I want to rotate and ring, I select it in Object mode and rotate along the local Z axis. (Shortcut RZZ180Enter) The technique for rotating on a local axis rather than the global axis is to type the letter representing the axis twice: ZZ

You can tell that you are rotating on the local axis, because after you type the second Z, the blue line representing the Z axis will be tilted:

Rotation command showing local Z axis.


This approach is quite flexible: if you want to make late adjustments, there's a minimum of work.

Working in the XY plane, Transform Orientation: 'Local', Pivot: '3D Cursor' at World 0:

  1. Create a sphere for your nucleus
  2. ShiftD Duplicate it.. move it off to one side, and in Edit Mode, scale it down to make an electron.
  3. Create a Curve > Circle to be an orbit.
  4. Give the electron a Follow Path constraint, aimed at the orbit:
  5. (If, now, or at any stage, the electron is not on the curve, select it, and hit AltG to set its translation to 0.)

enter image description here

  1. In the timeline, decide on a length for the animation loop (e.g. 50 frames). At frame 1, key the 'Offset' in the constraint to 0.
  2. At frame loop+1 (e.g. 51) key the 'Offset' to 100.
  3. In the timeline, (just in case) hit T, and set the electron's (selected) keyframes to 'Linear' interpolation.

You should now have one electron, looping on an orbit.

For more electrons-animated-on-orbits, ShiftLeft-Arrow go to frame 0, and:

  1. Select the curve and its electron, AltD make instances of them, and right-click to drop them in place.
  2. (Deselect the electron,) and RY rotate the curve to a new angle. It will take the electron with it.You can change the phase of the electron by RZ locally rotating the curve.

For more .. rinse, repeat.

Because everything is instanced, you can use the 'Bevel' in the orbit's Data tab > Geometry panel to change the thickness of the orbits all at once, or, in Edit Mode, change the size of the electrons all at once. If you revise the speed of one electron, the CtrlL menu will let you copy the animation to the others.. and so on.

enter image description here


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .