> For the complete documentation index, see [llms.txt](https://docs.robpod.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.robpod.cloud/hmi-designer/hmi-and-doosan-robotics.md).

# HMI and Doosan Robotics

There are several ways to structure an [HMI program](/hmi-designer/introduction.md) with Doosan Task Editor, and typically each developer has his own preferred way. Below you can find the two most used ways to structure a program with HMI (a mix of the two is also possible):

* Interaction based on functions
* Interaction based on variables

### **Interaction based on functions**

In this scenario motion actions are defined inside functions (Sub) linked to HMI buttons.

<figure><img src="/files/48h933qBTRMTIIOpjjk3" alt=""><figcaption></figcaption></figure>

### **Interaction based on variables**

In this scenario motion actions are defined inside the Main program. HMI buttons are linked with variables, used to control the main program flow.

<figure><img src="/files/wjn6GNbPeaiQPREHvyf9" alt=""><figcaption></figcaption></figure>
