<?xml version="1.0" ?>
<PsychoPy2experiment encoding="utf-8" version="3.0.1">
  <Settings>
    <Param name="Completed URL" updates="None" val="" valType="str"/>
    <Param name="Data filename" updates="None" val="'data' + os.sep + '%s_%s' % (expInfo['participant'], expInfo['date'])" valType="code"/>
    <Param name="Enable Escape" updates="None" val="True" valType="bool"/>
    <Param name="Experiment info" updates="None" val="{u'session': u'001', u'participant': u''}" valType="code"/>
    <Param name="Force stereo" updates="None" val="True" valType="bool"/>
    <Param name="Full-screen window" updates="None" val="False" valType="bool"/>
    <Param name="HTML path" updates="None" val="html" valType="str"/>
    <Param name="Incomplete URL" updates="None" val="" valType="str"/>
    <Param name="JS libs" updates="None" val="packaged" valType="str"/>
    <Param name="Monitor" updates="None" val="testMonitor" valType="str"/>
    <Param name="Save csv file" updates="None" val="False" valType="bool"/>
    <Param name="Save excel file" updates="None" val="False" valType="bool"/>
    <Param name="Save log file" updates="None" val="True" valType="bool"/>
    <Param name="Save psydat file" updates="None" val="True" valType="bool"/>
    <Param name="Save wide csv file" updates="None" val="True" valType="bool"/>
    <Param name="Saved data folder" updates="None" val="" valType="code"/>
    <Param name="Screen" updates="None" val="1" valType="num"/>
    <Param name="Show info dlg" updates="None" val="True" valType="bool"/>
    <Param name="Show mouse" updates="None" val="False" valType="bool"/>
    <Param name="Units" updates="None" val="height" valType="str"/>
    <Param name="Use version" updates="None" val="" valType="str"/>
    <Param name="Window size (pixels)" updates="None" val="[1040, 800]" valType="code"/>
    <Param name="blendMode" updates="None" val="avg" valType="str"/>
    <Param name="color" updates="None" val="$[0,0,0]" valType="str"/>
    <Param name="colorSpace" updates="None" val="rgb" valType="str"/>
    <Param name="expName" updates="None" val="MentalRot" valType="str"/>
    <Param name="exportHTML" updates="None" val="on Sync" valType="str"/>
    <Param name="logging level" updates="None" val="exp" valType="code"/>
  </Settings>
  <Routines>
    <Routine name="plot_data">
      <CodeComponent name="plot_data_array">
        <Param name="Begin Experiment" updates="constant" val="from matplotlib import pyplot&amp;#10;import pandas as pd" valType="extendedCode"/>
        <Param name="Begin JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin Routine" updates="constant" val="def plotYX(yaxis, xaxis, description=''):&amp;#10;    pyplot.grid(True)&amp;#10;    pyplot.title(description)&amp;#10;    pyplot.xlabel('Angle')&amp;#10;    pyplot.ylabel('Response time (s)')&amp;#10;    pyplot.xlim([0, 315])&amp;#10;    #slope,inter = np.polyfit(xaxis[:5],yaxis[:5],1)&amp;#10;    pyplot.plot(xaxis, yaxis) #, xaxis[:5], np.array(xaxis[:5]) * slope + inter)&amp;#10;    pyplot.draw()&amp;#10;    pyplot.show()&amp;#10;&amp;#10;filename = 'mental_rotation_data.csv'&amp;#10;with open(filename, 'wb') as fd:&amp;#10;    fd.write(data_string)&amp;#10;&amp;#10;data = pd.read_csv(filename)&amp;#10;data = data[data['rt'] &lt; 4]  # trim RT at 4 sec&amp;#10;mrt = data.loc[:,'rt']&amp;#10;correct = data.loc[:, 'corr']&amp;#10;angle = data.loc[:, 'angle']&amp;#10;&amp;#10;dfsum = data.groupby('angle', as_index=False).mean()&amp;#10;m = dfsum.loc[:, 'rt']&amp;#10;a = dfsum.loc[:, 'angle']&amp;#10;&amp;#10;scored_data = zip(a, m)&amp;#10;print('average time (sec) at each rotation:')&amp;#10;print(&quot;  0  45  90  135 180 225 270 315&quot;)&amp;#10;print(&quot;--&gt; %s &lt;--&quot; % repr([round(i,3) for i in m]).strip('[]').replace(',', '  '))&amp;#10;print(&quot;\n% correct        :&quot;, 100 * correct.mean())&amp;#10;print(&quot;overall speed (s):&quot;, mrt.mean())&amp;#10;&amp;#10;plotYX(m, a)&amp;#10;&amp;#10;with open(filename, 'a+b') as fd:&amp;#10;    fd.write('\n\n' + repr(scored_data))" valType="extendedCode"/>
        <Param name="Code Type" updates="None" val="Py" valType="str"/>
        <Param name="Each Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="name" updates="None" val="plot_data_array" valType="code"/>
      </CodeComponent>
    </Routine>
    <Routine name="pause">
      <TextComponent name="mini_pause">
        <Param name="color" updates="constant" val="white" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="" valType="str"/>
        <Param name="font" updates="constant" val="Arial" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="0.1" valType="code"/>
        <Param name="name" updates="None" val="mini_pause" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[0, 0]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val=".5" valType="code"/>
        <Param name="text" updates="constant" val=" " valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val="" valType="code"/>
      </TextComponent>
      <CodeComponent name="code_4">
        <Param name="Begin Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin Routine" updates="constant" val="if trials.thisN == 4 and expInfo['participant'] == 'JRG':    &amp;#10;    trials.finished = True" valType="extendedCode"/>
        <Param name="Code Type" updates="None" val="Py" valType="str"/>
        <Param name="Each Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="name" updates="None" val="code_4" valType="code"/>
      </CodeComponent>
    </Routine>
    <Routine name="Intructions_1">
      <TextComponent name="text_4">
        <Param name="color" updates="constant" val="black" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="" valType="str"/>
        <Param name="font" updates="constant" val="Arial" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="0.04" valType="code"/>
        <Param name="name" updates="None" val="text_4" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[0, 0]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="text" updates="constant" val="Welcome. You will see two letters on the screen that have been rotated. For each pair of letters, indicate if they are mirror images of each other when they two letters are in their normal upright position. (Ignore the rotations.) &amp;#10; &amp;#10;Press 'm' if they are mirror images of each other. Press 'n' if they are the same (not mirror images).   &amp;#10; &amp;#10;Press the 'm' to continue." valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val=".8" valType="code"/>
      </TextComponent>
      <KeyboardComponent name="key_resp_4">
        <Param name="allowedKeys" updates="constant" val="'m'" valType="code"/>
        <Param name="correctAns" updates="constant" val="" valType="str"/>
        <Param name="discard previous" updates="constant" val="True" valType="bool"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="forceEndRoutine" updates="constant" val="True" valType="bool"/>
        <Param name="name" updates="None" val="key_resp_4" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="store" updates="constant" val="last key" valType="str"/>
        <Param name="storeCorrect" updates="constant" val="False" valType="bool"/>
        <Param name="syncScreenRefresh" updates="constant" val="True" valType="bool"/>
      </KeyboardComponent>
    </Routine>
    <Routine name="Intructions_2">
      <KeyboardComponent name="key_resp_6">
        <Param name="allowedKeys" updates="constant" val="'n'" valType="code"/>
        <Param name="correctAns" updates="constant" val="$same" valType="str"/>
        <Param name="discard previous" updates="constant" val="True" valType="bool"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="forceEndRoutine" updates="constant" val="True" valType="bool"/>
        <Param name="name" updates="None" val="key_resp_6" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="store" updates="constant" val="nothing" valType="str"/>
        <Param name="storeCorrect" updates="constant" val="False" valType="bool"/>
        <Param name="syncScreenRefresh" updates="constant" val="True" valType="bool"/>
      </KeyboardComponent>
      <ImageComponent name="image_L_3">
        <Param name="color" updates="constant" val="$[1,1,1]" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flipHoriz" updates="constant" val="False" valType="bool"/>
        <Param name="flipVert" updates="constant" val="False" valType="bool"/>
        <Param name="image" updates="set every repeat" val="FR.png" valType="str"/>
        <Param name="interpolate" updates="constant" val="linear" valType="str"/>
        <Param name="mask" updates="constant" val="raisedCos" valType="str"/>
        <Param name="name" updates="constant" val="image_L_3" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="set every repeat" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[-.25, .2]" valType="code"/>
        <Param name="size" updates="constant" val="[.3,.3]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="texture resolution" updates="constant" val="128" valType="code"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
      </ImageComponent>
      <ImageComponent name="image_R_3">
        <Param name="color" updates="constant" val="$[1,1,1]" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flipHoriz" updates="constant" val="False" valType="bool"/>
        <Param name="flipVert" updates="constant" val="False" valType="bool"/>
        <Param name="image" updates="set every repeat" val="F.png" valType="str"/>
        <Param name="interpolate" updates="constant" val="linear" valType="str"/>
        <Param name="mask" updates="constant" val="raisedCos" valType="str"/>
        <Param name="name" updates="constant" val="image_R_3" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="set every repeat" val="-90" valType="code"/>
        <Param name="pos" updates="constant" val="[0.25, .2]" valType="code"/>
        <Param name="size" updates="constant" val="[.3,.3]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="texture resolution" updates="constant" val="128" valType="code"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
      </ImageComponent>
      <TextComponent name="text_5">
        <Param name="color" updates="constant" val="black" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="" valType="str"/>
        <Param name="font" updates="constant" val="Arial" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="0.05" valType="code"/>
        <Param name="name" updates="None" val="text_5" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[0, -.2]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="text" updates="constant" val="Here, the letter on the right is a mirror image of the letter on the left. They would still be different after mentally rotating them to line up. So press 'm' (different). If they are the same, you would press 'n'. &amp;#10; &amp;#10;Try to respond as accurately as you can. Also try to be fast, but emphasize being accurate. Press 'n' to start." valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val=".8" valType="code"/>
      </TextComponent>
    </Routine>
    <Routine name="Practice">
      <CodeComponent name="code_2">
        <Param name="Begin Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin Routine" updates="constant" val="if same == 'n':&amp;#10;    limage = 'F.png'&amp;#10;    rimage = 'FR.png'&amp;#10;    if random() &gt; .5:&amp;#10;       rimage, limage = limage, rimage&amp;#10;else:&amp;#10;    limage = rimage = 'F.png'&amp;#10;    if random() &gt; .5:&amp;#10;        limage = rimage = 'FR.png'" valType="extendedCode"/>
        <Param name="Code Type" updates="None" val="Py" valType="str"/>
        <Param name="Each Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="name" updates="None" val="code_2" valType="code"/>
      </CodeComponent>
      <KeyboardComponent name="key_resp_5">
        <Param name="allowedKeys" updates="constant" val="'n','m'" valType="code"/>
        <Param name="correctAns" updates="constant" val="$same" valType="str"/>
        <Param name="discard previous" updates="constant" val="True" valType="bool"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="forceEndRoutine" updates="constant" val="True" valType="bool"/>
        <Param name="name" updates="None" val="key_resp_5" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="store" updates="constant" val="last key" valType="str"/>
        <Param name="storeCorrect" updates="constant" val="True" valType="bool"/>
        <Param name="syncScreenRefresh" updates="constant" val="True" valType="bool"/>
      </KeyboardComponent>
      <ImageComponent name="image_L_2">
        <Param name="color" updates="constant" val="$[1,1,1]" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flipHoriz" updates="constant" val="False" valType="bool"/>
        <Param name="flipVert" updates="constant" val="False" valType="bool"/>
        <Param name="image" updates="set every repeat" val="$limage" valType="str"/>
        <Param name="interpolate" updates="constant" val="linear" valType="str"/>
        <Param name="mask" updates="constant" val="raisedCos" valType="str"/>
        <Param name="name" updates="constant" val="image_L_2" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="set every repeat" val="leftori" valType="code"/>
        <Param name="pos" updates="constant" val="[-.25, 0]" valType="code"/>
        <Param name="size" updates="constant" val="[.3,.3]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="texture resolution" updates="constant" val="128" valType="code"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
      </ImageComponent>
      <ImageComponent name="image_R_2">
        <Param name="color" updates="constant" val="$[1,1,1]" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flipHoriz" updates="constant" val="False" valType="bool"/>
        <Param name="flipVert" updates="constant" val="False" valType="bool"/>
        <Param name="image" updates="set every repeat" val="$rimage" valType="str"/>
        <Param name="interpolate" updates="constant" val="linear" valType="str"/>
        <Param name="mask" updates="constant" val="raisedCos" valType="str"/>
        <Param name="name" updates="constant" val="image_R_2" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="set every repeat" val="rightori" valType="code"/>
        <Param name="pos" updates="constant" val="[0.25, 0]" valType="code"/>
        <Param name="size" updates="constant" val="[.3,.3]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="texture resolution" updates="constant" val="128" valType="code"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
      </ImageComponent>
      <TextComponent name="text_2">
        <Param name="color" updates="constant" val="black" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="" valType="str"/>
        <Param name="font" updates="constant" val="Arial" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="0.03" valType="code"/>
        <Param name="name" updates="None" val="text_2" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[0, -.3]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="text" updates="constant" val="'m' if mirror images of each other &amp;#10;'n' if both are the same" valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val="" valType="code"/>
      </TextComponent>
    </Routine>
    <Routine name="the_end">
      <TextComponent name="text_3">
        <Param name="color" updates="constant" val="black" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="" valType="str"/>
        <Param name="font" updates="constant" val="Arial" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="0.05" valType="code"/>
        <Param name="name" updates="None" val="text_3" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[0, 0]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="text" updates="constant" val="The end. &amp;#10; &amp;#10;Press space to see your data." valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val="" valType="code"/>
      </TextComponent>
      <KeyboardComponent name="key_resp_2">
        <Param name="allowedKeys" updates="constant" val="'space'" valType="code"/>
        <Param name="correctAns" updates="constant" val="" valType="str"/>
        <Param name="discard previous" updates="constant" val="True" valType="bool"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="forceEndRoutine" updates="constant" val="True" valType="bool"/>
        <Param name="name" updates="None" val="key_resp_2" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="store" updates="constant" val="nothing" valType="str"/>
        <Param name="storeCorrect" updates="constant" val="False" valType="bool"/>
        <Param name="syncScreenRefresh" updates="constant" val="True" valType="bool"/>
      </KeyboardComponent>
    </Routine>
    <Routine name="Trial">
      <CodeComponent name="code">
        <Param name="Begin Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin Routine" updates="constant" val="if same == 'n':&amp;#10;    limage = 'F.png'&amp;#10;    rimage = 'FR.png'&amp;#10;    if random() &gt; .5:&amp;#10;       rimage, limage = limage, rimage&amp;#10;else:&amp;#10;    limage = rimage = 'F.png'&amp;#10;    if random() &gt; .5:&amp;#10;        limage = rimage = 'FR.png'" valType="extendedCode"/>
        <Param name="Code Type" updates="None" val="Py" valType="str"/>
        <Param name="Each Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="name" updates="None" val="code" valType="code"/>
      </CodeComponent>
      <KeyboardComponent name="Response">
        <Param name="allowedKeys" updates="constant" val="'n','m'" valType="code"/>
        <Param name="correctAns" updates="constant" val="('n','m')[$same=='n']" valType="str"/>
        <Param name="discard previous" updates="constant" val="True" valType="bool"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="forceEndRoutine" updates="constant" val="True" valType="bool"/>
        <Param name="name" updates="None" val="Response" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="store" updates="constant" val="last key" valType="str"/>
        <Param name="storeCorrect" updates="constant" val="True" valType="bool"/>
        <Param name="syncScreenRefresh" updates="constant" val="True" valType="bool"/>
      </KeyboardComponent>
      <ImageComponent name="image_L">
        <Param name="color" updates="constant" val="$[1,1,1]" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flipHoriz" updates="constant" val="False" valType="bool"/>
        <Param name="flipVert" updates="constant" val="False" valType="bool"/>
        <Param name="image" updates="set every repeat" val="$limage" valType="str"/>
        <Param name="interpolate" updates="constant" val="linear" valType="str"/>
        <Param name="mask" updates="constant" val="raisedCos" valType="str"/>
        <Param name="name" updates="constant" val="image_L" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="set every repeat" val="leftori" valType="code"/>
        <Param name="pos" updates="constant" val="[-.25, 0]" valType="code"/>
        <Param name="size" updates="constant" val="[.3,.3]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="texture resolution" updates="constant" val="128" valType="code"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
      </ImageComponent>
      <ImageComponent name="image_R">
        <Param name="color" updates="constant" val="$[1,1,1]" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flipHoriz" updates="constant" val="False" valType="bool"/>
        <Param name="flipVert" updates="constant" val="False" valType="bool"/>
        <Param name="image" updates="set every repeat" val="$rimage" valType="str"/>
        <Param name="interpolate" updates="constant" val="linear" valType="str"/>
        <Param name="mask" updates="constant" val="raisedCos" valType="str"/>
        <Param name="name" updates="constant" val="image_R" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="set every repeat" val="rightori" valType="code"/>
        <Param name="pos" updates="constant" val="[0.25, 0]" valType="code"/>
        <Param name="size" updates="constant" val="[.3,.3]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="texture resolution" updates="constant" val="128" valType="code"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
      </ImageComponent>
      <TextComponent name="text">
        <Param name="color" updates="constant" val="black" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="" valType="str"/>
        <Param name="font" updates="constant" val="Arial" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="0.03" valType="code"/>
        <Param name="name" updates="None" val="text" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[0, -.3]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="text" updates="constant" val="'m' for &quot;different&quot; &amp;#10;'n' for &quot;same&quot;" valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val="" valType="code"/>
      </TextComponent>
      <CodeComponent name="add_data">
        <Param name="Begin Experiment" updates="constant" val="data_string = 'angle,rt,corr\n'" valType="extendedCode"/>
        <Param name="Begin JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="Code Type" updates="None" val="Py" valType="str"/>
        <Param name="Each Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Routine" updates="constant" val="data_string += '%d,%.3f,%d\n' % (abs(angle), Response.rt, Response.corr)" valType="extendedCode"/>
        <Param name="name" updates="None" val="add_data" valType="code"/>
      </CodeComponent>
      <TextComponent name="trial_count">
        <Param name="color" updates="constant" val="black" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="" valType="str"/>
        <Param name="font" updates="constant" val="Arial" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="0.03" valType="code"/>
        <Param name="name" updates="None" val="trial_count" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[.4, -.4]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="text" updates="set every repeat" val="$trials.thisN" valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val="" valType="code"/>
      </TextComponent>
    </Routine>
    <Routine name="pause_start">
      <TextComponent name="mini_pause_2">
        <Param name="color" updates="constant" val="white" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="" valType="str"/>
        <Param name="font" updates="constant" val="Arial" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="0.05" valType="code"/>
        <Param name="name" updates="None" val="mini_pause_2" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[0, 0]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="1.5" valType="code"/>
        <Param name="text" updates="constant" val=" +" valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val="" valType="code"/>
      </TextComponent>
    </Routine>
    <Routine name="licence">
      <TextComponent name="licence_info">
        <Param name="color" updates="constant" val="white" valType="str"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="" valType="str"/>
        <Param name="font" updates="constant" val="Arial" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="0.1" valType="code"/>
        <Param name="name" updates="None" val="licence_info" valType="code"/>
        <Param name="opacity" updates="constant" val="1" valType="code"/>
        <Param name="ori" updates="constant" val="0" valType="code"/>
        <Param name="pos" updates="constant" val="[0, 0]" valType="code"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="1.0" valType="code"/>
        <Param name="text" updates="constant" val="AUTHORS: Jeremy R. Gray &amp; Nathaniel R. Pasmanter &amp;#10;CONTACT: jrgray@gmail.com &amp;#10; &amp;#10;COPYRIGHT (c) 2013 MICHIGAN STATE UNIVERSITY BOARD OF TRUSTEES &amp;#10;ALL RIGHTS RESERVED &amp;#10; &amp;#10;PERMISSION IS GRANTED TO USE, COPY, CREATE DERIVATIVE WORKS AND REDISTRIBUTE &amp;#10;THIS SOFTWARE AND SUCH DERIVATIVE WORKS FOR ANY PURPOSE, SO LONG AS NO FEE IS &amp;#10;CHARGED, AND SO LONG AS THE AUTHORSHIP AND COPYRIGHT NOTICE ABOVE, THIS GRANT &amp;#10;OF PERMISSION, AND THE DISCLAIMER BELOW APPEAR IN ALL COPIES MADE; AND SO LONG &amp;#10;AS THE NAME OF MICHIGAN STATE UNIVERSITY IS NOT USED IN ANY ADVERTISING OR &amp;#10;PUBLICITY PERTAINING TO THE USE OR DISTRIBUTION OF THIS SOFTWARE WITHOUT &amp;#10;SPECIFIC, WRITTEN PRIOR AUTHORIZATION. &amp;#10; &amp;#10;THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION FROM MICHIGAN STATE &amp;#10;UNIVERSITY AS TO ITS FITNESS FOR ANY PURPOSE, AND WITHOUT WARRANTY BY MICHIGAN &amp;#10;STATE UNIVERSITY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT &amp;#10;LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A &amp;#10;PARTICULAR PURPOSE. THE MICHIGAN STATE UNIVERSITY BOARD OF TRUSTEES SHALL NOT &amp;#10;BE LIABLE FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL, OR &amp;#10;CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING OUT OF OR IN &amp;#10;CONNECTION WITH THE USE OF THE SOFTWARE, EVEN IF IT HAS BEEN OR IS HEREAFTER &amp;#10;ADVISED OF THE POSSIBILITY OF SUCH DAMAGES." valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val="" valType="code"/>
      </TextComponent>
    </Routine>
  </Routines>
  <Flow>
    <Routine name="Intructions_1"/>
    <Routine name="Intructions_2"/>
    <Routine name="pause_start"/>
    <LoopInitiator loopType="TrialHandler" name="trials">
      <Param name="Selected rows" updates="None" val="" valType="str"/>
      <Param name="conditions" updates="None" val="[{'angle': 0, 'rightori': 0, 'leftori': 0, 'same': 'n'}, {'angle': 0, 'rightori': 0, 'leftori': 0, 'same': 'y'}, {'angle': 45, 'rightori': 45, 'leftori': 0, 'same': 'n'}, {'angle': 45, 'rightori': 45, 'leftori': 0, 'same': 'y'}, {'angle': 90, 'rightori': 90, 'leftori': 0, 'same': 'n'}, {'angle': 90, 'rightori': 90, 'leftori': 0, 'same': 'y'}, {'angle': 135, 'rightori': 135, 'leftori': 0, 'same': 'n'}, {'angle': 135, 'rightori': 135, 'leftori': 0, 'same': 'y'}, {'angle': 180, 'rightori': 180, 'leftori': 0, 'same': 'n'}, {'angle': 180, 'rightori': 180, 'leftori': 0, 'same': 'y'}, {'angle': 225, 'rightori': 225, 'leftori': 0, 'same': 'n'}, {'angle': 225, 'rightori': 225, 'leftori': 0, 'same': 'y'}, {'angle': 270, 'rightori': 270, 'leftori': 0, 'same': 'n'}, {'angle': 270, 'rightori': 270, 'leftori': 0, 'same': 'y'}, {'angle': 315, 'rightori': 315, 'leftori': 0, 'same': 'n'}, {'angle': 315, 'rightori': 315, 'leftori': 0, 'same': 'y'}]" valType="str"/>
      <Param name="conditionsFile" updates="None" val="MentalRot.csv" valType="str"/>
      <Param name="endPoints" updates="None" val="[0, 1]" valType="num"/>
      <Param name="isTrials" updates="None" val="True" valType="bool"/>
      <Param name="loopType" updates="None" val="random" valType="str"/>
      <Param name="nReps" updates="None" val="6" valType="code"/>
      <Param name="name" updates="None" val="trials" valType="code"/>
      <Param name="random seed" updates="None" val="" valType="code"/>
    </LoopInitiator>
    <Routine name="Trial"/>
    <Routine name="pause"/>
    <LoopTerminator name="trials"/>
    <Routine name="the_end"/>
    <Routine name="plot_data"/>
  </Flow>
</PsychoPy2experiment>
