Skip to content

From a formula to a 3D surface: 11 modes, numbers, STL and 3MF

Write a formula and the tool builds it as a 3D surface and calculates numbers beside it: volume, area, curvature, slope. The surface downloads as STL or 3MF.

Opens without an account 3 times a day. A free account removes the limit.

What a 3D function plotter is

This 3D function plotter is a free online tool from EduFacturing that turns a formula into a 3D surface. There are 11 modes in five groups: surfaces, analysis, fields, generators and print.

The expression is in x and y, for example sin(x)*cos(y), with pi and e and 23 functions; the complex mode has a smaller set. A disallowed name or a bad number is reported on screen.

Function → 3D: a toolbar of 11 modes in five groups, a half torus in 3D in the middle, the mode description on the left, parameter fields on the right and STL and 3MF buttons at the top
Function → 3D: a toolbar of 11 modes in five groups, a half torus in 3D in the middle, the mode description on the left, parameter fields on the right and STL and 3MF buttons at the top

What it does: formula, surface, numbers, STL

Builds surfaces from formulas

A torus and a body of rotation from a profile r(z), an implicit surface f(x, y, z) = 0, polar curves and reliefs, and a complex function with height |f(z)| and colour by phase. Multi-sheet display exists only for sqrt(z) and log(z).

Calculates volume, area and curvature

Volume and surface area of a torus and a body of rotation by Pappus's theorem, and of an implicit surface from its mesh. Integrals give volume and area with an error estimate, while curvature gives Gaussian curvature and critical points.

Animates heat, waves and reaction-diffusion

Heat, waves and Gray-Scott reaction-diffusion step through time on a grid with the Play button. Laplace is not animated. The vector field gives streamlines, divergence and curl at (0, 0).

Measures the slope for printing

Printability measures the slope of the surface from the horizontal at each point and marks in red the points above the threshold from the EduFacturing rules for the material: 60° for PLA, 40° for ABS, nylon and PA, with a general threshold of 45°.

When you need it: maths class, a relief, analysis

A formula is easier to grasp when the surface turns and can be held in the hand.

  • A maths lesson

    The teacher shows a torus, an implicit surface or a complex function, rotates the surface in front of the class and prepares the model for printing.

  • Analysis and physics

    A student checks curvature, the volume under a surface, or how heat and waves spread over a grid.

  • Reliefs and decoration

    A maker builds a relief from waves, noise or a Mandelbrot or Julia fractal and prepares it for printing once the mesh is closed.

How to plot a 3D function

The expression is read without eval and calculated on a grid of points. The numbers in the legend come from the calculation, not from screen pixels.

  1. Grid and height

    In curvature, integrals and printability z = f(x, y) is calculated on a grid with a resolution of 10 to 120, the integrals use a separate grid of 10 to 400 nodes (60 by default), and the height is normalised above a base of 0.5 to 20 mm over a range of 1 to 60 mm.

  2. The mode's method

    The implicit surface uses marching tetrahedra: a cube is cut into 6 tetrahedra with 16 cases each. Heat is a conservative scheme, the wave is leapfrog, and streamlines use fourth-order Runge-Kutta.

The formulas in the tool's code
Applies toFormulaMeaning
Height in mmz = base + (f − f_min) / (f_max − f_min) · heightf_min and f_max are those of the displayed grid
Gaussian curvatureK = (f_xx·f_yy − f_xy²) / (1 + f_x² + f_y²)²derivatives by central differences
Surface areaS = ∬ √(1 + f_x² + f_y²) dx dyat cell centres; the volume uses Simpson's rule
Slope angleα = atan(√(f_x² + f_y²))from the horizontal, on f; above the threshold (60° PLA, 40° ABS, nylon, PA) the point is marked

Numbers checked against an exact value

  • Numbers are checked against an exact value

    The tests check the torus volume against 2π²Rr² and its surface against 4π²Rr (1% tolerance), and the integral of x·y + 5 over [0, 2] × [0, 3] against its exact value, 39.

  • Volume is not voxel counting

    For a body of rotation the volume comes from Pappus's theorem, for an implicit surface from the signed tetrahedra of the mesh.

What the tool does not do

Reliefs z = f(x, y) download as a top mesh with no floor and no walls, so it has to be closed before printing; in the complex mode only the first sheet downloads. Printability measures only the slope at each point, not overhanging regions, supports or stability. The threshold is an angle from the vertical, while the measured one is from the horizontal, so the colouring is a guide, not an overhang check.

Self-intersection is not checked: a torus whose tube radius is not smaller than its major radius is built without a warning. The vector field is in a fixed domain [−10, 10]² and downloads as lines. An implicit surface with up to 96 voxels per axis may slow the page.

Questions: Gaussian curvature, Pappus's theorem, printing

How to plot a 3D function?

Write an expression in x and y, for example sin(x)*cos(y). It accepts x and y, pi and e, the operators +, −, *, / and ^ and 23 functions, among them sin, sqrt, atan2, floor and mod. The complex mode has a smaller set.

What is Gaussian curvature and how is it calculated?

A measure of how curved a surface is at a point. The tool calculates it as K = (f_xx·f_yy − f_xy²) / (1 + f_x² + f_y²)² with derivatives by central differences, and gives the critical points too.

What is Pappus's theorem and where is it used?

The volume of a torus is V = 2π²·R·r²; at R = 40 and r = 12 mm that is 113,698 mm³. The tool uses the same theorem for the volume and surface of a torus and of a body of rotation.

How to 3D print a math function?

Download the STL or 3MF, but only a closed mesh prints. Reliefs z = f(x, y) download as a top mesh with no floor, and it is closed before printing.

When does the wave solution become unstable?

When the Courant number in 2D passes about 0.71, that is 1/√2, the solution blows up. The slider allows up to 0.99, so part of its range is unstable.

Do I need an account to plot a function?

Without an account the tool opens 3 times a day, and with a free account there is no limit.

The 3D function plotter is free. Pro opens the rest

Pro costs 15 EUR a month and opens 45 Pro tools.

Build your surface

Opens without an account 3 times a day. A free account removes the limit.