For GUIs that are not too complex and don’t require a lot of special effects / animation, the SiAM GUI model may be the best option. Here, you can declare a GUI using a model that extends the SiAM-dp i/o model with graphical input/output elements. These controls can be backed with communicative functions and primitive tasks, thereby supporting semantics directly linked to the UI. The GUI requires a renderer to render the model. SiAM-dp includes an HTML5 input/output device that can render the interface into a browser window, making it very portable. If you need another output mechanism, you could write a custom renderer, though this is quite a bit of work to support all GUI elements and GUI update mechanisms.
Another alternative for implementing a GUI is to use an existing GUI or implement a new one (e.g. in Adobe Flash or XAML), and connect it to SiAM-dp via custom messages. The GUI would in that case simply be a new input/output device – see the corresponding FAQs and tutorials for implementing one. Since the UI is tailored to a special application, it may be most appropriate to use the CustomFormat input/output representation type to exchange messages between SiAM-dp and the GUI.← What are the options to implement a GUI for my dialogue application?