I used Mathematica to draw a function picture, but it is not beautiful like the picture below. I want know what software can draw beautiful pictures like the one below.
This picture is from the Wikipedia article on Hopf fibration.
Both existing answers say that it is done in Sage, but it is only partially true. The visualization was not done in Sage itself. The image is ray-traced. Niles Johnson, author of the image, used Tachyon, an open source raytracer.
So in order to follow similar workflow my recommendation would be:
- Generate data in Sage, Mathematica or similar mathematical package. By data I mean like the ring positions and color.
- Generate geometry. You need to generate actual polygonal meshes which will be rendered. This might be possible to do in Mathematica or Sage but I would use a 3d program such as Autodesk Maya, 3ds Max or Blender.
- Render the geometry. Use ray-tracer to render geometry. You can use open-source renderer such as Tachyon, Mitsuba or use comercial such as V-Ray, Mental Ray.
I would probably do everything in Blender, because it supports Python. I would download some math library, e.g. numpy, to make the data generation easier, then I can generate the geometry directly and Blender has a built-in ray-tracer, which can be used for rendering.