Tycho  has grown from our frustration with the user-interface facilities of the present version of Ptolemy, a large C++ software package that is used to design, simulate, and generate signal processing and communications systems [6, 8, 1]. In the summer of 1995, we began to explore [incr Tcl]/[incr Tk]  (then at version 1.5) as a potential candidate for replacement of the Ptolemy user interface. As the project evolved, the focus of the project has shifted away from merely a replacement user interface, towards providing a framework within which we can integrate Ptolemy, new user-interface features, new simulation sub-systems coded in Java, and documentation for all of these.
Ptolemy, mostly written in C++, runs on a dozen flavors of Unix. It currently contains over 350,000 lines of code, and maintaining and building releases that support all of these platforms in a system this size is very resource-intensive (especially for an academic research group). And we still can't support Windows or Macintosh. [incr Tcl]/[incr Tk] (and Java), on the other hand, seem to provide an ideal opportunity to get out of the ``binary-building business'' and into the ``platform-independent software business.''
The [incr Tcl]/[incr Tk] part of Tycho is structured as a reusable and extensible framework of classes. Tycho will run in a vanilla itkwish, although we also have binaries for Tycho-with-Java, and Tycho-with-Ptolemy. A small number of C-code packages provide support we need in specific applications, such as access to real-time timers. Tycho has been developed on UNIX platforms and most of it works under Windows NT; the Macintosh port, unfortunately, is functioning but unreliable.
Tycho is a complete application, not just a library of widgets. By default, Tycho starts up with a welcome window and its own Tcl shell, with menus that give access to all of its functionality (figure 1). It is, however, an extensible application: wherever possible, we have tried to build class hierarchies that allow developers to inherit or compose key functionality, so that they need to provide only the additional functionality needed for a particular application. We use Tycho as our [incr Tcl] development environment, and, anticipate that on-going development of C and Java compilation support will make Tycho key infrastructure for all research in the Ptolemy group by the end of this year.
Figure 1: Tycho in action (Full-size image)