\chapter{Introduction}

\section{DsTool and Dynamical System Toolkits}

A  {\em dynamical system}\index{dynamical systems}
is defined by 
a set of rules or transformations for determining how points
in a multi-dimensional space move in time.  
Time may either be discrete or continuous.
The traces of the points as they move in discrete or continuous time
are called {\em trajectories}\index{trajectory}.
The goal of dynamical systems theory is to provide
a comprehensive description of the geometric structures arising from 
these trajectories. In addition to elucidating the dynamics associated
to an individual dynamical system, bifurcation theory may be used to describe
how the dynamics of a system varies with changes in parameter values.

Interactive numerical and graphical exploration 
are important tools in dynamical systems research for several reasons:
\begin{itemize}
\item There is generally
no way to obtain trajectory information other than by iteration or numerical
integration;
\item The geometric structures of a dynamical system are often
intricate and extremely sensitive to changes in the
system parameters, so that interactive computation and graphics
have proved useful in interpreting their meaning; 
\item Exploration  of a dynamical system often involves the generation of large
quantities of data.  Usually, only a  small proportion
of data must be saved, and typical computer facilities seldom allow for the 
indiscriminate storage of information.
Therefore, it is important to find compact and efficient representations
of a system's dynamics that can be easily retrieved.
\end{itemize}
Consequently, there is a critical need for computational
environments that provide effective tools for exploring dynamical systems
with minimal effort on the part of the user. 
Research that relies upon the investigation of 
dynamical systems would be greatly enhanced by a standard, uniform 
environment for the exploration of these systems with computers.

The explosion of the graphical computational capabilities of relatively
inexpensive desktop computers in the past few years makes the development
of such an environment both feasible and timely.  This document describes 
an implementation of one such environment for SunOS, Solaris, SGI, and
Linux platforms.
The {\em toolkit} that we describe is an efficient 
research tool that integrates a graphical user
interface, data management capabilities,
and a rich set of numerical algorithms together with the  flexibility to add more algorithms 
and communicate data with other programs. The program, called  {\em DsTool} (pronounced dee-ess-TOOL), 
has been implemented for use with the X Window system from MIT.  This version
uses the Tcl/Tk\index{Tcl/Tk, interface} package by John Ousterhout for its graphical interface.
In addition, Geomview\index{Geomview} is used for three dimensional
graphics and animation capabilities.   DsTool is based upon the program
\kaos,  written by S. Kim and J. Guckenheimer.
