These pages will be used to explain the basic usage of the WASABI architecture in the context of other programs that might be interfaced with it via network. You may use the table of contents presented left to jump to a topic of interest.
If you still have questions after reading this, please take a look at the FAQ, first, or drop me a line.
How to start WASABI
There are two possible ways to start WASABI:
from inside QtCreator by pressing the play button, if you compiled from source, or
by double-clicking on the executable "WASABIGuiQt.exe" (under Win7, 64bit) inside the folder WASABIGuiQt5, when one of the installers was used to get the binaries.
Either way, in case of the current version 0.7.1 you will get the following three windows (on top of each other at first):
The main application window "WASABIQtWindow"
The OpenGL window "PADWindow"
The qwt-based rendering of the history in the "WASABIGuiQt" window
If the executable crashes or (more likely) you get a message window telling you that WASABI was
"Unable to load WASABI.ini, which should be in <some path>!"
then take care the file "WASABI.ini" and all those files recursively referenced by "WASABI.ini" are placed in that folder indicated by <some path>.
With a fresh install of v0.7.1 these files are: "WASABI.ini", "Becker-Asano.emo_dyn", "Becker-Asano.emo_pad", "fears-confirmed.se", "hope.se", "relief.se", "init.emo_dyn", and "init_emo_pad".
The GUI of WASABI
The graphical user interface of WASABI consists of the three windows:
The main application window WASABIQtWindow
The OpenGL window PADWindow
The qwt-based rendering of the history in the WASABIGuiQt window
The latter two are rather non-interactive and simply present the emotion dynamics in a three-dimensional (PADWindow based on OpenGL) and a timeline manner (WASABIGuiQt based on qwt; still under construction). The WASABIQtWindow is the main window, from where you can turn the other two windows on and off using the Windows drop-down menu at the top. (I am sorry m(_ _)m for the strange naming of the windows.)
You can use the mouse to turn the 3D view by pressing, holding, and dragging the left or right mouse button. Holding the left mouse button rotates around the screen x/y coordinates. When holding the right mouse button, moving the mouse left and right will rotate the cube along its own z axis, which is the dominance "D" axis Figure 2.
The program starts with the PAD space presented in a top-down view, see Chapter "Starting WASABI". Thus, in order to turn the cube so that it matches the one in Figure 2, press and hold the right mouse button and move a bit up and to the right.
Now, the vertical axis represents the Dominance axis (D), which features the smallest arrowhead. The horizontal axis with the long and thin arrowhead indicates the Arousal axis (A). Finally, the axis to the back of the screen with the wide but short arrowhead is the Pleasure axis (P).
The two differently sized circles around the white and blue dots indicate the activation and saturation thresholds of each primary emotion. In the example configuration presented in Figure 2 above you can tell that some primary emotion (i.e. surprised) is located at PAD (10, 80, +/-100) with a base intensity of 0.0, because its dot is blue and not white. The diameter of its lighter red, inner circle is also bigger than that of all other emotions meaning that its saturation threshold must be set to a bigger value that those of the other primary emotions. The activation threshold of this emotion, however, seems to be the same as that for all other emotions, because the dark red, outer circle has the same diameter for all of them.
Notably, the PAD space presented in Figure contains two primary emotions less than the one shown in the Figure 1 (Chapter "Starting WASABI"). In Figure 1, the primary emotion happy is represented four times in PAD space, but in Figure 2 the two locations PAD (50, 0, +/-100) are omitted. As you will see later, these changes can be achieved easily by editing the configuration files.
In the WASABIQtWindow under the Emotion / Mood tab you will find a check-box labeled XYZ in 3D (see Figure 3). After marking it the PADWindow will no longer present the PAD space but the dynamic space, which consists of Emotion (X), Mood (Y), and Boredom (Z). Looking at this space might be helpful when tuning the simulation parameters of the dynamics simulation explained below. Of course, you can turn the 3D view in the same way as described above.
Finally, you may safely close the PADWindow without terminating the simulation. If later you'd like to check the PAD space, you can use the drop-down menu of the WASABIQtWindow to show the PADWindow again.
Similarly, you can show and hide the Plot window entitled WASABIGuiQt.
The main window
This is the main window of WASABI, which lets you take control over the simulation parameters for each Attendee. For easy explanation, I divided it into three Section A, B, and C in Figure 4.
By default in version 0.7.1 WASABI starts with one Attendee, named Becker-Asano :), but you can change that easily by editing the configuration files. This Attendee's name is listed in the drop down menu in the upper right corner, see Figure 4. In this area you will also find two buttons labeled Add and Del. As you might guess, they are intended to let you add and delete Attendees, but as of now only the Add button is functional. After pressing it you will get these windows:
The Name of new Attendee will be the string that is presented in the drop down menu below Becker-Asano afterwards. The GlobalID is used as a unique identifier for network messages. Both values can be chosen freely, of course, but currently the uniqueness of neither of both strings is checked. So take care..
After you confirmed these to strings, a new Attendee will be listed in the drop down box to the left of part A. Also, a new white sphere in the PADWindow indicates this Attendee's emotion dynamics, see Figure 6.
Watching closely you can see that the new sphere is located a bit higher on the Pleasure dimension than the old one representing Becker-Asano. The reason is simply that two different configuration files are loaded, Becker-Asano.emo_dyn and init.emo_dyn. The latter is the default file for any newly created (Emotional) Attendee (EA). The former one is referenced in the main configuration file WASABI.ini to be used for the EA Becker-Asano. Learn more about these files below.
Depending on which EA you select in the drop down menu top-left, the debug output at the bottom will change accordingly, see Figure 7. In addition, all other values in the different tabs will reflect those of the selected EA.
Finally, the check-box to the right of Section A labeled Run lets you start and stop the simulation. For example, if you test some PAD settings (in the right part of Section B), then the simulation will automatically be stopped and you need to check the box to start it again.
The three different tabs Emotion / Mood, PAD / Affective States, and Network can be selected in Section B of the main window, cp. Figure 4 and the section below.
The bottom section of the WASABIQtWindow is reserved for contiously updated debug output, which at startup (of v0.7.1) is persenting the changing intensities of primary and secondary emotions once per second, see also Figure 7. This frequency or Sendrate of updating the emotions can be changed in the Network tab described below.
The three tabs of the main window
1. The Emotion / Mood tab
The probably most important tab, the Emotion / Mood tab, is split into a left and a right part.
Left part of the Emotion / Mood tab
Here all Parameters of WASABI's emotion dynamics can be checked and adjusted, if needed. As described in my diploma thesis (pp. 64ff), non-zero values of emotion and mood are driven back to zero by means of two independent forces Fx and Fy that are calculated according to the following equations:
F(t) = -d • x(t-1)
a(t) = F(t) / m
v(t) = a(t) • Δt + v(t-1)
s(t) = v(t) • Δt + s(t-1)
t being the time,
m the mass of the reference point, and
d the spring constant for
The parameters in the Emotion / Mood tab correspond to these equations in the following way:
Force in x (emo): The spring constant
dx of the Emotion axis x.
Force in x (mood): The spring constant
dy of the Mood axis y.
Slope (emo -> mood): The slope affecting the mood in relation to the actual value of emotion. The higher this value, the quicker the mood changes when positive or negative emotional valence is present.
Mass (of ref. point): The mass
m of the simulated reference point for the selected Attendee.
Update rate (Hz): The internal update rate in times per second (or Hertz). The frequency with which network messages are being send is independent of this value.
At startup, the configuration files are loaded and the values are parsed into internal data structures, which are presented here depending on which Attendee is selected top-right. For the time being, these values cannot be saved back the configuration files, though. So, once you found a working setting of values, you have to open the configuration files with a text editor and change the corresponding values therein.
Right part of the Emotion / Mood tab
This part is entitled Test controls, because the buttons and sliders let you test the emotion dynamics. In addition, by marking the check box XYZ in 3D you can change from PAD space to XYZ space (emotion, mood, boredom) to be presented in the PADWindow, as detailed in the section above.
By pressing one of the two impulse buttons a positive or negative impulse of value 50 is sent into the emotion dynamics. Pressing the RESET button resets both the emotion (X) and mood (Y) value as well as (unfortunately) also the dominance (D) value to zero. As described in my thesis, the dominance value is independent of the emotion dynamics, i.e. it is not calculated based on the x, y, and z values. Therefore, it can be changed simply by using the rightmost slider labeled D.
Attention: When moving any of the three sliders P, A, or D, in the Override PAD section, the simulation is automatically stopped, as indicated by the unchecked Run check box in the main window's upper right corner! You need to check this box again to continue the internal simulation.
These sliders let you try out different PAD vectors and how they change the emotions that are elicited together with their changing intensities. In the example presented in Figure 8 the sliders are used to temporarily set the vector to PAD = (-48, 42, -100) resulting in three emotions with positive intensities (see debug output at the bottom). After checking Run again, however, only the dominance value will stay at -100, but the pleasure and arousal values will be calculated according to the emotion dynamics, which in this example results in:
P = (x + y) / 2 = (0 + 0) / 2 = 0
A = abs(x) = abs(0) = 0
=> PAD = (0, 0, -100)
2. The PAD / Affective States tab
This tab contains list of all primary and secondary emotions that were loaded and instantiated from the configuration files, see Figure 10. The tree view to the right of this tab can be used to browse through and select one of the emotions. As long as no emotion is selected by means of a double click or by highlighting it and pressing the return key, the left part remains inactive (i.e. grayed out).