General Relativity


Thought I’d share a few techniques I learned while putting together the image shown at the end of this message. Here is basically how I created it:

  • I used The GIMP to make a grid texture map, dark blue with white lines.
  • The texture maps for the Moon and Earth were found online (NASA has good ones).
  • I created a new scene in Blender, and deleted the ever-present box.
  • I knew that I wanted to put a bend into a surface plane, so I added a plane (Add >> Mesh >> Plane)
  • The plane had to take up a lot of visible room, so I scaled it. a) Tab to go into Object Mode. b) N to display the Transform Properties. c) Scale X & Y to 15.
  • Applied the grid as the plane’s texture. Had to do this before anything else; adding it after the curve and grid have been merged is too late, resulting in a grid curve, but no grid for the rest of the planar surface.
  • Eventually I hit upon the key to this whole ordeal: Boolean Tools. Once I had the curve and the plane, I needed a way to munge them together. Initially I did various tricks with NURB curves and UVspheres, but nothing looked (or worked) as I imagined until I found a tutorial on Curves -n- Bevels:
  • I followed the instructions on that web page to create the curve that looked like it could pass for a warp in the fabric of spacetime, provided a massive enough object was sitting inside the warped region. (I should have done the calculations to figure out how big the warped area should be for a 1 unit Earth, but that’s a bit too detailed for me!)
  • I moved the Bezier Curve to a different frame (must be in Object Mode, type m, then click on the frame, then click the OK button). After I had created the “warp”, I noticed that it promptly disappeared when I deleted the Bezier Curve. Oops!
  • I selected the plane, went into Edit Mode (Tab).
  • I decided that I should probably divide the plane into sections. a) Type W. b) Click Subdivide. c) Repeat a few times. I have no idea if this was necessary.
  • I made sure that the rotations and transformations of both the plane and the swept Bezier Curve were aligned. (By shoving 0’s into the Transform Properties panel for both objects for Loc X, Loc Y, Loc Z and Rot X, Rot Y and Rot Z.)
  • Somewhere along the line, I changed the curve into a mesh. (From Object Mode, Alt-C then click Mesh.) This must be done before any Union, Intersection or Difference can be performed.
  • Select both objects, using shift-click with the right mouse button (RMB).
  • Made an Intersection: Type w then click Intersect.
  • This creates two copies of the intersection between the two meshes. I deleted the one that did not show a warp in the plane. :wink:
  • Add spheres, map their textures, and ensure the textures are mapped spherically.
  • Fiddle with lighting and prest-o!Now, technically, the Moon should have its own little warped path, but this should provide an ample demonstration for how Einstein’s ideas about gravity work. Comments, suggestions, critiques are welcome. I would especially like to know if there are easier techniques to add the warp into a planar surface – I really wanted to have the grid twist as well as curve. Ideas?


Shouldn’t the curve be centered on the centre of gravity of the mass?

(Um… and roughly be an x² curve??)

Nice effect and image :slight_smile:

You can save any scene as the default by using File / Save default settings (CTRL-U).

So delete everything, box, camera, lights if you want, press CTRL-U, then that’s what you’ll see when you start Blender, or do a File New (CTR-X)