Introduction

Simian GUI provides an accessible way to define graphical user interfaces for your Python or MATLAB applications, that can be deployed on a server where they can be used by authorized users. The user interface can be developed using relatively basic code, focusing on GUI content specification and (mutual) positioning of interface components. In other words: the developer focuses on the final product, while more technical GUI aspects are handled by Simian GUI.

The key capabilities of Simian GUI are:

  • Development of your models and the graphical user interface can be performed in the same environment (Python or MATLAB).
  • Write the user interface definition in basic Python or MATLAB code. Utilize over 40 different customizable components to create the interface you want.
  • The same codebase is used for local and deployed mode.
  • Exploit the computational power of your deployment server instead of having to use that of your user’s machines.
  • MATLAB: No MATLAB license required for each user when running deployed applications.
  • No HTML/JavaScript/JSON knowledge required to create full-fledged user interfaces.

Simian GUI has a Python and a MATLAB implementation, both of which are described in this document. The pieces of code in this document are Python or MATLAB code, indicated by the and icons in the top-right of the code blocks. In these code snippets, the following imports are assumed to be made (and thus are not shown) in order to keep them readable:

  • Python:
    • import simian.gui
    • from simian.gui import component
    • from simian.gui import composed_component
    • from simian.gui import component_properties
    • from simian.gui import utils
  • MATLAB:
    • simian.gui_v3_0_1.* where the release number 3_0_1 may vary.

Parts of the documentation on name-value pairs show them in PascalCase: starting with an upper case character and starting every word with a capital letter. These name-value pairs are used in MATLAB. In Python, the name-value pairs are snake_cased: lower case with underscores separating the words. This means that if a name-value pair is documented as NestedForm, the input argument in Python becomes nested_form.

For an example of a form hosting the inputs and results of a model please refer to the Ball Thrower example.