Automatic Generation of Interactive Multidimensional Phase Portraits


AutoPortrait is a free Mathematica package and user-friendly interface to automatically generate interactive phase portrait diagrams for multidimensional dynamical systems. The application only needs the user to type the differential equations defining the system and the program outputs a complete phase portrait for each pair of dependent variables. The portraits include a vector field, nullclines, and critical points with their stability. The user can interact with the portraits, zooming and panning the domain, changing parameters, and including trajectories that are visualized in the phase and time domains. The portraits can be saved as computable notebooks that retain all the interactive functionality. The method can aid in research reproducibility and improve learning in the classroom.

User-friendly Tool

The graphical user interface allows any user to generate interactive phase portraits without programming. The user can select the number of equations and directly type the variables and equations directly in the input boxes. The parameters in the equations are automatically detected and their values and ranges to explore can be defined. After clicking the button to generate the portraits, the program computes and displays them directly in the interface. A legend with the symbols used together with the interactive controls are provided along the portraits.

Mathematica Package

The method is also available as a Mathematica package that can be imported into a notebook or script. The main function in the package is GeneratePortrait, which takes two arguments. The first one is a list with the differential equations in the system. The second argument is a list with the dependent variables. The system of equations can contain parameters, which are automatically detected by the method. The function outputs the same interactive portraits that can be obtained with the graphical user interface. In addition, optional arguments can be defined to specify ranges, trajectories, and the displayed domain.

Generating phase portraits with the package is very simple. The example below shows the script necessary to produce the interactive phase portrait shown next. Notice that the equations do not need to include the time variable and the parameters (a and b in the example) are automatically detected by the method.

Multi-dimensional Systems

The method supports the generation of phase portraits for multidimensional systems. In this case, a two-dimensional phase portrait is produced for every combination of two dependent variables, choosing for each portrait an appropriate value for the other free variables, parameters, and domain range.


You can freely use and download AutoPortrait (GPLv3 license) in your own computer. Please, click here to download the latest version of AutoPortrait. The zip file includes the package, the graphical user interface (GUI), a tutorial, and a computable notebook with examples. A full version of Wolfram Mathematica is needed to generate new portraits. In addition, notebooks including generated portraits can be opened retaining all the interactive functionality with the freely-available software Wolfram Player. If you find the method useful, please cite the following paper in your work.


Automatic Generation of Interactive Multidimensional Phase Portraits
O.O. Ogunsan, D. Lobo
bioRxiv doi:10.1101/2022.02.23.481676, 2022.


This work was supported by the National Institute of General Medical Sciences of the National Institutes of Health under award number R35GM137953. The content is solely the responsibility of the authors and does not necessarily represent the official views of the National Institutes of Health.