1d data visualization

curves

scatter plots

bar graphs

support of multiple curves in one plot

polynomial fits

data supported:

one formula y=f(x)

two arrays of data x, y
 three arrays of data x, y, dy
2d data visualization

color maps

contour lines

vector plots

bitmaps

support of superimposed graphs

data supported:

one formula z=f(x,y) with optional 1d arrays for x and y

one 2d array of data z(x,y) with optional 1d arrays for x and y

three 2d arrays x(u,v), y(u,v), z(u,v) (used for example for a plot in polar coordinates)
 three 1d arrays x, y, z: data will be displayed as color map or contour lines after being triangulated
3d data visualization

surfaces

isosurfaces (scalar 3d data)

streamlines (vectorial 3d data)

2d slices (scalar 3d data)

curves

triangles lists

cones

cylinders

spheres

cubes

support of multiple objects in a plot

data supported by the surfaces:

one formula z=f(x,y) with optional 1d arrays for x and y

one 2d array of data z(x,y) with optional 1d arrays for x and y

three 2d arrays x(u,v), y(u,v), z(u,v) (used for example to plot a closed surface)
 three 1d arrays x, y, z: data will be displayed after being triangulated

light position and eye position adjustable

parameters of the plane projection adjustable

advanced surface rendering with separate specular, emitted, ambient, and diffused colors, and shininess. Wireframe or plain.
Customization of the graphs

levels of settings customization:

default settings customizable (templates are stored as plist files)

all settings customizable on the fly by script
 all settings customizable on the fly in dialog boxes

PDF engine, a vectorial graphical library (drawing and text)

PDF import

LaTeX formulae

support of Unicode in the figures
Graphic's programmable user interface

click and drag

by default, over 1d data: displays x, y

by default, over 2d data: displays x, y, or displays profiles

by default, over a surface: displays x, y, z

user's mouse down, drag, and mouse up can be handled in a script

user's keystrokes can he handled in a script

user's window resize can he handled in a script

programmable widgets

customizable toolbar: buttons, menus, messages

Data files format supported

ASCII

binary

FITS

bitmap images (JPEG, PNG etc.) as gray levels

XNF (XMLbased extensible 1d, 2d, and 3d binary arrays storage)
Graphic formats produced

PDF (vectorial)

JPEG, PNG, TIFF, BMP, PSD

QuickTime movie

MacOS bundle: stores the PDF graphic, the numerical data, and all settings

Export of a matrix into a graylevel or indexed colors image, JPEG, PNG, TIFF, BMP, PSD
Communication with external codes

standard UNIX executables: via "do shell script" (invokes /bin/sh)

scriptable programs: via the AppleScript terminology

C, C++ and FORTRAN programs: interactive communication with running codes by installation of interapplication communication (working samples are provided)
Communication over IP

communication between Smile applications, synchronously or asynchronously

serving cgi and xmlrpc requests
Mathematical functions on numbers, arrays, and matrices, real and complex

arithmetic and comparison operators: +  * / ^ < <= = /= >= >

trigonometric and hyperbolic: cos, sin, ... acos, asin, ... cosh, sinh, ... acosh, asinh, ... atan2

transcendental: ln, log10, exp, sqrt, erf, erfc, gamma, lgamma

miscellaneous: abs, sqr, hypot, round, ceil, floor, trunc, roots of

linear algebra: transposition, product (M x M, M x v, v x M, <v, v>), inverse matrix and solution of a linear system, eigenvalues, LU decomposition, pivot, determinant

Fourier Transform and convolution: 1d FFT, grouped ndimensional FFT, 2d FFT (all sizes), convolution, crosscorrelation, filtering. Support periodic boundary conditions.

interpolation: linear or spline, supports periodic boundary conditions.
 polynomials: evaluation, composition, addition, subtraction, product, Euclidean quotient, and translation into string. Polynomial data fits.

image processing: particle analysis (statistics and shapes).
XML editor and XML engine

XML syntax checking

check of the conformance to the DTD

DTD syntax checking

XML DOM (Document Object Model): textual node, children, siblings, parent, root, document, URL. Node creation and deletion. Support of versions 1.0 and 1.1 of XML.

XPATH, XPATH generation

XSLT

plist engine (Property Lists is a fast lookup tables format)
User interface editor

draganddrop editor

instant toggle between running mode and edition mode
PDF engine

shapes: straight and smooth lines, rectangles, circles, arcs, Bézier curves, crosses, arrows, text, text box, smooth closed curves

graphic features: colors, masks, transparency, dashes, line joints, line endings, fonts and text sizes, linear transformations, objects' naming, HSV/CMYK/RGB translations, shadows, random patterns, graded colors, layers, paths library, objects library, bitmap import, PDF import

geometry: scalar product, determinant, norm, middle, circle containing three points, intersection, projection, symmetry, bisector, center of mass,

import and scale PDF,

output formats: PDF, JPEG, PNG, TIFF, BMP, PSD, and QuickTime movie (.mov).
Regular Expressions searchandreplace engine

ASCII and Unicode

works on a variable, on an open window, or on a file
Text editor

ASCII (MacRoman, ISO88591) and Unicode (UTF8, UTF16)

unlimited file size

Regular Expressions searchandreplace
