Take the 2-minute tour ×
MathOverflow is a question and answer site for professional mathematicians. It's 100% free, no registration required.

hi,

I am not sure if this question is suitable for mo, it is more about visualization than math. Anyway, here it is:

What is the best way to visualize a 2-surface in Euclidean space with high quality?

Of course Maple or Matlab produce some grapical output but if one is interested in high quality figures, these methods are insufficient.

I am currently using the following procedure (POV-Ray is a free rendering software based on C):

  1. produce the surface with Matlab (or C) and store the surface as a triangle mesh.
  2. write out the triangle mesh to a Povray file.
  3. produce parameter curves with Matlab (or C)
  4. write out the parameter curves (as a union of cylinders) to a Povray file.

This produces very nice figures but suffers from a lack of interactivity. For instance the camera position has to be specified a-priori in Povray.

My question: what do you use? Is there a better method?

share|improve this question

9 Answers 9

You can easily produce images and even animations of algebraic surfaces and curves on them with Oliver Labs' Surfex sofware:

http://www.surfex.algebraicsurface.net/

This software is easy to use and gives very nice plots such as this one:

alt text

Some galleries:

http://www.AlgebraicSurface.net

http://www.Calendar.AlgebraicSurface.net

share|improve this answer

The best quality surfaces that I have seen are on Ken Baker's site: http://sketchesoftopology.wordpress.com/ I think that Ken uses rhino, and he constructs them in space. If you want a 2-d illustration, then you can draw them in fairly high quality using illustrator. I am pretty sure that Ken spent a lot of time learning his system, and I found learning illustrator no easy feat.

If the geomview software is still available from the deceased geometry center, then you might also try that.

share|improve this answer

Personally I have recently converted to using Asymptote for illustrations. The learning curve may be a bit steep (then again, since you are already familiar with C, maybe not). I am not sure if the output is as high quality as you want though.

share|improve this answer

The newest version of Mathematica is actually capable of pretty easily producing some remarkably good graphics if you know how to use it.

http://gallery.wolfram.com/all_images/Surfaces

http://members.wolfram.com/jeffb/visualization/klein.shtml

http://members.wolfram.com/jeffb/visualization/index.shtml

share|improve this answer
1  
thanks for the suggestion. To be honest, I do not find these figures to be of very high quality. –  Philipp May 25 '10 at 18:03
1  
Really? I thought some of them looked quite nice. At least, when you look at the large versions of the images (aside from the compression artifacting visible on some of them), the small versions can look kind of funny. Although now that I look at those pages, I see those were made with 1 or 2 iterations old Mathematica (5 or 6) while the 7 ones can look nicer. How about something like this that took me like 5 minutes to make in Mathematica 7: img44.imageshack.us/img44/297/shapey.png? You can make things nicer if you play around with the lighting, specularity, etc. –  jeremy May 25 '10 at 21:37

If you want more interactivity into a free software, you can try Blender.

share|improve this answer
    
this sounds like a good suggestion. do you have experience with blender? how about python? is it as powerful as matlab? –  Philipp May 28 '10 at 7:33
    
I do not see the link between Python, Matlab and Blender. Blender is a raytracer together with a graphic modeler. I guess it can import data files to construct meshes or uv maps from other software, but I have no experience with it (I only use Povray from time to time). –  Benoît Kloeckner May 28 '10 at 8:21
    
there is a python interface for blender. –  Philipp May 28 '10 at 17:38

I've done some illustrations and animations with surf.

share|improve this answer

For figures in tex papers, pgf/tikz is usually my go-to package. However, if interactively is a concern, this is certainly not the way to go (tweak, build, tweak, build, ....). It can certainly do high quality ornamented 3d stuff though, e.g.

http://www.texample.net/tikz/examples/spherical-and-cartesian-grids/

share|improve this answer

Perhaps VTK (the Visualization Toolkit) from Kitware? You can set up interactive windows to easily shift camera position of 3D surfaces.

VTK

Another suggestion could very well be Paraview:

Paraview

share|improve this answer

The guy on Sketches of Topology which has already been mentioned (it does indeed have some high quality graphics) claims he's used lots of Google SketchUp (proprietary).

http://sketchesoftopology.wordpress.com

This is a very good list of software, most of it at least plots, some of it makes pretty graphics, all of it GPL/OSS as far as I can tell. A few markup languages designed for making mathematical figures are on there as well.

http://orms.mfo.de/

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.