Features that were new in previous Ptolemy II releases

Major Features that are new in Ptolemy II 4.0

Below are new features that were not present in Ptolemy II 3.x

Other Features that are new in Ptolemy II 4.0

New Demonstrations

New and Enhanced Actor Libraries

New Demonstrations of Older Capabilities

Capabilities requiring additional software and/or hardware

Additional Features

New Actors

  • ptolemy.actor.lib
    ArrayAverage:
    (Mark Oliver, Edward A. Lee) An actor that outputs the average of the input array.
    ArrayLevelCrossing:
    (Edward A. Lee, Steve Neuendorffer) An actor that finds the index of the first item in an array to cross a specified threshold.
    ArrayPeakSearch:
    (Edward A. Lee) An actor that identifies peaks in an array.
    ArraySort:
    (Mark Oliver, Edward A. Lee) An actor that sorts the elements of an array.
    ArrayToElements:
    (Rachel Zhou) An actor that disassemble an ArrayToken to a multiport output.
    ComputeHistogram:
    (Steve Neuendorffer) Compute a histogram of input data.
    ElementsToArray:
    (Rachel Zhou) An actor that reads a token from each input channel to assemble an ArrayToken.
    Exec:
    (Christopher Hylands Brooks, Contributor: Edward A. Lee) Execute a command in a subprocess.
    Exit:
    (Edward A. Lee) A simple sink actor that consumes and discards input tokens and then calls System.exit() in wrapup.
    GradientAdaptiveLattice:
    (Steve Neuendorffer) An IIR filter actor that uses a direct form II implementation.
    SetVariable:
    (Edward A. Lee, Steve Neuendorffer) Set the value of a variable contained by the container.
  • ptolemy.actor.lib.comm
    Slicer:
    (Rachel Zhou) A Slicer, which functions as a decoder of the LineCoder of complex type.
    TrellisDecoder:
    (Rachel Zhou, contributor: Edward A. Lee) Decode convolutional code with non-antipodal constellation.
  • ptolemy.actor.lib.conversions
    StringToXML:
    (Yang Zhao) An actor that outputs data read from a URL.
  • ptolemy.actor.lib.hoc
    MobileFunction:
    (Yang Zhao) An actor that apply dynamically defined functions to its input.
    MobileModel:
    (Yang Zhao) A composite actor that apply models dynamically.
    ModelReference:
    (Edward A. Lee) An atomic actor that executes a model specified by a file or URL.
  • ptolemy.actor.lib.io
    DirectoryListing:
    ( Christopher Hylands, Edward A. Lee) An actor that produces an array that lists the contents of a directory.
  • ptolemy.actor.lib.jai
    AdaptiveMedian:
    (James Yeh) An actor that performs adaptive median filtering on a double matrix.
    ImageToJAI:
    (James Yeh) Convert an ImageToken to a JAIImageToken.
    JAIConstant:
    (James Yeh, Steve Neuendorffer) An actor that produces a JAIImageToken with constant bands.
    JAIDataConvert:
    (James Yeh) An actor that changes the data format in a JAIImageToken.
    JAIPNGWriter:
    (James Yeh) An actor that writes to a PNG file.
    SaltAndPepper:
    () package ptolemy.actor.lib.jai;
  • ptolemy.actor.lib.javasound
    LiveSoundActor:
    (Steve Neuendorffer) An actor that reads in audio samples and plays the audio data.
  • ptolemy.actor.lib.jmf
    AudioPlayer:
    (James Yeh) An actor that plays a DataSource containing a music file.
    ImageToJMF:
    (Christopher Hylands Brooks) Convert an ImageToken into a JMFImageToken.
    MovieReader:
    (James Yeh) An actor that outputs frames from a video file.
    MovieWriter:
    (James Yeh) An actor that writes frames to a video file.
    StreamLoader:
    (James Yeh) Load a datasource from a URL.
    VideoPlayer:
    (James Yeh) An actor that displays a AVI, Quicktime or MPEG video file.
  • ptolemy.actor.lib.security
    CipherActor:
    (Christopher Hylands Brooks, Contributor: Rakesh Reddy) A base class for actors that encrypt and decrypt data.
    CryptographyActor:
    (Christopher Hylands Brooks, Contributor: Rakesh Reddy) A base class for cryptographic actors.
    KeyReader:
    ( Christopher Hylands Brooks) Read in a keystore from a FileParameter and output a Key.
    KeyStoreActor:
    ( Christopher Hylands Brooks) A baseclass for actors that read or write keystores.
    KeyToken:
    (Christopher Hylands Brooks, Based on TestToken by Steve Neuendorffer) Tokens that contain java.security.Keys
    KeyWriter:
    ( Christopher Brooks) Read in a Key from the input port and write it out to a KeyStore.
    PrivateKeyReader:
    ( Christopher Hylands Brooks) Open a keystore from a FileParameter and output a PrivateKey.
    PublicKeyReader:
    ( Christopher Brooks) Open a keystore from a FileParameter and output a PublicKey.
    SecretKey:
    (Christopher Hylands Brooks, Contributor: Rakesh Reddy) Create a secret key and send it on the output.
    SecretKeyReader:
    ( Christopher Hylands Brooks) Open a keystore from a FileParameter and output a SecretKey.
    SignatureActor:
    (Christopher Hylands Brooks, Contributor: Rakesh Reddy) A base class for signature actors.
    SignatureSigner:
    (Christopher Hylands Brooks, Contributor: Rakesh Reddy) Sign the input data using a private key.
    SignatureVerifier:
    (Christopher Hylands Brooks, Contributor: Rakesh Reddy) Verify the signature of the input data.
    SymmetricDecryption:
    (Christopher Hylands Brooks, Contributor: Rakesh Reddy) Decrypt an unsigned byte array using a symmetric algorithm.
    SymmetricEncryption:
    (Christopher Hylands Brooks, Contributor: Rakesh Reddy) Encrypt an unsigned byte array using a symmetric algorithm.
  • ptolemy.actor.lib.string
    StringCompare:
    (Vinay Krishnan, Daniel L\341zaro Cuadrado (contributor: Edward A. Lee)) An actor that computes a specified String comparison function on the two String inputs.
    StringFunction:
    (Mike Kofi Okyere, Ismael M. Sarmiento) Trim a string, convert a string to uppercase, or convert a string to lowercase depending on the user's selection.
    StringIndexOf:
    (Rakesh Reddy, Philip Baldwin, Edward A. Lee) Finds index of a string contained in a given text
    StringLength:
    (Edward A. Lee) Output the length of a string provided at the input.
    StringMatches:
    (Antonio Yordan-Nones, Colin Cochran (contributor Edward A. Lee)) Pattern match a string to a regular expression.
    StringReplace:
    (Antonio Yordan-Nones, Neil E. Turner, Edward A. Lee) Replace an instance of a string with another input string according to a regular expression.
    StringSubstring:
    (Neil E. Turner and Edward A. Lee) Output a substring of the string provided at the input.
  • ptolemy.actor.lib.x10
    ApplianceController:
    (Colin Cochran (contributor: Edward A. Lee)) An ApplianceController actor sends x10-appliance-module commands to the x10 network.
    CommandListener:
    (Colin Cochran and Edward A. Lee) This actor senses specified X10 commands.
    LampController:
    (Colin Cochran and Edward A. Lee) A LampController actor sends X10-light-module commands to the X10 network.
    LevelListener:
    (Colin Cochran and Edward A. Lee) This actor senses specified X10 commands.
    Listener:
    (Colin Cochran (contributor: Edward A. Lee)) Output X10 commands detected on the X10 network.
    Receiver:
    (Colin Cochran and Edward A. Lee) Receive x10 commands propagating through an x10 network.
    Sender:
    (Colin Cochran (contributor: Edward A. Lee)) Send commands to an x10 network.
    X10Interface:
    (Colin Cochran and Edward A. Lee) This class creates an x10 inteface device which can send and receive 10 commands to and from an x10 network.
  • ptolemy.actor.lib.xslt
    XSLTransformer:
    ( Yang Zhao, Christopher Hylands Brooks) An actor that read an XSLT file and apply it to its input.
  • ptolemy.domains.gr.lib
    Box2D:
    (Steve Neuendorffer) A class that represents a 2D rectangle in a GR model.
    Ellipse2D:
    (Ismael M. Sarmiento, Steve Neuendorffer) Create a rectangle, rounded rectangle, or ellipse with the size and position specified by the user.
    FigureInteractor:
    (Ismael M. Sarmiento) Listen for and handle events on Diva figures.
    GRShape2D:
    (Steve Neuendorffer, Ismael M. Sarmiento) An abstract base class for shaded GR Actors
    GRTransform2D:
    (Steve Neuendorffer) An abstract base class for transforming input 3D shape
    IconViewScreen3D:
    (Steve Neuendorffer) A GR scene viewer
    Image2D:
    (Ismael M. Sarmiento, Steve Neuendorffer) Create a figure from a user specified image file.
    Line2D:
    (Steve Neuendorffer, Ismael M. Sarmiento) Create a line with the endpoints provided by the user.
    Rectangle2D:
    (Ismael M. Sarmiento, Steve Neuendorffer) Create a rectangle, rounded rectangle, or ellipse with the size and position specified by the user.
    RectangularFigure2D:
    (Ismael M. Sarmiento, Steve Neuendorffer) Create a rectangle, rounded rectangle, or ellipse with the size and position specified by the user.
    Rotate2D:
    (Ismael M. Sarmiento, Steve Neuendorffer) Rotate a two-dimensional figure based on the angle and anchor point provided by the user.
    Scale2D:
    (Ismael M. Sarmiento, Steve Neuendorffer) Scale a two-dimensional figure based on the size provided by the user.
    Translate2D:
    (Steve Neuendorffer) An actor that translates the input 3D shape
    ViewScreen2D:
    (Steve Neuendorffer, Ismael M. Sarmiento) A GR scene viewer
  • ptolemy.domains.sdf.lib
    CountTrues:
    (Steve Neuendorffer) An actor that counts true inputs.
  • ptolemy.domains.sr.lib
    NonStrictTokenToExpression:
    (Haiyang Zheng) A non-strict actor that converts tokens into expressions.
  • ptolemy.vergil.actor.lib
    VisualModelReference:
    (Edward A. Lee) An atomic actor that executes a model specified by a file or URL.
  • Major Features that were new in Ptolemy 3.0

  • Continuous Time (CT) domain rework for improved mixed signal and hybrid systems semantics (Jie Liu, Parc, and Haiyang Zheng).
  • Component Interaction Domain (Yang Zhao, Xiaojun Liu) - The CI domain models systems that contain both data-driven and demand-driven styles of computation.
  • Rework of FSM domain to support chained transitions and better hybrid systems semantics (Haiyang Zheng).
  • Expression language rework to create a full-featured, functional and higher-order expression language with extensive support for composite types such as matrices, arrays, and records; the expression language is also now fully integrated with the Ptolemy II type system (Steve Neuendorffer, Edward A. Lee).
  • Configurations have been reworked to make it much easier to create standalone tools that extract portions of the Ptolemy II infrastructure and have customized user interfaces, documentation, and actor and director libraries. Configurations have been refactored into separate directories in $PTII/ptolemy/configs, and one example of such a standalone tool, HyVisual, is provided.
  • Updates to Vergil, the user interface for building models (Steve Neuendorffer, Edward A. Lee, John Reekie):
  • Run buttons on the toolbar and hotkeys.
  • Persistent window sizing and placement.
  • Undo/Redo.
  • Port Parameters.
  • vergil -help lists available configurations.
  • Full-screen mode for use in presentations.
  • Other user interface improvements (Steve Neuendorffer, Edward A. Lee):
  • Interactive shells infrastructure.
  • An interactive expression shell using this infrastructure.
  • Infrastructure for specialized token viewers. Files with the extension .ptd are now opened by a token viewer. The default token viewers is a text editor, but others can be added in the configuration.
  • A matrix token viewer.
  • HSIF Support (Haiyang Zheng). The Hybrid System Interchange Format (HSIF), was developed by the Institute of Software Integrated Systems (ISIS) at Vanderbilt University as part of the ISIS MoBIES effort. The HSIF documentation states: "The goal of HSIF is to define an interchange format for hybrid system models that can be shared between modeling and analysis tools. HSIF models represent dynamic systems, whose dynamics includes both continuous and discrete behaviors." Haiyang Zheng developed a set of XSLT files that convert HSIF into MoML, the XML format used to represent Ptolemy II Models. See the HSIF/MoML documentation.
  • A first version of higher-order components, the MultiInstanceComposite actor (Zoltan Kemenczy and Sean Simmons, Research In Motion, Ltd.). This actor creates a parameterized number of instances of a composite actor.
  • Python integration, with a PythonScript actor that permits definition of actors in Python (Xiaojun Liu). This uses Jython, a Java implementation of Python.
  • Other Features that are new in Ptolemy II 3.0

    New Demonstrations

  • CI: Component Interaction
  • Router
  • CT: Continuous Time
  • Compared Clocks
  • Matlab Continuous Time Demonstration
  • HSIF Thermostat and Swimming Pool
    This example shows a simple thermostat modeled as a hybrid system. The purpose of the example is to demonstrate the ability that HyVisual has to import models defined in HSIF, the Hybrid System Interchange Format. To run HSIF models, you must invoke Ptolemy II with the -hyvisual command line argument or else run the HyVisual Web Edition. These models will not work in a standard Ptolemy II vergil or Web Edition because to support HSIF, we need to check xml each file to see if it is an HSIF file of a MoML file. This check slows Ptolemy II down slightly.
    See the HSIF/MoML documentation for details.
  • HSIF Swimming Pool.
    This example shows a simple hybrid system model of a pool.
  • Level Crossing Detector
  • Sampled Clocks
  • DE: Discrete Event
  • HOC DE (New in Ptolemy II 3.0.2)
  • FSM: Finite State Machine
  • Chained Transitions
  • Modal Binary Symmetric Channel
  • State Tracker
  • SDF: Synchronous Dataflow
  • DFT Subset
  • Fourier Series
  • Sound Spectrum
  • New Actors

    Changes between Ptolemy II 3.0.1 and 3.0.2

    Ptolemy II 3.0.1 was an interim release with a narrow distribution.
    The following changes occurred between 3.0.1 and 3.0.2

    Actors that were added between Ptolemy II 3.0.1 and 3.0.2

    ArrayMaximum
    (Mark Oliver) Extract maximum element from an array.
    ArrayMinimum
    (Mark Oliver, Edward A. Lee) Extract minimum element from an array.

    Enhancements between Ptolemy II 3.0.1 and 3.0.2

    $PTII/configure.in, $PTII/configure, $PTII/.classpath.in, $PTII/.eclipse.epf, $PTII/configs/FindClass.java
    Support for configuring Eclipse.

    Bug Fixes between Ptolemy II 3.0.1 and 3.0.2

    ptolemy/domains/sdf/lib/vq/ImageSequence.java
    Adjusted initial value of imageURLTemplate parameter
    ptolemy/domains/sdf/lib/Autocorrelation.java
    Can now handle complex data.
    lib/saxon7.jar Updated to 7.6.5 of Saxon. This was necessary to get both the HSIF demos and the Cal demos to work.
    ptolemy/vergil/actor/ActorEditorGraphController.java
    Under MacOS look and feel, use Command-Click to create new relations and drag new edges
    ptolemy/vergil/toolbox/PtolemyTransferable.java
    Under MacOS look and feel, change how we instantiate the DataFlavor so as to avoid a stack trace
    ptolemy/actor/gui/TextEffigy.java
    If the user tries to open a missing file, throw a better exception.

    Major Features that are new in Ptolemy 2.0

  • Modal Models (Xiaojun Liu, Edward A. Lee)
    A model model is one whose behavior depends on its "mode" of operation. A modal model in Ptolemy II is an FSM (finite state machine) combined hierarchically with other models. A state in the FSM represents a mode of operation, and can have a refinement that gives the behavior in that model. The refinement can be another FSM or some other model using some other Ptolemy domain. This example combines DE, FSM, and SDF to model a system where regularly sampled signals are perturbed by irregular events in time.
  • Code Generation (Primary Author: Stephen Neuendorffer, Contributor: Christopher Hylands)
    This release includes a limited prototype of our code generation facility that will generate .class files for non-hierarchical SDF models.
    Note that the code generator will not work in an applet, but will work with Web Start, the Windows installer and the standard configure and build.
  • ptolemy.data.unit - Units Demo (Primary Authors: Yuhong Xiong, Xiaojun Liu, Contributors: Winthrop Williams, Edward A. Lee)
    A major source of errors in embedded software is incorrect application of units. Yuhong Xiong and Xiaojun Liu have created a unit system for Ptolemy II that is quite clever. A suite of constants are defined, with names such as "meter", "cm", "feet", "miles", "seconds", "hours", and "days". In each unit category ("length" or "time" for example), there is a primary unit with respect to which all the others are specified. Thus, for example, if the primary unit of length is meters, then the expression "1.0 * cm" will have an internal value of 0.01 * meters. Compound units are specified by just multiplying and dividing, as in for example "1.0 * cm/second".

    The way this is realized is that these unit constants are tokens just like other Ptolemy II data, and multiplication and division are overloaded in the base classes for numeric valued tokens. We continue to work on this architecture to enable users to customize the unit system on a per-model basis.

  • Timed Multitasking Domain (Jie Liu) - an implementation of a model of computation based on priority-driven multitasking, as common in real-time operating systems (RTOSs), but with more deterministic behavior.
  • Synchronous/Reactive Domain: (Primary Author: Paul Whitaker, Contributors: Elaine Cheong, John Reekie)
  • Web Start (Christopher Hylands) - Ptolemy II includes support to build distributions using Sun's Web Start facility, which allows end users to download fully functional distributions via the web.
  • Vergil updates (Steve Neuendorffer, Edward A. Lee, John Reekie) Vergil has been improved and the following features have been added
  • Annotations - It is now much easier to annotate a model with text.
  • Parameters - The model can display top level parameter names and values
  • Snap to grid - It is now much easier to line up actors
  • Panner, zoom - The panner and zoom facilities make it easier to navigate large
  • Improved FSM editor
  • Animation - It is now possible to show which actors are firing when.
  • Better icons - Some icons such as Const, Scale and Expression will display their values.
  • Set data types of ports
  • Java Virtual Machine properties window - JVM Properties can be queried and garbage collection requested.
  • Documentation for setting CT signal types
  • See $PTII/doc/design/usingVergil/index.htm for more complete information
  • Other Features that are new in Ptolemy II 2.0

    New Demonstrations

  • CT: Continuous Time
  • Bouncing Ball (Requires Java 3D, see the GR domain) A Continuous Time model that uses a Finite State Machine and the GR domain to simulate a bouncing ball.
  • Car Tracking A following car tracking a leading car in an unreliable communication environment.
  • Switching Continuous Signals Shows how to handle hybrid systems with both continuous and discrete inputs and outputs.
  • Modal Thermostat A thermostat model where the refinements of the modes in the state machine are the same model.
  • Units A demonstration of the Units facility.
  • DE: Discrete Event
  • Modal Model This example combines DE, FSM, and SDF to model a system where regularly sampled signals are perturbed by irregular events in time.
  • FSM: Finite State Machines
  • Blending A blending controller with two major control modes.
  • Multiple Runs A state machine performs multiple runs of the refinement of mode1.
  • Giotto: Synchronous Periodic Systems
  • Composite A composite demo with a Giotto model embedded in a DE model.
  • GR: 3-D graphics (experimental)
  • FurutaPendulum The Furuta pendulum has a motor controlling the angle of an arm, from which a free-swinging pendulum hangs. The objective is to swing the pendulum up and then balance it.
  • SDF: Synchronous Dataflow
  • LMSAdaptive An adaptive filter.
  • MaximumEntropySpectrum A spectral estimation example.
  • SR: Synchronous/Reactive (experimental)
  • TokenRing A cyclic token-ring arbiter composed of three blocks.
  • TM: Timed Multitasking (experimental).
  • Controllers Two (independent) control loops whose controllers share the same CPU.
  • FFT This model shows the use of background process for long running tasks in the TM domain.
  • MergedEvents
  • SimpleTasks This model shows two independent tasks on a single CPU machine.
  • New Actors

    Major Features that were new in Ptolemy II 1.0.1

  • Vergil - the Ptolemy II GUI (Steve Neuendorffer and Edward A. Lee)
  • Giotto Domain (Christoph M. Kirsch, Benjamin Horowitz, Thomas A. Henzinger)
  • Java 3D Domain (GR Domain) (Chamberlain Fong)
  • Discrete Time Domain (Chamberlain Fong)
  • CORBA/Jini work (Jie Liu)
  • Other Features that were new in Ptolemy II 1.0.1

    Last Updated: $Date: 2005/05/05 15:38:28 $