What Is MeTA->phi?

Basically, a program for displaying mathematical functions. MeTA->phi helps you understand how a curve or surface, described by a mathematical equation, looks like in space. Where are its discontinuities, maximum points and other interesting features.

Maybe you just want to see strange shapes: just type every equation that is passing through your mind, and see what it describes. Rotate the shape in front of your eyes, then change a detail of the equation and see what changes in the shape.

MeTA->phi is distributed as Free Software under the terms of the GNU General Public License.


Currently, the program can:

  • plot functions of one and two variables; rectangular, polar and cylindrical coordinate systems are supported. 3D plots are rendered using OpenGL, and can be rotated and lighted to better understand them;
  • plot solutions to relations between variables. For now, only in rectangular coordinates (x, y, z);
  • plot parametric curves and surfaces, defined in rectangular, polar or cylindrical coordinates;
  • display vector fields in plane and space (for 2D fields also as flow lines);
  • display color plots in both RGB and HSV space (functions mapping position to point color);
  • animate every kind of plot, actually introducing another dimension: time;
  • save static plots as BMP files and animated plots as BMP frame sequences (still experimental).

Every expression you want to graph must be passed by command line, just by writing it:

metaphi "y=cos(e^x)" "x^2+y^2=1"

would for example plot both cos(ex) and a unit circle in the same window. Most of the commonly used functions are recognized: sqrt, cbrt, cos, sin, log, exp, tan, cosh, sinh, gamma and so on. Though this is already an easy way to specify expressions (there are no languages to learn), we want to implement a more user-friendly and interactive thing.

Functions of one variable and relations are displayed using interval arithmetic evaluation, a mechanism which greatly improves plots--basically by avoiding aliasing and feature missing. The plot also takes into account machine rounding errors automatically; this can be at the same time very useful and quite irritating when the curve suddenly becomes 50 pixels thick ;-). Other functions and objects are drawn with a rather stupid discrete sampling algorithm, but they will be fixed too where it makes sense.

We have many other things to experiment with, going from PostScript file saving and AVI animations to integrals and derivatives.

Development And Platforms

MeTA->phi is written in C/C++, and uses SDL (Simple Directmedia Layer, for 2D graphics and user interaction) and OpenGL (for hardware-accelerated 3D graphics). It's mainly intended to run on GNU/Linux systems, but since it uses portable libraries it should work on every platform that supports them. It's being tested on MacOS X too.

Hosted by
SourceForge.net Logo