SceneMaker / VisualSceneMaker

Visual SceneMaker is an authoring tool for creating interactive presentations aimed to non-programming experts. It supports the modeling of verbal and non-verbal behavior of Virtual Characters and robots. Therefore, it provides users with a graphical interface and a simple scripting language that allows them to create rich and compelling content.
http://scenemaker.dfki.de
Other
18 stars 11 forks source link

Studymaster web plugin for conduction "Wizard of Oz" studies. #254

Closed chiragbhuvaneshwara closed 2 years ago

chiragbhuvaneshwara commented 2 years ago

This Studymaster Web plugin provides VSM cmds that can be used to generate input fields and text information on a browser-based web GUI. The features of this plugin currently are:

  1. Non-blocking cmd to display information on the web GUI.
  2. Blocking cmd which also displays information but blocks VSM scene execution till the studymaster indicates otherwise.
  3. Blocking user input form with the following user input formats:
    • text field input
    • number input
    • radio
    • checkbox
    • slider Note: All of the above user inputs are posted to VSM in real-time.
  4. Developer tools
    • VSM variable list: Tracks the current status of variables defined in VSM as soon as they are updated.
    • Cmds Log: a log of all the cmds executed inside the studymaster with timestamps. This information can be downloaded for debugging purposes.

Known Issues:

  1. Despite implementing the "ping-pong" mechanism and setting the websocket timeout to infinity on the javalin server in the studymaster-web plugin, the connection sometimes disconnects. This occurs randomly and it is not clear how we can detect this.
  2. Some of the CSS can be updated to make sure that the logged information looks better in the developer tools.
  3. The automatic build test that Lenny configure fails on this branch. https://github.com/SceneMaker/VisualSceneMaker/actions/runs/2023285744
fnunnari commented 2 years ago

Can't compile to test it. Example error:

/Users/fanu01-admin/Documents/Code/VisualSceneMaker/VisualSceneMaker/src/main/java/de/dfki/vsm/xtension/voicerecognition/recognizers/SphinxVoiceRecognition.java:8: error: package de.dfki.stickman3D does not exist
import de.dfki.stickman3D.Stickman3D;

Can't find the "Stickman" classes. What is the relationship between the stickman and the Studymaster? @chiragbhuvaneshwara , check if in your local folder you have stickman classes in the build path.

chiragbhuvaneshwara commented 2 years ago

Hi @fnunnari , it seems like I had removed the stickman 2D library from git tracking while experimenting with stickman 3D. The whole stickman experiments are completely unrelated to studymaster web and I'll ensure that I work on such matters in a separate branch in future. For now, I've added Stickman 2D lib back into the libs and as you can see, the build check also passes. So you should be able to get studymaster-web working now.

Daksitha commented 2 years ago

Hi @chiragbhuvaneshwara, good job! I could build the project and run the studymasterweb application on my localhost. However, web client disconnect from the server after few interactions. I could not track down why this might be happening. My hint would be the timeout value in TCP connection set by the server interfering. Maybe you could do a quick tcpdump to check what might be causing this issue

chiragbhuvaneshwara commented 2 years ago

Hi @Daksitha , thanks for the review. There was a small error occuring in the blocking mechanism which was causing the server to prematurely force close the websocket connection. I have solved it now and it should ideally perform better. Please test it out again and let me know.

fnunnari commented 2 years ago

Hi @chiragbhuvaneshwara . It compiles and works. No disconnections from my side, but I didn't run "long" tests. After how many seconds/minutes do you observe disconnections?

For the rest, I updated the example project. I removed a node and updated docs.

There is a problem when closing / re-opening the web pages:

In short: the "caching" mechanism doesn't work if all of the connections are closed.

Option 1: debug Option 2: if a version is needed quickly, merge this and open an issue describing the problem.

fnunnari commented 2 years ago

@chiragbhuvaneshwara What I really don't like is value= as parameter name for both INFORM and PROCEED. I would prefer text= instead. Not blocking the review, but would make things more clear.

Daksitha commented 2 years ago

Works fine when you close and restart the web browser. However, I have notices

Hi @chiragbhuvaneshwara . It compiles and works. No disconnections from my side, but I didn't run "long" tests. After how many seconds/minutes do you observe disconnections?

For the rest, I updated the example project. I removed a node and updated docs.

There is a problem when closing / re-opening the web pages:

  • Starting condition: project running, waiting on a form or proceed button, one web page open.
  • Works OK: open a new web page, close the old one, click the form or proceed button.
  • Doesn't work: close all web pages, connect to localhost:8080 from an empty browser --> no connection / ray page is shown.

In short: the "caching" mechanism doesn't work if all of the connections are closed.

Option 1: debug Option 2: if a version is needed quickly, merge this and open an issue describing the problem.

Hi Chirag, I checked the closing and opening issue of the browser. Now it seems to work fine. One thing I realize the stat variable values. When I close, it tends to store the last entered values for the variables in VSM. When I open a new browser, the variables won't be reset to NULL in VSM though they are default values in the new instance of the Study master web browser.

It works fine as they are overwritten by the new entries from the new instance. It just I wanted to highlight the status as it is. Is that a desired effect?

chiragbhuvaneshwara commented 2 years ago

Works fine when you close and restart the web browser. However, I have notices

Hi @chiragbhuvaneshwara . It compiles and works. No disconnections from my side, but I didn't run "long" tests. After how many seconds/minutes do you observe disconnections? For the rest, I updated the example project. I removed a node and updated docs. There is a problem when closing / re-opening the web pages:

  • Starting condition: project running, waiting on a form or proceed button, one web page open.
  • Works OK: open a new web page, close the old one, click the form or proceed button.
  • Doesn't work: close all web pages, connect to localhost:8080 from an empty browser --> no connection / ray page is shown.

In short: the "caching" mechanism doesn't work if all of the connections are closed. Option 1: debug Option 2: if a version is needed quickly, merge this and open an issue describing the problem.

Hi Chirag, I checked the closing and opening issue of the browser. Now it seems to work fine. One thing I realize the stat variable values. When I close, it tends to store the last entered values for the variables in VSM. When I open a new browser, the variables won't be reset to NULL in VSM though they are default values in the new instance of the Study master web browser.

It works fine as they are overwritten by the new entries from the new instance. It just I wanted to highlight the status as it is. Is that a desired effect?

Thanks @Daksitha ! I checked it as well and it works okay for now as the values of the variables will be overwritten on every change in an input field. So a new form's inputs will always overwrite any saved values on the VSM side. However, I don't know if this will be an issue for actual users. @fnunnari What do you think?

chiragbhuvaneshwara commented 2 years ago

@chiragbhuvaneshwara What I really don't like is value= as parameter name for both INFORM and PROCEED. I would prefer text= instead. Not blocking the review, but would make things more clear.

@fnunnari I just went along with the cmd and params that were suggested in the design phase. I can change this now though. However, I would prefer "msg" or "message".

chiragbhuvaneshwara commented 2 years ago

@chiragbhuvaneshwara What I really don't like is value= as parameter name for both INFORM and PROCEED. I would prefer text= instead. Not blocking the review, but would make things more clear.

@fnunnari I just went along with the cmd and params that were suggested in the design phase. I can change this now though. However, I would prefer "msg" or "message".

Well....thanks @Daksitha ! I guess I can start an issue for this. @fnunnari ?