Adaptive Staircase jumps to maximum intensity and never decreases (PsychoPy 2025.1.1)

OS (e.g. Win10): Win 10 pro
PsychoPy version (e.g. 2024.2.4 Py 3.8): 2025.1.1
Standard Standalone Installation? (y/n) Yes
Do you want it to also run online? (y/n) No

Hi everyone,

I am encountering an issue with the adaptive staircase in my PsychoPy experiment and would appreciate any suggestions.

Experiment details

I am using an adaptive staircase procedure to estimate the target duration required to achieve approximately 80% correct performance.

Design

  • The experiment has two conditions:
    • Set size = 2 gratings
    • Set size = 4 gratings
  • Each condition is presented in separate blocks.
  • On each trial, participants are shown either 2 or 4 gratings with random left/right orientations.
  • A post-stimulus cue indicates which grating’s orientation should be reported.
  • The staircase adjusts the presentation duration of the gratings so that performance is matched between the two set-size conditions.
  • Stimulus duration is controlled in frames because the experiment runs on a 100 Hz monitor (10 ms/frame).

I have attached the experiment file for reference.

Problem

The staircase does not appear to behave as expected.

  1. The staircase starts at the specified initial intensity (10 frames, approximately 100 ms).

  2. After the very first trial, regardless of whether the participant responds correctly or incorrectly, the next intensity jumps to 31 frames (approximately 310 ms).

  3. On the following trial, the intensity immediately jumps to the maximum value (50 frames; approximately 500 ms).

  4. Once the staircase reaches the maximum value, it never decreases, even after three consecutive correct responses. Instead, it remains at the maximum value for the rest of the block.

    What I have checked

  • PsychoPy version: 2025.1.1
  • I also tested the experiment using the latest PsychoPy Studio release, but the same behaviour occurs.
  • The experiment is attached for reference.

Questions

  • Has anyone encountered this type of staircase behaviour before?
  • Is there anything in the Builder staircase settings or loop configuration that could cause the staircase to always increase regardless of the participant’s response?
  • Could this be related to how the staircase stepsize variable is being passed to the routine, or the accuracy of a trial is processed, or how the stimulus duration is updated each trial?

Any suggestions would be greatly appreciated. Thank you!

Experiment details:

  1. Experiment Flow:

  • “Block_loop_sc” is set to run twice - first loop runs set size 4 and second run of loop runs set size 2

  • “adapt_loop_sc” sets the paramters for the staricase procedure

  • “block_stair” has code component that sets the gratings loc and set size and instruction for each condition.

  • The “adapt_trials” routine sets up individual trials as below:

  • “trials_code_sc” sets up the random orientation and correct response for each trial

  • Up, down_left, right gratings uses “$level” to update the display duration in each trial

  • cue_exp_sc denotes the grating whose orientation has to be reported

  • “key_resp_sc” registers the “left” and “right” key response. Variable “$ori_sc” is used to compare and store the correct response.

  • Routine “fb_sc” display the feedback text based on “key_resp_sc.corr”

  • Though the “key_resp_sc.corr” variable correctly track the correct and incorrect response, In the data file “key_resp_sc.corr” column is not stored for some reason.

  • The Experiment file is attach for your reference.

    Exp_forum.psyexp (176.2 KB)

I am stuck in experiment design due to the strange behavior of the staircase loop and unfortunately for last 15 days I am not able to solve this issue. I am not able to proceed in my experiment design, so your help will be appreciated. Thank You.