Domains can operate in either of two modes:
By supporting heterogeneity, Ptolemy provides a research laboratory to test and explore design methodologies that support multiple design styles and implementation technologies. A simple example is simulating the effects of transmitting compressed video and audio over an asynchronous transfer mode (ATM) network. The network will delay, drop, and reorder packets based on the congestion. Compression and decompression, however, work on the video and audio data, and the time associated with the data is not relevant to the signal processing. The simulation in this case is heterogeneous: the network processes discrete events (packets) with a notion of time, whereas the signal processing processes data independent of time. Other examples of heterogeneous systems include integrated control and signal processing architectures, mixed analog/digital simulation, and hardware/software codesign.
In short, Ptolemy is a flexible foundation upon which to build prototyping environments. The Ptolemy 0.7 release contains, for example, dataflow-oriented graphical programming for signal processing [Lee87a,b][Buc91][Buc93a,b,c], a multi-threaded process networks modeling environment [Par95], a synchronous/reactive programming framework [Edw97], discrete-event modeling of communication networks [Wal92][Hal93][Cha97], and synthesis environments for embedded software [Bha93a,b,c][Bha94a,b][Pin95]. We have also developed prototyping environments that are not released with Ptolemy 0.7, such as design assistants for hardware/software codesign [Kal93]. The Ptolemy system is fundamentally extensible, as we release all of the source code. Users can create new component models, new design process managers, and even entirely new programming environments.