Shared Scripts, Data, Stimuli, Files, and Demos

Survbee template Run Experiment

Survbee template

Apple

The package includes nine most commonly used experiment template, namely informed consent, debrief sheet, fixation, image with time limit, image with a button, image with two buttons, two images with two buttons, image with two key responses and image with a Likert scale. Tutorial video: https://youtu.be/NPKjI5kbLeI

No comments yet
 




Comments

No comments yet

If you are a registered user and signed in, you can here copy this script and its stimuli to your own account, where you can edit it and change it in any way you want.

It is absolutely free to register (no credit card info asked!). You can then instantly copy this experiment with one click and edit it, change its accompanying texts, its landing page, stimuli, etc. Invite your colleagues, friends, or students to check out your experiment. There is no limit on how many people can do your experiment, even with a free account.

The catch? There is no catch! Just keep in mind that with a free account, you cannot collect data. For teaching that is usually not a problem. For research, prepaid data collection (unlimited subjects) starts as low as €10.00 for a 10-day period.

 
/****
                                    # This is a YAML comment, which is ignored completely 
name: Informed Consent              # It starts with # and runs to end of line (i.e., Python style)
description: Informed Consent       # With ${name} you can show the value of the function argument message
code: consent
data_object: 
  - 
    fontsize: 
      default: 70%
      label: "Please type in the font size"
      type: textarea
  - 
    title: 
      default: "INFORMED CONSENT STATEMENT"
      label: "Please type in the title"
      type: textarea
  - 
    content: 
      default: "This form is part of the written information you have received about the research project (project name) you are participating in. By signing this form, you declare that you have read and understood the participant information. Furthermore, you declare by signing that you agree with the procedure as described in the information letter. For further information about the experiment, you can contact the student researchers of this project, (name) (email) or the responsible researcher (name) (email). For any complaints about this investigation, please contact the member of the Ethics Committee, mention the contact details of the CE member who assessed the ethics report (name) (email)."
      label: "Please type in the content of the consent form"
      type: richtext
  - 
    condition: 
      default: "

  1. I am 18 years old or older. 
  2. I have read and understood all information listed in the information sheet. 
  3. I agree to participate in the research and authorize the use of experimental and personal data obtained with it. 
  4. I reserve the right to withdraw this consent without giving any reason. 
  5. I reserve the right to stop the experiment at any time I wish.

" label: "Please type in the conditions in the check box" type: richtext - check: default: "I agree to sign this consent form" label: "Please type in the content in the check box" type: textarea */ exports.consent = function (fontsize,title,content,condition,check) { main.style("font-size",fontsize); tle = addblock('center',3,80,10).text("

" + title + "

"); ctn = addblock('center',12,100,40).text(content); ctn.align("left"); cdn = addblock('center',45,100,40).text(condition); cdn.align("left"); slt = addblock('center',80,100,20).select(check,['No','Yes'],"informedConsent"); slt.await('button:click'); tle.clear(); ctn.clear(); cdn.clear(); slt.clear(); }; /**** # This is a YAML comment, which is ignored completely # It starts with # and runs to end of line (i.e., Python style) name: Debrief sheet code: debriefing help: A page with a debriefing explaining the purpose of the experiment description: Debriefing # With ${name} you can show the value of the function argument message data_object: - fontsize: default: 70% label: "Please type in the font size" type: textarea - title: default: Debriefing form label: "Please type in the title" type: textarea - content: default: "The study is about...   The hypotheses are ...   It is tested by ...   Thanks for your participation" label: "Please type in the content of the debriefing form" type: richtext */ exports.debriefing = function (fontsize,title,content) { main.style("font-size",fontsize); tle = addblock('center',5,80,10).text("

" + title + "

"); ctn = addblock('center',15,100,40).text(content); ctn.align("left"); btn = addblock('center',85,8,15,"white"); btn.button("OK"); btn.await('click'); btn.clear(); tle.clear(); ctn.clear(); }; /**** # This is a YAML comment, which is ignored completely # It starts with # and runs to end of line (i.e., Python style) name: Fixation code: fixation help: A cross/dot fixation description_in_package: A cross/dot fixation description: A ${type} fixation will be displayed data_object: - size: default: 100 label: Please type in the size of the fixation type: number - type: default: cross label: Please choose the type of the fixation (cross/dot) type: select options: cross,dot - timelimit: default: 1000 label: Number of milliseconds to wait type: number */ exports.fixation = function (size,type,timelimit) { if (type === "cross"){ text("+",size); await(timelimit); } else if (type === "dot") { text("ยท",size); await(timelimit); } clear(); }; /**** # This is a YAML comment, which is ignored completely # It starts with # and runs to end of line (i.e., Python style) name: Image with time limit code: imageWithLimit help: An image display in the center of te screen and will disapear after a specified time description_in_package: Diaplay an image with time limit # With ${name} you can show the value of the function argument message description: Show ${image} for ${timelimit} ms data_object: - image: default: image file name label: Image file name or (external) URL type: select_image - size: default: 100 label: Please type in the size of the image type: number - timelimit: default: 1000 label: Number of milliseconds to wait type: number */ exports.imageWithLimit = function (image,size,timelimit) { img = addblock('center','center',60,60); img.setimage(image,size); await(timelimit); img.hideimage(); }; /**** # This is a YAML comment, which is ignored completely # It starts with # and runs to end of line (i.e., Python style) name: Image with a button code: imageWithButton help: An image and a button display in the screen description_in_package: Display an image with a button below # With ${name} you can show the value of the function argument message description: Show ${image} and "${buttonText}" button data_object: - image: default: image file name label: Image file name or (external) URL type: select_image - size: default: 100 label: Please type in the size of the image type: number - buttonText: default: OK label: Text on the button type: textarea */ exports.imageWithButton = function (image,size,buttonText) { img = addblock('center','center',60,60); img.setimage(image,size); main.style("font-size","90%"); btn = addblock('center',75,20,20,"white"); btn.button(buttonText); btn.await('click'); img.hideimage(); btn.clear(); }; /**** # This is a YAML comment, which is ignored completely # It starts with # and runs to end of line (i.e., Python style) name: Image with two buttons code: imageWith2Buttons help: An image and two buttons display in the screen description_in_package: Display an image with two buttons below # With ${name} you can show the value of the function argument message description: Show ${image} with "${buttonText1}" and "${buttonText2}" buttons data_object: - image: default: image file name label: Image file name or (external) URL type: select_image - size: default: 100 label: Please type in the size of the image type: number - buttonText1: default: Yes label: Text on the button 1 type: textarea - buttonText2: default: No label: Text on the button 2 type: textarea */ exports.imageWith2Buttons = function (image,size,buttonText1,buttonText2) { img = addblock('center','center',60,60); img.setimage(image,size); main.style("font-size","90%"); btn1 = addblock(30,75,20,20,"white"); btn2 = addblock(50,75,20,20,"white"); btn1.button(buttonText1); btn2.button(buttonText2); waitfor { btn1.await('click'); } or { btn2.await('click'); } img.hideimage(); btn1.clear(); btn2.clear(); }; /**** # This is a YAML comment, which is ignored completely # It starts with # and runs to end of line (i.e., Python style) name: Two images with two buttons code: TwoimageWith2Buttons help: Two images and two buttons display in the screen description_in_package: Display two images with two buttons below # With ${name} you can show the value of the function argument message description: Show ${image1} and ${image2} with "${buttonText1}" and "${buttonText2}" buttons data_object: - image1: default: image file name label: Image file name or (external) URL 1 type: select_image - size1: default: 100 label: Please type in the size of the image 1 type: number - image2: default: image file name label: Image file name or (external) URL 2 type: select_image - size2: default: 100 label: Please type in the size of the image 2 type: number - buttonText1: default: Yes label: Text on the button 1 type: textarea - buttonText2: default: No label: Text on the button 2 type: textarea */ exports.TwoimageWith2Buttons = function (image1,size1,image2,size2,buttonText1,buttonText2) { img1 = addblock(0,'center',60,60); img2 = addblock(40,'center',60,60); img1.setimage(image1,size1); img2.setimage(image2,size2); main.style("font-size","90%"); btn1 = addblock(30,75,20,20,"white"); btn2 = addblock(50,75,20,20,"white"); btn1.button(buttonText1); btn2.button(buttonText2); waitfor { btn1.await('click'); } or { btn2.await('click'); } img1.hideimage(); img2.hideimage(); btn1.clear(); btn2.clear(); }; /**** # This is a YAML comment, which is ignored completely # It starts with # and runs to end of line (i.e., Python style) name: Image with two key responses code: imageWith2Keys help: Create a screen with an image in the center and awaiting for the keypress from two specified keys description_in_package: Image with Two Keyboard Responses # With ${name} you can show the value of the function argument message description: Show ${image} and wait for "${keyRes1}" or "${keyRes2}" response data_object: - image: default: image file name label: Image file name or (external) URL type: select_image - size: default: 100 label: Please type in the size of the image type: number - keyRes1: default: label: keyboard response 1 type: select options: a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,SPACE,ESCAPE,ENTER,LEFT_ARROW,UP_ARROW,RIGHT_ARROW,DOWN_ARROW,BACKSPACE,TAB,CLEAR,SHIFT,CTRL,ALT,META,PAUSE,CAPS_LOCK,PAGE_UP,PAGE_DOWN,END,HOME,INSERT,DELETE,HELP,LEFT_WINDOW,RIGHT_WINDOW,SELECT,NUMPAD_0,NUMPAD_1,NUMPAD_2,NUMPAD_3,NUMPAD_4,NUMPAD_5,NUMPAD_6,NUMPAD_7,NUMPAD_8,NUMPAD_9,NUMPAD_MULTIPLY,NUMPAD_PLUS,NUMPAD_ENTER,NUMPAD_MINUS,NUMPAD_PERIOD,NUMPAD_DIVIDE,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,NUM_LOCK,SCROLL_LOCK,UP_DPAD,DOWN_DPAD,LEFT_DPAD,RIGHT_DPAD,copyKey - keyRes2: default: label: keyboard response 2 type: select options: a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,SPACE,ESCAPE,ENTER,LEFT_ARROW,UP_ARROW,RIGHT_ARROW,DOWN_ARROW,BACKSPACE,TAB,CLEAR,SHIFT,CTRL,ALT,META,PAUSE,CAPS_LOCK,PAGE_UP,PAGE_DOWN,END,HOME,INSERT,DELETE,HELP,LEFT_WINDOW,RIGHT_WINDOW,SELECT,NUMPAD_0,NUMPAD_1,NUMPAD_2,NUMPAD_3,NUMPAD_4,NUMPAD_5,NUMPAD_6,NUMPAD_7,NUMPAD_8,NUMPAD_9,NUMPAD_MULTIPLY,NUMPAD_PLUS,NUMPAD_ENTER,NUMPAD_MINUS,NUMPAD_PERIOD,NUMPAD_DIVIDE,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,NUM_LOCK,SCROLL_LOCK,UP_DPAD,DOWN_DPAD,LEFT_DPAD,RIGHT_DPAD,copyKey - timelimit: default: label: Number of ms to wait for (optional) type: number */ exports.imageWith2Keys = function (image,size,keyRes1,keyRes2,timelimit) { img = addblock('center','center',60,60); img.setimage(image,size); waitfor { awaitkey(keyRes1); } or { awaitkey(keyRes2); } or { await(timelimit); } img.hideimage(); }; /**** # This is a YAML comment, which is ignored completely # It starts with # and runs to end of line (i.e., Python style) name: Image with a Likert scale code: imageWithLikert help: An image display in the center of the screen with a Likert Scale showed below description_in_package: Image with Likert Scale # With ${name} you can show the value of the function argument message description: Show ${image} and choose from ${numLikert} options data_object: - image: default: image file name label: Image file name or (external) URL type: select_image - size: default: 100 label: Please type in the size of the image type: number - likertquestion: default: label: Radio question type: textarea - numLikert: default: 5 label: Number of points type: number - likertoption1: default: label: The lable of the most left option (e.g. Very bad) type: textarea - likertoption2: default: label: The lable of the most right option (e.g. Very good) type: textarea - buttonText: default: OK label: Text on the button type: textarea - variable: default: a label: Save the result as a variable (optional) type: textarea */ exports.imageWithLikert = function (image,size,likertquestion,numLikert,likertoption1,likertoption2,buttonText,variable) { img = addblock('center',15,60,60); img.setimage(image,size); main.style("font-size","70%"); rdo = addblock('center',65,80,15); rdo.scale(likertquestion,likertoption1,likertoption2,variable,numLikert); main.style("font-size","90%"); btn = addblock('center',80,20,20,"white"); btn.button(buttonText); btn.await('click'); img.hideimage(); btn.clear(); rdo.clear(); clear(); };

Data inspection is forthcoming!

In the mean time, authors may download their own data and make it available as an Excel file. Check out the 'Stimuli and Files' tab.

Click on a category to view the stimuli and files

Related Experiments