I am considering extending a proprietary application so it communicates with an open source program.
This open source program is very similar to Matlab. The user can input commands to execute computations or draw graphics. Also, the user can write scripts. The program provides an API for external applications. External applications can generate variables and assign values to them and they can also execute commands or call scripts via this API. The licence of the program is GPL2.
The proprietary application shall communicate with the GPL'd program via the API or via command line arguments. It will send images taken from a camera to the GPL'd program, call scripts to process these images and accept results.
The user of the proprietary application will be able to select a script and maybe also a file containing parameters of the script. Moreover, the user will be able to create his or her own script and to use the GPL'd program for any purpose.
No matter how the communication is implemented, the exchanged data will be complex. Images will be exchanged anyway. The proprietary application might even send image processing parameters stored in XML files or classifiers such as neural networks to the open source program.
The open source program will be delivered along with the proprietary application on the same storage media. Both programs will be installed on the same computer.
Does GPL 2.0 permit such a scenario?