Shared Scripts, Data, Stimuli, Files, and Demos
Survbee template
AppleThe 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
Comments
No comments yetIf 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: "- I am 18 years old or older.
- I have read and understood all information listed in the information sheet.
- I agree to participate in the research and authorize the use of experimental and personal data obtained with it.
- I reserve the right to withdraw this consent without giving any reason.
- 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.