# What is a free and simple 3D plot software for students?

I need any plot software on Linux or Windows that my students should use it for plotting 3D functions. I want introduce any software that be free and useful for bachelor students.

• I need a program that be so simple and students without any programming knowledge can plot functions only by entering related function. As like as KAlgebra software. – Huseyin Mar 14 '14 at 13:16
• for two dimensions, something I have enjoyed, nice share features as well as low effort animation; desmos.com . I hope the three dimensional analog of this is here within the next few years, it seems we're finally close to that reality. Maybe the next version of geogebra... – James S. Cook Jul 9 '14 at 18:31
• – Chris Chudzicki Dec 26 '18 at 14:17

In terms of free software, a large portion of the available choices are based on a Gnuplot backend; I however would probably not recommend directly using Gnuplot. Instead, your choices are mostly between the various front ends. In terms of the front end, depending on what your students are familiar with and are willing to learn, there are many options.

• matplotlib is extremely powerful and configurable, but requires some amount of Python programming from the students.
• Sympy also is based on the basic Python syntax, but its interface and use may be more familiar and accessible to people who have already some familiarity with a computer algebra system.
• maxima and its GUI wxMaxima forms a freely available computer algebra system with a nice interface. In addition to using the gnuplot backend, Maxima also supports a different xMaxima backend for plotting.
• The list goes on, but the gnuplot project page maintains a list of front-ends and programming interfaces using it.

For 3D plots of algebraic relations (polynomials etc.), a slightly less well-known program is surf, which was intended as a visualization aid for real algebraic geometry. Unfortunately development seems to have stopped several years ago, and recently I have had some difficulty building the source code on my Gentoo Linux machine. Your mileage with it may very well vary.

• Just to note I much prefer the xmaxima frontend to maxima. – vonbrand Jul 9 '14 at 17:33

For undergraduate level, Gnu Octave is probably what you want. It is open source, cross-platform, and syntax-compatible with MATLAB. It's very useful for 2D and 3D plotting and for numeric linear algebra, and it's a tool that will be beneficial for students to know.

Also, GeoGebra is excellent plotting software, and has recently added 3D graphing support. It is not as powerful a tool as Octave, but is well-suited to simple plotting and rendering tasks.

