# Introduction

Simian GUI provides an accessible way to define graphical user interfaces for your MATLAB or Python 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 (MATLAB or Python).
• Write the user interface definition in basic MATLAB or Python code. Utilize over 35 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 MATLAB and a Python implementation, both of which are described in this document. The pieces of code in this document are MATLAB or Python 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:

• MATLAB:
• simian.gui_v2_0_0.* where the release number 2_0_0 may vary.
• 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

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.