===== Online Experiment Management ===== Development & Hosting of Online Experiments in the TRR 265 \\ ==== Overview ==== The development of online experiments is sometimes linked to specific hosting systems and vice versa. For instance, the Python-Library [[http://www.google.com|PsychoPy]] can only be used together with the hosting platform [[http://www.google.com|Pavlovia]], and the hosting platform [[http://www.google.com|Openlab]] accepts experiments built with the development tool [[http://www.google.com|LabJS]] only. The table below contains information about such dependencies. \\ ==== Hosting Platforms ==== | ^ Pros ^ Cons ^ ^ Expfactory \\ [[https://www.expfactory.org]] | • Supports tests based on [[https://www.jspsych.org/|jsPsych]] and [[https://lab.js.org/|LabJS]] \\ • Hosted within TUD \\ • Free & Open-source \\ • Comes with a large library of tasks one can use | • Needs INF project to set up a new task | ^ Neurotest/ Openlab/ RDoC \\ [[https://lab.js.org/]] | • Free of Charge \\ • Hosting within TRR possible (hosted by TUD) \\ • Comes with an easy to use experiment builder ([[https://lab.js.org/|LabJS]]) | • Accepts experiments built with [[https://lab.js.org/|LabJS]] only, but adding custom JavaScript code is possible (should be tested) | ^ Pavlovia \\ [[https://pavlovia.org/]] | • Comes with an easy to use experiment builder [[https://www.psychopy.org/|PsychoPy]] \\ • Hosts any JavaScript file (according to them, untested by us) \\ - [[https://discourse.psychopy.org/t/use-javascript-task-on-pavlovia/18117|JavaScript on Pavlovia discourse]] | • Not for free (£0.24 per participant + £1,800 per year) \\ • Hosting outside TRR | ^ Jatos \\ [[https://www.jatos.org]] | • Free and open source \\ • Can host any JavaScript file \\ • Hosting within TRR possible (currently hosted in Berlin by BCCN) \\ - [[https://www.jatos.org/JATOS-on-a-server.html]] \\ • Easy to set up tasks: Just add a few lines of code to JavaScript file \\ - How to: [[https://www.jatos.org/Write-your-own-Study-Basics-and-Beyond.html|Tutorial]] \\ - Example: [[https://github.com/agschlagenhauf/Reduced_SR_in_AUD/blob/Experiment/jatos_win_java/study_assets_root/2-Step-Task/sketch.js|Example on Git]] \\ • It might support [[https://www.psychopy.org/|PsychoPy]] (possibly an alternative to [[https://pavlovia.org/|Pavlovia]])| • Likely JavaScript programming skills required \\ • Supports [[https://lab.js.org/|LabJS]], confer [[https://www.jatos.org/labjs-and-JATOS.html]] \\ • Adaption to to [[https://pavlovia.org/|Pavlovia]] not out of the box | ^ Labvanced \\ [[https://www.labvanced.com/]] | • Free and Open-source | • No experience gathered yet | \\ ==== Development Tools ==== | ^ General Information ^ Hosting ^ ^ PsychoPy \\ [[https://www.psychopy.org/|PsychoPy]] | • Python library & Standalone version ([[https://www.psychopy.org/download.html|for Windows]]) with a drag-and-drop user interface \\ • Fast to use and implement \\ • Possibly restricted in task structure, problem for complex tasks \\ • Restricted in Python packages that can be used, general python code can cause problems \\ • JavaScript translation appears implemented, did not really work yet though | • Hosting is coupled to [[https://pavlovia.org/|Pavlovia]] (but which works effortlessly) \\ • Open question whether it can be used without Pavlovia for online hosting | ^ JavaScript (plain) \\ [[https://www.javascript.com/]] | • Requires programming knowledge \\ • Slower to implement \\ • Can deal with any task structure, important especially for more complex sequential decision tasks | • Native to general server architectures \\ • Can therefore be hosted on [[https://www.expfactory.org|Expfactory]] and [[https://www.jatos.org|Jatos]] | ^ PsychoJS \\ [[https://github.com/psychopy/psychojs]] | • JavaScript partner to [[https://www.psychopy.org/|PsychoPy]] \\ • Fast and easy to implement using Python builder \\ • Possibly restricted for task structures \\ • Is very much under development yet though | • Theoretically everywhere, however, see PsychoPy hosting comments | ^ LabJS \\ [[https://lab.js.org/]] | • Is a “what you see is what you get” online experiment builder running in a browser \\ • Very fast and easy drag and drop builder \\ • Setting up complex tasks can be difficult or impossible \\ • Allows for adding custom JavaScript code, which may solve the restriction on tasks \\ • Close contact to developers, quick support | • Hosting is coupled to [[https://lab.js.org/|Neurotest/ Openlab]] \\ • Can be exported for [[https://www.expfactory.org|Expfactory]] and possibly [[https://pavlovia.org/|Pavlovia]] \\ - [[https://pavlovia.org/docs/experiments/create-labjs]] | ^ Godot \\ [[https://godotengine.org/]] | • Powerful 2D & 3D Game engine \\ • Standalone tool for any operating system \\ • Uses a “what you see is what you get” user interface combined with a scripting language called GDScript (similar to Python) \\ • Excellent exports to HTML5/ JavaScript \\ • Export to Phones possible | • Can be hosted on any platform that accepts JavaScript files | \\ ==== Experiments in the TRR 265 ==== ^ Online Experiment Name ^ Hosting Platfom ^ Development Tool ^ Project ID ^ Comments ^ Contact ^ | Value Based Decision Making (VBDM) | Expfactory | JavaScript | S01/B03/B09 | hosted in Dresden | willi.hieke@tu-dresden.de | | Action-Sequence-Task (AST) | Expfactory | LabJS | B09 | hosted in Dresden | sascha.froelich@tu-dresden.de | | Space-Adeventure-Task (SAT) | Expfactory | JavaScript | B09 | hosted in Dresden | sophia-helen.sass@tu-dresden.de | | Two-Galaxies-Task (TGT) | Expfactory | JavaScript | B09 | hosted in Dresden | willi.hieke@tu-dresden.de | | Pavlovian to Instrumental Transter (PIT) | - - - | PsychoPy | B03 | used offline up to now | hao.chen@tu-dresden.de | | Counting-Stroop | - - - | PsychoPy | B03 | used offline up to now | | | Simon Go-Nogo Task | - - - | - - - | B03 | used offline up to now | | | Spatial Working Memory Task (SWM) | Expfactory | LabJS | B09 | - - - | | | Identical Pictures Task (IDP) | Expfactory | LabJS | B09 | - - - | | | Raven Task | Expfactory | LabJS | B09 | - - - | | | Reduced Successor Representation Task | JATOS | JavaScript | B01 | work in progress | | | Delay Task | RDoC/Openlab | JavaScript | C01 | hosted in Mannheim | | | Dot-Probe Task (Nicotine) | RDoC/Openlab | JavaScript | C01 | hosted in Mannheim | | | Card Sorting Task | RDoC/Openlab | JavaScript | C01 | hosted in Mannheim | | | Continuos Performance Task | RDoC/Openlab | JavaScript | C01 | hosted in Mannheim | | | Modified Stroop Task (Nicotine) | RDoC/Openlab | JavaScript | C01 | hosted in Mannheim, work in progress | | | Cue Reactivity (Nicotine) | RDoC/Openlab | JavaScript | C01 | hosted in Mannheim, work in progress | |