• This software belongs to experts. I need the simplest software then only input must be the function shape. – Huseyin Mar 14 '14 at 13:17
• Your question specified undergraduate (bachelor's) level. MATLAB software is undergraduate level software. A 3D plot can be made in a few simple commands. If you're looking for something simpler, there are many websites that will plot simple 3d functions. Or try the beta version of GeoGebra. – mkasberg Mar 15 '14 at 0:08
• I have two constraint. First restriction is be free of charge. Second is be very simple. Matlab is not free. About GeoGebra, where is beta version download link? – Huseyin Mar 15 '14 at 0:32
• geogebra.org/forum/viewtopic.php?f=52&t=19846 – mkasberg Mar 15 '14 at 19:26
• @Huseyin Matlab is free for students at many universities (mine and all of the other major ones in my city) It might be worth checking with the math/comp sci department at yours – celeriko Oct 15 '15 at 15:12

You might want to look into Geogebra. The current beta version (Geogebra 5 Beta) has a 3D mode and allows you to create 3D plots of a function of the form f(x,y) and a graphical interface for rotating, zooming, etc. It is also open-source, free, and cross-platform.

If you type a function into a Google search, you get a pretty nice graph. In order to get interactive 3d graphics, you will need a WebGL enabled browser (with WebGL actually enabled, of course). Try these for starters:

• I knew that google did 2D plots, hadn't realized they supported 3D. Nice tip! – erfink Apr 10 '17 at 9:22

A free tool for Linux and Windows is gnuplot. This same graphical interface can be used from within Octave (as in mkasberg's answer), which is also free. I haven't used it in a while, so I don't recall the difficulty of use. It does have a set of tutorials available for download.

Sage is also available on Linux and Windows. It is a python based program. The matplotlib library provides graphing functions. I have not used this program, so I am unsure how simple it is to use.

If you are graphing functions of the form $z=f(x,y)$, then a number of online tools exist. One such tool is here.

• I second the use of matplotlib. It won't be appropriate for all students, but those with a background in Python should be able to pick it up quickly. – EuYu Mar 14 '14 at 3:44
• Sage can also be used online at sagenb.org or cloud.sagemath.com – Mike Shulman Mar 14 '14 at 21:52
• To clarify, Sage uses javascript solutions for 3d plotting, including jsmol and now three.js. – kcrisman Apr 4 '17 at 19:31
• And even better, Sage now has the Sage Cell Server, so one doesn't need to install Sage, or create an account to use the Notebook. – pjs36 Apr 6 '17 at 4:23

On Windows, Microsoft publishes their own software called Microsoft Mathematics:

Microsoft Mathematics provides a graphing calculator that plots in 2D and 3D, step-by-step equation solving, and useful tools to help students with math and science studies.

You can see it in action in this video.

Microsoft also publishes an add-in for Microsoft Word and Microsoft OneNote that allows you to create these plots directly in the Word or OneNote interface.

A new player on the scene is called Desmos. It's oddly... pretty. It's also super simple to use.

The website is here: Desmos

Sliders can be added rather easily. If you're in the calculator and want to do transformations for example, you might type:

$y=sin(nx)$ -- it will ask you if you want to add a slider for n. This is doable for any number of sliders (so, $y = a(x-h)^2+k$ ); you can restrict the values to integers or to certain ranges, etc. Polar graphing is also available. It's easily explorable.

Of course the benefit of this is that anyone can use it on any computer, no installing.

Additionally, the graphs can be imported to other documents or e-mailed easily if a student is trying something and needs to show you their graph when not in your presence!

If anyone else has used this and has comments, suggestions, or negative experiences I know that I'd love to hear them!

• Desmos is very nice! Additionally to what you note it can plot implicit equations and parametric equations. And make animations (small movies). – Michael Bächtold Nov 17 '14 at 17:37
• The OP is asking about surface plots. Desmos doesn't support those, does it? – Ben Crowell Oct 15 '15 at 14:50
• Strange that I don't remember the original question being about 3D... has it been changed? Oh well! Sadly, Desmos doesn't have that ability fully yet... However! Someone has generously created a sheet that can do it using some pretty great math (with some explanations) desmos.com/calculator/nqom2ih05g – Zach Haney Oct 16 '15 at 16:18

My students and I have been using

http://web.monroecc.edu/manila/webfiles/pseeburger/CalcPlot3D/

It supports most of the visualization you would want in a multivariable calculus course: 3D graphs, vector fields, contour maps, parameterized curves and surfaces, etc.

• Nice recommendation. I used to know a half-dozen of these, but it seems the use of Java somehow ruined it... at least for my attempts. But, this, seems to work. Thanks. – James S. Cook Apr 10 '17 at 3:21
• Ya, javascript is definitely the way to go now (not Java or Flash). – Steven Gubkin Apr 10 '17 at 12:46
• Just to clarify, note that CalcPlot3D now uses javascript, or at least the default one (linked to above) does. The Java one is still available, however, and apparently supports a few extra features (as of when the javascript version was released). – kcrisman Apr 13 '17 at 14:47

Sounds like you want them to learn something, so I would recommend the following:

• Start students working with 3D plots in Geogebra
• Set up sagemathcloud
• Introduce sagemathcloud to students having them create markdown documents pasting images of 3D plots and writing up problems, maybe using some LaTeX if you're comfortable.
• Ease off the geogebra and move to Jupyter notebooks where you will move back and forth between using Python's matplotlib 3D plotting and R's ggplot.

I made the following website with the aim of producing a Desmos-like experience in 3D for my multivariable calculus students.

math3d.org

You can use math3d.org to create simple surface plots or complex, animated visualizations. Some features:

• Create and animate points, lines, vectors, curves, surfaces (explicit & implicit), and vecotr fields
• Save and share your scenes

Here are three scenes that I particularly like:

This project is on Github. If you find bugs or have ideas for improvements, please open an issue!

Note: This answer is mostly a re-post of my answer to a similar question Calculator Similar to Desmos but for 3D on Math StackExchange.

I highly recommend wolframalpha.com

This is free, available on the internet without downloads, and is useful for many other classes.

• This website is powerful and useful too. But some jobs as like as changing viewpoint is not possible. At least is not free. – Huseyin Mar 13 '14 at 23:50
• I have had students type things like z=-x^2-5y^2 into Wolfram Alpha and tell me that the graph is a parabolic cylinder (ouch!). Also, interactive 3d plots are not free. – Paul Pearson Mar 19 '14 at 21:25
• The wolframalpha site (and integrals.com) is just a come-on for their expensive, proprietary products. Don't lock students into expensive proprietary software, or proprietary programming languages. – Ben Crowell Dec 28 '18 at 2:16

The computer algebra system maxima is nice (it is at the heart of open source packages like SAGE or GAP), and includes plotting functions. A version running on Android (even phones) is available too.

• For graphing, does maxima just act as a front end for gnuplot? – Ben Crowell Oct 15 '15 at 14:52
• @BenCrowell, essentially yes on Linux. Don't have any clue on Android. – vonbrand Oct 15 '15 at 16:01

For an easy-to-use software that is both simple and capable of ploting beautiful 3d graphs you can try downloading my Graphing Calculator 3D software.

It supports explicit and implicit equations, parametric equations, cartesian, polar, cylindrical and spherical coordinates.

• It freeze when I am trying to open it. – Huseyin Oct 13 '14 at 18:27
• Which operating system(s) do you have? At what point during the startup does it freeze? – Saeid Nourian Oct 13 '14 at 22:29
• I use Linux mint 17 and that is freezing when it is opened. – Huseyin Oct 18 '14 at 13:44
• @quid Thanks for the suggestion. I updated the wording of my answer to reflect the fact that I'm the creator of this software. – Saeid Nourian Oct 15 '15 at 14:18