Asymptote is a powerful descriptive vector graphics language that
provides a mathematical coordinate-based framework for technical drawing.
Labels and equations are typeset with LaTeX, for overall document
consistency, yielding the same high-quality level of typesetting that
LaTeX provides for scientific text. By default it produces
PostScript output, but it can also generate OpenGL, PDF,
SVG, WebGL, V3D, and legacy PRC vector graphics,
along with any format that the ImageMagick package can
produce. You can even try it out in your Web browser without
installing it, using the Asymptote Web Application
It is also possible to send remote commands to this server via the curl utility (see Command-Line Interface).
A major advantage of Asymptote over other graphics packages is
that it is a high-level programming language, as opposed to just a graphics
program: it can therefore exploit the best features of the script
(command-driven) and graphical-user-interface (GUI) methods for
producing figures. The rudimentary GUI xasy included with the
package allows one to move script-generated objects
around. To make Asymptote accessible to the average user, this
GUI is currently being developed into a full-fledged interface
that can generate objects directly. However, the script portion of the language
is now ready for general use by users who are willing to learn a few
simple Asymptote graphics commands (see Drawing commands).
Asymptote is mathematically oriented (e.g. one can
use complex multiplication to rotate a vector) and uses
LaTeX to do the
typesetting of labels. This is an important feature for scientific
applications. It was inspired by an earlier drawing program (with a weaker
syntax and capabilities) called MetaPost.
The Asymptote vector graphics language provides:
LaTeX is the de-facto standard for typesetting equations.
LaTeX typesetting of labels, for overall document consistency;
MetaPost, with a much cleaner, powerful C++-like programming
syntax;
PostScript language for vector graphics, including affine transforms
and complex variables;
Many of the features of Asymptote are written in the
Asymptote language itself. While the stock version of
Asymptote is designed for mathematics typesetting needs, one can
write Asymptote modules that tailor it to specific
applications; for example, a scientific graphing module is available
(see graph). Examples of Asymptote code and output,
including animations, are available at
Clicking on an example file name in this manual, like
Pythagoras, will display the PDF output, whereas clicking on its
.asy
extension will show the corresponding Asymptote code in a separate window.
Links to many external resources, including an excellent user-written
Asymptote tutorial can be found at
A quick reference card for Asymptote is available at