
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "examples\stimuli\plot_psychophysics.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_examples_stimuli_plot_psychophysics.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_examples_stimuli_plot_psychophysics.py:


===============================================================================
Generating a drifting sinusoidal grating or drifting bar stimulus
===============================================================================

*This example shows how to use drifting psychophysics-based stimuli for a retinal implant.*

Along with images, videos, and oter built-in stimuli, pulse2percept supports
generating :py:class:`~pulse2percept.stimuli.GratingStimulus` and :py:class:`~pulse2percept.stimuli.BarStimulus` as stimuli
that can be passed as percepts to implants.

Creating a Stimulus
-------------------

First, create the stimuli:


Shape (`(height, width)` in pixels) is the only required parameter for creating these stimuli.

A drifting sinusoidal grating is represented by :py:class:`~pulse2percept.stimuli.GratingStimulus`.
The following illustrates one frame of a grating stimulus.

.. GENERATED FROM PYTHON SOURCE LINES 24-31

.. code-block:: Python

    import matplotlib.pyplot as plt
    from pulse2percept.stimuli import GratingStimulus
    stim = GratingStimulus((50, 50), spatial_freq=0.1, temporal_freq=0.1)
    plt.imshow(stim.data[:, 0].reshape(50, 50), cmap='gray')
    plt.title("Grating Stimulus")
    plt.show()




.. image-sg:: /examples/stimuli/images/sphx_glr_plot_psychophysics_001.png
   :alt: Grating Stimulus
   :srcset: /examples/stimuli/images/sphx_glr_plot_psychophysics_001.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 33-34

You can view the entire stimulus over time using `stim.play()`

.. GENERATED FROM PYTHON SOURCE LINES 34-36

.. code-block:: Python

    stim.play()






.. raw:: html

    <div class="output_subarea output_html rendered_html output_result">

    <div class="p2p-anim" id="p2p-anim-f951fa258e83482caa1c0080ebf069af">
      <div class="p2p-stage">
        <img class="p2p-bg" src="data:image/png;base64,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AoSatnv37vjud7/beX/58uXl7fz58+NPf/pT/OIXvyjfK+QnP/lJtLW1xbe+9a147bXXol+/flUcNQBAz1VXKd7sALhuitO2isXoxXoQp2MB1BavAXAxa0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0CoWc3NzTF58uQYNGhQjBgxIubMmRMHDhzo8pxTp07FokWLYtiwYTFw4MCYN29eHDlypGpjBgDo6QQINWvHjh1lXOzcuTO2bdsWZ8+ejfvvvz9OnjzZ+Zxly5bF1q1bY/PmzeXzDx06FHPnzq3quAEAerK6SqVSqfYg4EbwySeflEdCitD49re/HceOHYvhw4fH888/Hw8//HD5nP3798edd94ZLS0tMXXq1C/1ddvb26OhoaH8eoMHD77O/xcA3Ei8BsDFHAGB/1O8OBSGDh1a3u7Zs6c8KjJz5szO54wbNy7GjBlTBggAAN3X+yo+B75yzp8/H0uXLo377rsvxo8fX+47fPhw9O3bN4YMGdLluY2NjeVjl3P69Olyu/C3XwAAfMYREIgo14K89957sWnTpmuyuL043N6xjR49+pqMEQDgq0CAUPMee+yxeOWVV+LNN9+MUaNGde5vamqKM2fORFtbW5fnF1fBKh67nBUrVpSnc3Vsra2t13X8AAA9iQChZhXXXyjiY8uWLfHGG2/E2LFjuzw+adKk6NOnT2zfvr1zX3GZ3oMHD8a0adMu+3Xr6+vLhYYXbgAAfMYaEGr6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CRBI8uKLL8by5cvLy1a+++67MXHixJg1a1YcPXq02kO7IZw8ebKckyLSLuWJJ56IdevWxYYNG2LXrl0xYMCAcv6KH35q1Y4dO8of/Hbu3Bnbtm2Ls2fPxv3331/OZYdly5bF1q1bY/PmzeXzDx06FHPnzo1aNWrUqPKH6D179sTu3btj+vTpMXv27Hj//ffLx83X5b3zzjvx3HPPlQF3IXMGdFtxGV7g+rv33nsrixYt6rx/7ty5ysiRIyvNzc1VHdeNqPinacuWLZ33z58/X2lqaqqsWbOmc19bW1ulvr6+8sILL1RplDeeo0ePlnO3Y8eOzjnq06dPZfPmzZ3P+fe//10+p6WlpYojvbHcfPPNlT/84Q/m6wqOHz9euf322yvbtm2rfOc736ksWbKk3G/OgKvhCAgkOHPmTPkb1+K0oQ69evUq77e0tFR1bD3BRx99FIcPH+4yfw0NDeVpbObvf44dO1beDh06tLwtvueKoyIXztu4ceNizJgx5i0izp07F5s2bSqPGBWnYpmvyyuOtD344INd5qZgzoCr0fuqPgvolk8//bT8YaexsbHL/uL+/v37qzaunqKIj8Kl5q/jsVp3/vz58rz8++67L8aPH1/uK+amb9++MWTIkC7PrfV527dvXxkcxel7xZqFLVu2xF133RV79+41X5dQRFpx2mhxCtbn+R4DroYAAfiK/Ib6vffei7///e/VHsoN74477ihjozhi9Ne//jXmz59frl3gYq2trbFkyZJyjVFx8QyAa8EpWJDglltuiZtuuumiK8MU95uamqo2rp6iY47M36U99thj8corr8Sbb75ZLrLuUMxNcfpfW1tbl+fX+rwVv7G/7bbbYtKkSeWVxIqLHzz11FPm6xKKU6yKC2Xcfffd0bt373IrYq24IETxcXGkw5wB3SVAIOkHnuKHne3bt3c5Zaa4X5wKwpWNHTu2/GHmwvlrb28vr4ZVy/NXrNcv4qM4heiNN94o5+lCxfdcnz59usxbcZnegwcP1vS8fV7xd/H06dPm6xJmzJhRnrJWHDHq2O6555545JFHOj82Z0B3OQULkhSX4C1O9ShesO+9995Yu3Ztufh1wYIF1R7aDeHEiRPx4Ycfdll4XvyAUyyoLha0FusbHn/88bj99tvLH7RXrlxZvmdI8d4XtXza1fPPPx8vv/xy+V4gHefcFwv0i/dKKW4XLlxYfu8V81i878XixYvLHwynTp0atWjFihXxwAMPlN9Tx48fL+fvrbfeitdff918XULxfdWxpqhDcQns4j0/OvabM6DbruraWcBVefrppytjxoyp9O3bt7ws786dO6s9pBvGm2++WV668/Pb/PnzOy/Fu3LlykpjY2N5+d0ZM2ZUDhw4UKlll5qvYtu4cWPnc/773/9Wfvazn5WXmv3a175W+f73v1/5+OOPK7Xqxz/+ceXrX/96+Xdw+PDh5ffR3/72t87HzdcXu/AyvAVzBnRXXfGf7mcLAABA91kDAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAABElv8H8YYYmKUgLRQAAAAASUVORK5CYII=" alt="">
        <canvas class="p2p-canvas" width="800" height="500"></canvas>
      </div>
      <div class="p2p-controls">
        <button class="p2p-btn" data-p2p-go="first"
                title="First frame">&#9198;</button>
        <button class="p2p-btn" data-p2p-go="prev"
                title="Previous frame">&#9194;</button>
        <button class="p2p-btn p2p-toggle" title="Play/Pause">&#9654;</button>
        <button class="p2p-btn" data-p2p-go="next"
                title="Next frame">&#9193;</button>
        <button class="p2p-btn" data-p2p-go="last"
                title="Last frame">&#9197;</button>
        <input class="p2p-slider" type="range" min="0" max="50" value="0"
               step="1">
        <span class="p2p-count">1/51</span>
        <select class="p2p-mode" title="Loop mode">
          <option value="once">Once</option>
          <option value="loop">Loop</option>
          <option value="reflect">Reflect</option>
        </select>
      </div>
    </div>
    <style>
    #p2p-anim-f951fa258e83482caa1c0080ebf069af { display: inline-block; max-width: 100%; width: 800px;
            font-family: sans-serif; font-size: 13px; }
    #p2p-anim-f951fa258e83482caa1c0080ebf069af .p2p-stage { position: relative; line-height: 0; }
    #p2p-anim-f951fa258e83482caa1c0080ebf069af .p2p-bg { width: 100%; height: auto; display: block; }
    #p2p-anim-f951fa258e83482caa1c0080ebf069af .p2p-canvas { position: absolute; left: 0; top: 0;
                        width: 100%; height: 100%; }
    #p2p-anim-f951fa258e83482caa1c0080ebf069af .p2p-controls { display: flex; align-items: center; gap: 4px;
                          padding-top: 4px; }
    #p2p-anim-f951fa258e83482caa1c0080ebf069af .p2p-btn { cursor: pointer; border: 1px solid rgba(128,128,128,0.4);
                     border-radius: 3px; background: transparent; color: inherit;
                     padding: 1px 6px; font-size: 13px; line-height: 1.4; }
    #p2p-anim-f951fa258e83482caa1c0080ebf069af .p2p-btn:hover { background: rgba(128,128,128,0.2); }
    #p2p-anim-f951fa258e83482caa1c0080ebf069af .p2p-slider { flex: 1 1 auto; min-width: 40px; margin: 0 4px; }
    #p2p-anim-f951fa258e83482caa1c0080ebf069af .p2p-count { font-variant-numeric: tabular-nums; opacity: 0.7;
                       white-space: nowrap; }
    #p2p-anim-f951fa258e83482caa1c0080ebf069af .p2p-mode { background: transparent; color: inherit; font-size: 12px;
                      border-radius: 3px;
                      border: 1px solid rgba(128,128,128,0.4); }
    </style>
    <script>
    (function () {
      var cfg = {"n": 51, "ncols": 8, "fw": 50, "fh": 50, "sw": 56, "sh": 56, "rect": [217, 60, 386, 386], "smooth": false, "interval": 20.0, "mode": "loop", "title": {"rect": [0, 37, 800, 20], "x": 410, "y": 47, "align": "center", "font": "normal 16.7px \"DejaVu Sans\", Verdana, sans-serif", "color": "#000000"}, "labels": ["t = 0.00 ms", "t = 20.00 ms", "t = 40.00 ms", "t = 60.00 ms", "t = 80.00 ms", "t = 100.00 ms", "t = 120.00 ms", "t = 140.00 ms", "t = 160.00 ms", "t = 180.00 ms", "t = 200.00 ms", "t = 220.00 ms", "t = 240.00 ms", "t = 260.00 ms", "t = 280.00 ms", "t = 300.00 ms", "t = 320.00 ms", "t = 340.00 ms", "t = 360.00 ms", "t = 380.00 ms", "t = 400.00 ms", "t = 420.00 ms", "t = 440.00 ms", "t = 460.00 ms", "t = 480.00 ms", "t = 500.00 ms", "t = 520.00 ms", "t = 540.00 ms", "t = 560.00 ms", "t = 580.00 ms", "t = 600.00 ms", "t = 620.00 ms", "t = 640.00 ms", "t = 660.00 ms", "t = 680.00 ms", "t = 700.00 ms", "t = 720.00 ms", "t = 740.00 ms", "t = 760.00 ms", "t = 780.00 ms", "t = 800.00 ms", "t = 820.00 ms", "t = 840.00 ms", "t = 860.00 ms", "t = 880.00 ms", "t = 900.00 ms", "t = 920.00 ms", "t = 940.00 ms", "t = 960.00 ms", "t = 980.00 ms", "t = 1000.00 ms"]};
      var root = document.getElementById("p2p-anim-f951fa258e83482caa1c0080ebf069af");
      if (!root) { return; }
      var ctx = root.querySelector(".p2p-canvas").getContext("2d");
      var slider = root.querySelector(".p2p-slider");
      var counter = root.querySelector(".p2p-count");
      var mode = root.querySelector(".p2p-mode");
      var toggle = root.querySelector(".p2p-toggle");
      var frame = 0, dir = 1, timer = null, sheet = new Image();

      function draw() {
        if (!sheet.complete || !sheet.naturalWidth) { return; }
        var col = frame % cfg.ncols, row = (frame - col) / cfg.ncols;
        ctx.imageSmoothingEnabled = cfg.smooth;
        // Frames with an alpha channel are composited onto the static background,
        // so the previous frame has to go first or they stack up:
        ctx.clearRect(cfg.rect[0], cfg.rect[1], cfg.rect[2], cfg.rect[3]);
        ctx.drawImage(sheet, col * cfg.sw, row * cfg.sh, cfg.fw, cfg.fh,
                      cfg.rect[0], cfg.rect[1], cfg.rect[2], cfg.rect[3]);
        if (cfg.title) {
          ctx.clearRect(cfg.title.rect[0], cfg.title.rect[1],
                        cfg.title.rect[2], cfg.title.rect[3]);
          ctx.font = cfg.title.font;
          ctx.fillStyle = cfg.title.color;
          ctx.textAlign = cfg.title.align;
          ctx.textBaseline = "middle";
          ctx.fillText(cfg.labels[frame], cfg.title.x, cfg.title.y);
        }
      }

      function show(i) {
        frame = Math.max(0, Math.min(cfg.n - 1, i));
        slider.value = frame;
        counter.textContent = (frame + 1) + "/" + cfg.n;
        draw();
      }

      function pause() {
        if (timer !== null) { clearInterval(timer); timer = null; }
        toggle.innerHTML = "&#9654;";
      }

      function play() {
        if (timer !== null) { return; }
        if (mode.value === "once" && frame === cfg.n - 1) { show(0); }
        toggle.innerHTML = "&#10074;&#10074;";
        timer = setInterval(advance, Math.max(1, cfg.interval));
      }

      function advance() {
        var next = frame + dir;
        if (next > cfg.n - 1 || next < 0) {
          if (mode.value === "loop") {
            next = dir > 0 ? 0 : cfg.n - 1;
          } else if (mode.value === "reflect" && cfg.n > 1) {
            dir = -dir;
            next = frame + dir;
          } else {
            pause();
            return;
          }
        }
        show(next);
      }

      root.querySelectorAll("[data-p2p-go]").forEach(function (btn) {
        btn.addEventListener("click", function () {
          pause();
          dir = 1;
          var go = btn.dataset.p2pGo;
          show(go === "first" ? 0 : go === "last" ? cfg.n - 1 :
               go === "next" ? frame + 1 : frame - 1);
        });
      });
      toggle.addEventListener("click", function () {
        if (timer === null) { play(); } else { pause(); }
      });
      slider.addEventListener("input", function () {
        pause();
        dir = 1;
        show(parseInt(slider.value, 10));
      });
      mode.value = cfg.mode;
      sheet.onload = draw;
      sheet.src = "data:image/jpeg;base64,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";
      show(0);
    })();
    </script>

    </div>
    <br />
    <br />

.. GENERATED FROM PYTHON SOURCE LINES 37-45

Here, the spatial frequency of the grating (i.e., the inverse of how many pixels it
takes to represent one cycle of the sinusoid) is given as 0.1 cycles/pixel, whereas
the temporal frequency (i.e., the inverse of how many frames it takes to represent
one cycle of the sinusoid) is given as 0.1 cycles/frame.
By default, the drift direction of the grating will be to the right (0 degrees).

A drifting bar is represented by :py:class:`~pulse2percept.stimuli.BarStimulus`.
A visual example of a basic sinusoidal grating can be generated as such:

.. GENERATED FROM PYTHON SOURCE LINES 45-50

.. code-block:: Python


    from pulse2percept.stimuli.psychophysics import BarStimulus
    stim = BarStimulus((50, 50), speed=1)
    stim.play()






.. raw:: html

    <div class="output_subarea output_html rendered_html output_result">

    <div class="p2p-anim" id="p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2">
      <div class="p2p-stage">
        <img class="p2p-bg" src="data:image/png;base64,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AoSatnv37vjud7/beX/58uXl7fz58+NPf/pT/OIXvyjfK+QnP/lJtLW1xbe+9a147bXXol+/flUcNQBAz1VXKd7sALhuitO2isXoxXoQp2MB1BavAXAxa0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0CoWc3NzTF58uQYNGhQjBgxIubMmRMHDhzo8pxTp07FokWLYtiwYTFw4MCYN29eHDlypGpjBgDo6QQINWvHjh1lXOzcuTO2bdsWZ8+ejfvvvz9OnjzZ+Zxly5bF1q1bY/PmzeXzDx06FHPnzq3quAEAerK6SqVSqfYg4EbwySeflEdCitD49re/HceOHYvhw4fH888/Hw8//HD5nP3798edd94ZLS0tMXXq1C/1ddvb26OhoaH8eoMHD77O/xcA3Ei8BsDFHAGB/1O8OBSGDh1a3u7Zs6c8KjJz5szO54wbNy7GjBlTBggAAN3X+yo+B75yzp8/H0uXLo377rsvxo8fX+47fPhw9O3bN4YMGdLluY2NjeVjl3P69Olyu/C3XwAAfMYREIgo14K89957sWnTpmuyuL043N6xjR49+pqMEQDgq0CAUPMee+yxeOWVV+LNN9+MUaNGde5vamqKM2fORFtbW5fnF1fBKh67nBUrVpSnc3Vsra2t13X8AAA9iQChZhXXXyjiY8uWLfHGG2/E2LFjuzw+adKk6NOnT2zfvr1zX3GZ3oMHD8a0adMu+3Xr6+vLhYYXbgAAfMYaEGr6tKviClcvv/xy+V4gHes6itOm+vfvX94uXLgwli9fXi5ML0Ji8eLFZXx82StgAQDQlcvwUrPq6uouuX/jxo3xox/9qPONCH/+85/HCy+8UC4snzVrVqxfv/6Kp2B9nkswAtQurwFwMQEC15kXH4Da5TUALmYNCAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECAAAkEaAAAAAaQQIAACQRoAAAABpBAgAAJBGgAAAAGkECDXr2WefjQkTJsTgwYPLbdq0afHqq692Pn7q1KlYtGhRDBs2LAYOHBjz5s2LI0eOVHXMAAA9nQChZo0aNSpWr14de/bsid27d8f06dNj9uzZ8f7775ePL1u2LLZu3RqbN2+OHTt2xKFDh2Lu3LnVHjYAQI9WV6lUKtUeBNwohg4dGmvWrImHH344hg8fHs8//3z5cWH//v1x5513RktLS0ydOvVLf8329vZoaGiIY8eOlUdaAKgdXgPgYo6AQEScO3cuNm3aFCdPnixPxSqOipw9ezZmzpzZ+Zxx48bFmDFjygABAODq9L7Kz4OvhH379pXBUaz3KNZ5bNmyJe66667Yu3dv9O3bN4YMGdLl+Y2NjXH48OErfs3Tp0+X24W//QIA4DOOgFDT7rjjjjI2du3aFT/96U9j/vz58a9//ev/62s2NzeXh9s7ttGjR1+z8QIA9HQChJpWHOW47bbbYtKkSWU4TJw4MZ566qloamqKM2fORFtbW5fnF1fBKh67khUrVpTn+nZsra2t1/n/AgCg5xAgcIHz58+Xp08VQdKnT5/Yvn1752MHDhyIgwcPlqdsXUl9fX3npX07NgAAPmMNCDWrOFLxwAMPlAvLjx8/Xl7x6q233orXX3+9PHVq4cKFsXz58vLKWEVELF68uIyP7lwBCwCArgQINevo0aPx6KOPxscff1wGR/GmhEV8fO973ysff/LJJ6NXr17lGxAWR0VmzZoV69evr/awAQB6NO8DAteZa8AD1C6vAXAxa0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0Dg/6xevTrq6upi6dKlnftOnToVixYtimHDhsXAgQNj3rx5ceTIkaqOEwCgJxMgEBHvvPNOPPfcczFhwoQu+5ctWxZbt26NzZs3x44dO+LQoUMxd+7cqo0TAKCnEyDUvBMnTsQjjzwSv//97+Pmm2/u3H/s2LH44x//GL/97W9j+vTpMWnSpNi4cWP84x//iJ07d1Z1zAAAPZUAoeYVp1g9+OCDMXPmzC779+zZE2fPnu2yf9y4cTFmzJhoaWmpwkgBAHq+3tUeAFTTpk2b4t133y1Pwfq8w4cPR9++fWPIkCFd9jc2NpaPXc7p06fLrUN7e/s1HjUAQM/lCAg1q7W1NZYsWRJ/+ctfol+/ftfs6zY3N0dDQ0PnNnr06Gv2tQEAejoBQs0qTrE6evRo3H333dG7d+9yKxaar1u3rvy4ONJx5syZaGtr6/J5xVWwmpqaLvt1V6xYUa4f6diK0AEA4DNOwaJmzZgxI/bt29dl34IFC8p1Hr/85S/LIxd9+vSJ7du3l5ffLRw4cCAOHjwY06ZNu+zXra+vLzcAAC4mQKhZgwYNivHjx3fZN2DAgPI9Pzr2L1y4MJYvXx5Dhw6NwYMHx+LFi8v4mDp1apVGDQDQswkQuIInn3wyevXqVR4BKRaWz5o1K9avX1/tYQEA9Fh1lUqlUu1BwFdZcRWsYjF6sR6kOIoCQO3wGgAXswgdAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANL3z/iioTZVKpbxtb2+v9lAASNbxb3/HawEgQOC6O378eHk7evToag8FgCq+FjQ0NFR7GHBDqKtIcriuzp8/H4cOHYpBgwaVL0BFiLS2tsbgwYOrPbQe89tDc9Y95qz7zFn3mbMvp/gxq/i3f+TIkdGrlzPfoeAICFxnxQvOqFGjyo/r6urK2+LF2gt295iz7jNn3WfOus+cfTFHPqArKQ4AAKQRIAAAQBoBAonq6+vjN7/5TXnLl2POus+cdZ856z5zBlwti9ABAIA0joAAAABpBAgAAJBGgAAAAGkECAAAkEaAQKJnnnkmvvGNb0S/fv1iypQp8c9//rPaQ7phvP322/HQQw+V7xZcvGHjSy+91OXx4noZq1atiltvvTX69+8fM2fOjA8++CBqWXNzc0yePDkGDRoUI0aMiDlz5sSBAwe6POfUqVOxaNGiGDZsWAwcODDmzZsXR44ciVr17LPPxoQJEzrfPG/atGnx6quvdj5uvq5s9erV5d/PpUuXdu4zZ0B3CRBI8uKLL8by5cvLy1a+++67MXHixJg1a1YcPXq02kO7IZw8ebKckyLSLuWJJ56IdevWxYYNG2LXrl0xYMCAcv6KH35q1Y4dO8of/Hbu3Bnbtm2Ls2fPxv3331/OZYdly5bF1q1bY/PmzeXzDx06FHPnzo1aNWrUqPKH6D179sTu3btj+vTpMXv27Hj//ffLx83X5b3zzjvx3HPPlQF3IXMGdFtxGV7g+rv33nsrixYt6rx/7ty5ysiRIyvNzc1VHdeNqPinacuWLZ33z58/X2lqaqqsWbOmc19bW1ulvr6+8sILL1RplDeeo0ePlnO3Y8eOzjnq06dPZfPmzZ3P+fe//10+p6WlpYojvbHcfPPNlT/84Q/m6wqOHz9euf322yvbtm2rfOc736ksWbKk3G/OgKvhCAgkOHPmTPkb1+K0oQ69evUq77e0tFR1bD3BRx99FIcPH+4yfw0NDeVpbObvf44dO1beDh06tLwtvueKoyIXztu4ceNizJgx5i0izp07F5s2bSqPGBWnYpmvyyuOtD344INd5qZgzoCr0fuqPgvolk8//bT8YaexsbHL/uL+/v37qzaunqKIj8Kl5q/jsVp3/vz58rz8++67L8aPH1/uK+amb9++MWTIkC7PrfV527dvXxkcxel7xZqFLVu2xF133RV79+41X5dQRFpx2mhxCtbn+R4DroYAAfiK/Ib6vffei7///e/VHsoN74477ihjozhi9Ne//jXmz59frl3gYq2trbFkyZJyjVFx8QyAa8EpWJDglltuiZtuuumiK8MU95uamqo2rp6iY47M36U99thj8corr8Sbb75ZLrLuUMxNcfpfW1tbl+fX+rwVv7G/7bbbYtKkSeWVxIqLHzz11FPm6xKKU6yKC2Xcfffd0bt373IrYq24IETxcXGkw5wB3SVAIOkHnuKHne3bt3c5Zaa4X5wKwpWNHTu2/GHmwvlrb28vr4ZVy/NXrNcv4qM4heiNN94o5+lCxfdcnz59usxbcZnegwcP1vS8fV7xd/H06dPm6xJmzJhRnrJWHDHq2O6555545JFHOj82Z0B3OQULkhSX4C1O9ShesO+9995Yu3Ztufh1wYIF1R7aDeHEiRPx4Ycfdll4XvyAUyyoLha0FusbHn/88bj99tvLH7RXrlxZvmdI8d4XtXza1fPPPx8vv/xy+V4gHefcFwv0i/dKKW4XLlxYfu8V81i878XixYvLHwynTp0atWjFihXxwAMPlN9Tx48fL+fvrbfeitdff918XULxfdWxpqhDcQns4j0/OvabM6DbruraWcBVefrppytjxoyp9O3bt7ws786dO6s9pBvGm2++WV668/Pb/PnzOy/Fu3LlykpjY2N5+d0ZM2ZUDhw4UKlll5qvYtu4cWPnc/773/9Wfvazn5WXmv3a175W+f73v1/5+OOPK7Xqxz/+ceXrX/96+Xdw+PDh5ffR3/72t87HzdcXu/AyvAVzBnRXXfGf7mcLAABA91kDAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAABElv8H8YYYmKUgLRQAAAAASUVORK5CYII=" alt="">
        <canvas class="p2p-canvas" width="800" height="500"></canvas>
      </div>
      <div class="p2p-controls">
        <button class="p2p-btn" data-p2p-go="first"
                title="First frame">&#9198;</button>
        <button class="p2p-btn" data-p2p-go="prev"
                title="Previous frame">&#9194;</button>
        <button class="p2p-btn p2p-toggle" title="Play/Pause">&#9654;</button>
        <button class="p2p-btn" data-p2p-go="next"
                title="Next frame">&#9193;</button>
        <button class="p2p-btn" data-p2p-go="last"
                title="Last frame">&#9197;</button>
        <input class="p2p-slider" type="range" min="0" max="50" value="0"
               step="1">
        <span class="p2p-count">1/51</span>
        <select class="p2p-mode" title="Loop mode">
          <option value="once">Once</option>
          <option value="loop">Loop</option>
          <option value="reflect">Reflect</option>
        </select>
      </div>
    </div>
    <style>
    #p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2 { display: inline-block; max-width: 100%; width: 800px;
            font-family: sans-serif; font-size: 13px; }
    #p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2 .p2p-stage { position: relative; line-height: 0; }
    #p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2 .p2p-bg { width: 100%; height: auto; display: block; }
    #p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2 .p2p-canvas { position: absolute; left: 0; top: 0;
                        width: 100%; height: 100%; }
    #p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2 .p2p-controls { display: flex; align-items: center; gap: 4px;
                          padding-top: 4px; }
    #p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2 .p2p-btn { cursor: pointer; border: 1px solid rgba(128,128,128,0.4);
                     border-radius: 3px; background: transparent; color: inherit;
                     padding: 1px 6px; font-size: 13px; line-height: 1.4; }
    #p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2 .p2p-btn:hover { background: rgba(128,128,128,0.2); }
    #p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2 .p2p-slider { flex: 1 1 auto; min-width: 40px; margin: 0 4px; }
    #p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2 .p2p-count { font-variant-numeric: tabular-nums; opacity: 0.7;
                       white-space: nowrap; }
    #p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2 .p2p-mode { background: transparent; color: inherit; font-size: 12px;
                      border-radius: 3px;
                      border: 1px solid rgba(128,128,128,0.4); }
    </style>
    <script>
    (function () {
      var cfg = {"n": 51, "ncols": 8, "fw": 50, "fh": 50, "sw": 56, "sh": 56, "rect": [217, 60, 386, 386], "smooth": false, "interval": 20.0, "mode": "loop", "title": {"rect": [0, 37, 800, 20], "x": 410, "y": 47, "align": "center", "font": "normal 16.7px \"DejaVu Sans\", Verdana, sans-serif", "color": "#000000"}, "labels": ["t = 0.00 ms", "t = 20.00 ms", "t = 40.00 ms", "t = 60.00 ms", "t = 80.00 ms", "t = 100.00 ms", "t = 120.00 ms", "t = 140.00 ms", "t = 160.00 ms", "t = 180.00 ms", "t = 200.00 ms", "t = 220.00 ms", "t = 240.00 ms", "t = 260.00 ms", "t = 280.00 ms", "t = 300.00 ms", "t = 320.00 ms", "t = 340.00 ms", "t = 360.00 ms", "t = 380.00 ms", "t = 400.00 ms", "t = 420.00 ms", "t = 440.00 ms", "t = 460.00 ms", "t = 480.00 ms", "t = 500.00 ms", "t = 520.00 ms", "t = 540.00 ms", "t = 560.00 ms", "t = 580.00 ms", "t = 600.00 ms", "t = 620.00 ms", "t = 640.00 ms", "t = 660.00 ms", "t = 680.00 ms", "t = 700.00 ms", "t = 720.00 ms", "t = 740.00 ms", "t = 760.00 ms", "t = 780.00 ms", "t = 800.00 ms", "t = 820.00 ms", "t = 840.00 ms", "t = 860.00 ms", "t = 880.00 ms", "t = 900.00 ms", "t = 920.00 ms", "t = 940.00 ms", "t = 960.00 ms", "t = 980.00 ms", "t = 1000.00 ms"]};
      var root = document.getElementById("p2p-anim-81e7c74e57bc4bf8b016f0b0d7289ff2");
      if (!root) { return; }
      var ctx = root.querySelector(".p2p-canvas").getContext("2d");
      var slider = root.querySelector(".p2p-slider");
      var counter = root.querySelector(".p2p-count");
      var mode = root.querySelector(".p2p-mode");
      var toggle = root.querySelector(".p2p-toggle");
      var frame = 0, dir = 1, timer = null, sheet = new Image();

      function draw() {
        if (!sheet.complete || !sheet.naturalWidth) { return; }
        var col = frame % cfg.ncols, row = (frame - col) / cfg.ncols;
        ctx.imageSmoothingEnabled = cfg.smooth;
        // Frames with an alpha channel are composited onto the static background,
        // so the previous frame has to go first or they stack up:
        ctx.clearRect(cfg.rect[0], cfg.rect[1], cfg.rect[2], cfg.rect[3]);
        ctx.drawImage(sheet, col * cfg.sw, row * cfg.sh, cfg.fw, cfg.fh,
                      cfg.rect[0], cfg.rect[1], cfg.rect[2], cfg.rect[3]);
        if (cfg.title) {
          ctx.clearRect(cfg.title.rect[0], cfg.title.rect[1],
                        cfg.title.rect[2], cfg.title.rect[3]);
          ctx.font = cfg.title.font;
          ctx.fillStyle = cfg.title.color;
          ctx.textAlign = cfg.title.align;
          ctx.textBaseline = "middle";
          ctx.fillText(cfg.labels[frame], cfg.title.x, cfg.title.y);
        }
      }

      function show(i) {
        frame = Math.max(0, Math.min(cfg.n - 1, i));
        slider.value = frame;
        counter.textContent = (frame + 1) + "/" + cfg.n;
        draw();
      }

      function pause() {
        if (timer !== null) { clearInterval(timer); timer = null; }
        toggle.innerHTML = "&#9654;";
      }

      function play() {
        if (timer !== null) { return; }
        if (mode.value === "once" && frame === cfg.n - 1) { show(0); }
        toggle.innerHTML = "&#10074;&#10074;";
        timer = setInterval(advance, Math.max(1, cfg.interval));
      }

      function advance() {
        var next = frame + dir;
        if (next > cfg.n - 1 || next < 0) {
          if (mode.value === "loop") {
            next = dir > 0 ? 0 : cfg.n - 1;
          } else if (mode.value === "reflect" && cfg.n > 1) {
            dir = -dir;
            next = frame + dir;
          } else {
            pause();
            return;
          }
        }
        show(next);
      }

      root.querySelectorAll("[data-p2p-go]").forEach(function (btn) {
        btn.addEventListener("click", function () {
          pause();
          dir = 1;
          var go = btn.dataset.p2pGo;
          show(go === "first" ? 0 : go === "last" ? cfg.n - 1 :
               go === "next" ? frame + 1 : frame - 1);
        });
      });
      toggle.addEventListener("click", function () {
        if (timer === null) { play(); } else { pause(); }
      });
      slider.addEventListener("input", function () {
        pause();
        dir = 1;
        show(parseInt(slider.value, 10));
      });
      mode.value = cfg.mode;
      sheet.onload = draw;
      sheet.src = "data:image/jpeg;base64,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";
      show(0);
    })();
    </script>

    </div>
    <br />
    <br />

.. GENERATED FROM PYTHON SOURCE LINES 51-70

Here, the drift speed of the bar is given as 1 pixel/frame and, by default, the
bar will drift to the right (0 degrees).

Customizing the Stimulus
------------------------

For both :py:class:`~pulse2percept.stimuli.BarStimulus` and 
:py:class:`~pulse2percept.stimuli.GratingStimulus`,
the only argument you must pass to the constructor is the shape `(height, width)` 
in pixels.
There are many optional arguments that can be passed to change various attributes 
of the stimulus.
In the examples above, we changed the speed at which the GratingStimulus changed 
with temporal_freq *(scalar, cycles/frame)* 
and the speed at which the BarStimulus moved with speed *(scalar, pixels/frame)* 
in order to make the effect easier to visualize.
If, for example, we wanted a longer stimulus, we cold set the time parameter 
(in units of milliseconds)
to change the duration of the stimulus:

.. GENERATED FROM PYTHON SOURCE LINES 70-74

.. code-block:: Python


    stim = BarStimulus((50, 50), speed=1, time=1500)
    stim.play()






.. raw:: html

    <div class="output_subarea output_html rendered_html output_result">

    <div class="p2p-anim" id="p2p-anim-91e224ab3fe1459b835f8a7b88ede00b">
      <div class="p2p-stage">
        <img class="p2p-bg" src="data:image/png;base64,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AoSatnv37vjud7/beX/58uXl7fz58+NPf/pT/OIXvyjfK+QnP/lJtLW1xbe+9a147bXXol+/flUcNQBAz1VXKd7sALhuitO2isXoxXoQp2MB1BavAXAxa0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0AAAIA0AgQAAEgjQAAAgDQCBAAASCNAAACANAIEAABII0CoWc3NzTF58uQYNGhQjBgxIubMmRMHDhzo8pxTp07FokWLYtiwYTFw4MCYN29eHDlypGpjBgDo6QQINWvHjh1lXOzcuTO2bdsWZ8+ejfvvvz9OnjzZ+Zxly5bF1q1bY/PmzeXzDx06FHPnzq3quAEAerK6SqVSqfYg4EbwySeflEdCitD49re/HceOHYvhw4fH888/Hw8//HD5nP3798edd94ZLS0tMXXq1C/1ddvb26OhoaH8eoMHD77O/xcA3Ei8BsDFHAGB/1O8OBSGDh1a3u7Zs6c8KjJz5szO54wbNy7GjBlTBggAAN3X+yo+B75yzp8/H0uXLo377rsvxo8fX+47fPhw9O3bN4YMGdLluY2NjeVjl3P69Olyu/C3XwAAfMYREIgo14K89957sWnTpmuyuL043N6xjR49+pqMEQDgq0CAUPMee+yxeOWVV+LNN9+MUaNGde5vamqKM2fORFtbW5fnF1fBKh67nBUrVpSnc3Vsra2t13X8AAA9iQChZhXXXyjiY8uWLfHGG2/E2LFjuzw+adKk6NOnT2zfvr1zX3GZ3oMHD8a0adMu+3Xr6+vLhYYXbgAAfMYaEGr6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CRBI8uKLL8by5cvLy1a+++67MXHixJg1a1YcPXq02kO7IZw8ebKckyLSLuWJJ56IdevWxYYNG2LXrl0xYMCAcv6KH35q1Y4dO8of/Hbu3Bnbtm2Ls2fPxv3331/OZYdly5bF1q1bY/PmzeXzDx06FHPnzo1aNWrUqPKH6D179sTu3btj+vTpMXv27Hj//ffLx83X5b3zzjvx3HPPlQF3IXMGdFtxGV7g+rv33nsrixYt6rx/7ty5ysiRIyvNzc1VHdeNqPinacuWLZ33z58/X2lqaqqsWbOmc19bW1ulvr6+8sILL1RplDeeo0ePlnO3Y8eOzjnq06dPZfPmzZ3P+fe//10+p6WlpYojvbHcfPPNlT/84Q/m6wqOHz9euf322yvbtm2rfOc736ksWbKk3G/OgKvhCAgkOHPmTPkb1+K0oQ69evUq77e0tFR1bD3BRx99FIcPH+4yfw0NDeVpbObvf44dO1beDh06tLwtvueKoyIXztu4ceNizJgx5i0izp07F5s2bSqPGBWnYpmvyyuOtD344INd5qZgzoCr0fuqPgvolk8//bT8YaexsbHL/uL+/v37qzaunqKIj8Kl5q/jsVp3/vz58rz8++67L8aPH1/uK+amb9++MWTIkC7PrfV527dvXxkcxel7xZqFLVu2xF133RV79+41X5dQRFpx2mhxCtbn+R4DroYAAfiK/Ib6vffei7///e/VHsoN74477ihjozhi9Ne//jXmz59frl3gYq2trbFkyZJyjVFx8QyAa8EpWJDglltuiZtuuumiK8MU95uamqo2rp6iY47M36U99thj8corr8Sbb75ZLrLuUMxNcfpfW1tbl+fX+rwVv7G/7bbbYtKkSeWVxIqLHzz11FPm6xKKU6yKC2Xcfffd0bt373IrYq24IETxcXGkw5wB3SVAIOkHnuKHne3bt3c5Zaa4X5wKwpWNHTu2/GHmwvlrb28vr4ZVy/NXrNcv4qM4heiNN94o5+lCxfdcnz59usxbcZnegwcP1vS8fV7xd/H06dPm6xJmzJhRnrJWHDHq2O6555545JFHOj82Z0B3OQULkhSX4C1O9ShesO+9995Yu3Ztufh1wYIF1R7aDeHEiRPx4Ycfdll4XvyAUyyoLha0FusbHn/88bj99tvLH7RXrlxZvmdI8d4XtXza1fPPPx8vv/xy+V4gHefcFwv0i/dKKW4XLlxYfu8V81i878XixYvLHwynTp0atWjFihXxwAMPlN9Tx48fL+fvrbfeitdff918XULxfdWxpqhDcQns4j0/OvabM6DbruraWcBVefrppytjxoyp9O3bt7ws786dO6s9pBvGm2++WV668/Pb/PnzOy/Fu3LlykpjY2N5+d0ZM2ZUDhw4UKlll5qvYtu4cWPnc/773/9Wfvazn5WXmv3a175W+f73v1/5+OOPK7Xqxz/+ceXrX/96+Xdw+PDh5ffR3/72t87HzdcXu/AyvAVzBnRXXfGf7mcLAABA91kDAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAACkESAAAEAaAQIAAKQRIAAAQBoBAgAApBEgAABAGgECAABElv8H8YYYmKUgLRQAAAAASUVORK5CYII=" alt="">
        <canvas class="p2p-canvas" width="800" height="500"></canvas>
      </div>
      <div class="p2p-controls">
        <button class="p2p-btn" data-p2p-go="first"
                title="First frame">&#9198;</button>
        <button class="p2p-btn" data-p2p-go="prev"
                title="Previous frame">&#9194;</button>
        <button class="p2p-btn p2p-toggle" title="Play/Pause">&#9654;</button>
        <button class="p2p-btn" data-p2p-go="next"
                title="Next frame">&#9193;</button>
        <button class="p2p-btn" data-p2p-go="last"
                title="Last frame">&#9197;</button>
        <input class="p2p-slider" type="range" min="0" max="75" value="0"
               step="1">
        <span class="p2p-count">1/76</span>
        <select class="p2p-mode" title="Loop mode">
          <option value="once">Once</option>
          <option value="loop">Loop</option>
          <option value="reflect">Reflect</option>
        </select>
      </div>
    </div>
    <style>
    #p2p-anim-91e224ab3fe1459b835f8a7b88ede00b { display: inline-block; max-width: 100%; width: 800px;
            font-family: sans-serif; font-size: 13px; }
    #p2p-anim-91e224ab3fe1459b835f8a7b88ede00b .p2p-stage { position: relative; line-height: 0; }
    #p2p-anim-91e224ab3fe1459b835f8a7b88ede00b .p2p-bg { width: 100%; height: auto; display: block; }
    #p2p-anim-91e224ab3fe1459b835f8a7b88ede00b .p2p-canvas { position: absolute; left: 0; top: 0;
                        width: 100%; height: 100%; }
    #p2p-anim-91e224ab3fe1459b835f8a7b88ede00b .p2p-controls { display: flex; align-items: center; gap: 4px;
                          padding-top: 4px; }
    #p2p-anim-91e224ab3fe1459b835f8a7b88ede00b .p2p-btn { cursor: pointer; border: 1px solid rgba(128,128,128,0.4);
                     border-radius: 3px; background: transparent; color: inherit;
                     padding: 1px 6px; font-size: 13px; line-height: 1.4; }
    #p2p-anim-91e224ab3fe1459b835f8a7b88ede00b .p2p-btn:hover { background: rgba(128,128,128,0.2); }
    #p2p-anim-91e224ab3fe1459b835f8a7b88ede00b .p2p-slider { flex: 1 1 auto; min-width: 40px; margin: 0 4px; }
    #p2p-anim-91e224ab3fe1459b835f8a7b88ede00b .p2p-count { font-variant-numeric: tabular-nums; opacity: 0.7;
                       white-space: nowrap; }
    #p2p-anim-91e224ab3fe1459b835f8a7b88ede00b .p2p-mode { background: transparent; color: inherit; font-size: 12px;
                      border-radius: 3px;
                      border: 1px solid rgba(128,128,128,0.4); }
    </style>
    <script>
    (function () {
      var cfg = {"n": 76, "ncols": 9, "fw": 50, "fh": 50, "sw": 56, "sh": 56, "rect": [217, 60, 386, 386], "smooth": false, "interval": 20.0, "mode": "loop", "title": {"rect": [0, 37, 800, 20], "x": 410, "y": 47, "align": "center", "font": "normal 16.7px \"DejaVu Sans\", Verdana, sans-serif", "color": "#000000"}, "labels": ["t = 0.00 ms", "t = 20.00 ms", "t = 40.00 ms", "t = 60.00 ms", "t = 80.00 ms", "t = 100.00 ms", "t = 120.00 ms", "t = 140.00 ms", "t = 160.00 ms", "t = 180.00 ms", "t = 200.00 ms", "t = 220.00 ms", "t = 240.00 ms", "t = 260.00 ms", "t = 280.00 ms", "t = 300.00 ms", "t = 320.00 ms", "t = 340.00 ms", "t = 360.00 ms", "t = 380.00 ms", "t = 400.00 ms", "t = 420.00 ms", "t = 440.00 ms", "t = 460.00 ms", "t = 480.00 ms", "t = 500.00 ms", "t = 520.00 ms", "t = 540.00 ms", "t = 560.00 ms", "t = 580.00 ms", "t = 600.00 ms", "t = 620.00 ms", "t = 640.00 ms", "t = 660.00 ms", "t = 680.00 ms", "t = 700.00 ms", "t = 720.00 ms", "t = 740.00 ms", "t = 760.00 ms", "t = 780.00 ms", "t = 800.00 ms", "t = 820.00 ms", "t = 840.00 ms", "t = 860.00 ms", "t = 880.00 ms", "t = 900.00 ms", "t = 920.00 ms", "t = 940.00 ms", "t = 960.00 ms", "t = 980.00 ms", "t = 1000.00 ms", "t = 1020.00 ms", "t = 1040.00 ms", "t = 1060.00 ms", "t = 1080.00 ms", "t = 1100.00 ms", "t = 1120.00 ms", "t = 1140.00 ms", "t = 1160.00 ms", "t = 1180.00 ms", "t = 1200.00 ms", "t = 1220.00 ms", "t = 1240.00 ms", "t = 1260.00 ms", "t = 1280.00 ms", "t = 1300.00 ms", "t = 1320.00 ms", "t = 1340.00 ms", "t = 1360.00 ms", "t = 1380.00 ms", "t = 1400.00 ms", "t = 1420.00 ms", "t = 1440.00 ms", "t = 1460.00 ms", "t = 1480.00 ms", "t = 1500.00 ms"]};
      var root = document.getElementById("p2p-anim-91e224ab3fe1459b835f8a7b88ede00b");
      if (!root) { return; }
      var ctx = root.querySelector(".p2p-canvas").getContext("2d");
      var slider = root.querySelector(".p2p-slider");
      var counter = root.querySelector(".p2p-count");
      var mode = root.querySelector(".p2p-mode");
      var toggle = root.querySelector(".p2p-toggle");
      var frame = 0, dir = 1, timer = null, sheet = new Image();

      function draw() {
        if (!sheet.complete || !sheet.naturalWidth) { return; }
        var col = frame % cfg.ncols, row = (frame - col) / cfg.ncols;
        ctx.imageSmoothingEnabled = cfg.smooth;
        // Frames with an alpha channel are composited onto the static background,
        // so the previous frame has to go first or they stack up:
        ctx.clearRect(cfg.rect[0], cfg.rect[1], cfg.rect[2], cfg.rect[3]);
        ctx.drawImage(sheet, col * cfg.sw, row * cfg.sh, cfg.fw, cfg.fh,
                      cfg.rect[0], cfg.rect[1], cfg.rect[2], cfg.rect[3]);
        if (cfg.title) {
          ctx.clearRect(cfg.title.rect[0], cfg.title.rect[1],
                        cfg.title.rect[2], cfg.title.rect[3]);
          ctx.font = cfg.title.font;
          ctx.fillStyle = cfg.title.color;
          ctx.textAlign = cfg.title.align;
          ctx.textBaseline = "middle";
          ctx.fillText(cfg.labels[frame], cfg.title.x, cfg.title.y);
        }
      }

      function show(i) {
        frame = Math.max(0, Math.min(cfg.n - 1, i));
        slider.value = frame;
        counter.textContent = (frame + 1) + "/" + cfg.n;
        draw();
      }

      function pause() {
        if (timer !== null) { clearInterval(timer); timer = null; }
        toggle.innerHTML = "&#9654;";
      }

      function play() {
        if (timer !== null) { return; }
        if (mode.value === "once" && frame === cfg.n - 1) { show(0); }
        toggle.innerHTML = "&#10074;&#10074;";
        timer = setInterval(advance, Math.max(1, cfg.interval));
      }

      function advance() {
        var next = frame + dir;
        if (next > cfg.n - 1 || next < 0) {
          if (mode.value === "loop") {
            next = dir > 0 ? 0 : cfg.n - 1;
          } else if (mode.value === "reflect" && cfg.n > 1) {
            dir = -dir;
            next = frame + dir;
          } else {
            pause();
            return;
          }
        }
        show(next);
      }

      root.querySelectorAll("[data-p2p-go]").forEach(function (btn) {
        btn.addEventListener("click", function () {
          pause();
          dir = 1;
          var go = btn.dataset.p2pGo;
          show(go === "first" ? 0 : go === "last" ? cfg.n - 1 :
               go === "next" ? frame + 1 : frame - 1);
        });
      });
      toggle.addEventListener("click", function () {
        if (timer === null) { play(); } else { pause(); }
      });
      slider.addEventListener("input", function () {
        pause();
        dir = 1;
        show(parseInt(slider.value, 10));
      });
      mode.value = cfg.mode;
      sheet.onload = draw;
      sheet.src = "data:image/jpeg;base64,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";
      show(0);
    })();
    </script>

    </div>
    <br />
    <br />

.. GENERATED FROM PYTHON SOURCE LINES 75-106

We can also change the direction *(scalar in [0, 360) degrees)*, where 0 degrees
represents rightward motion, 90 degrees represents upward motion, 180 degrees
represents leftward motion, and 270 degrees represents downward motion.

.. code:: python

    BarStimulus((height, width), direction=direction)

Or the contrast *(scalar in [0,1])*

.. code:: python

    BarStimulus((height, width), contrast=contrast)

For exact info on all of the arguments, please refer to
:py:class:`~pulse2percept.stimuli.BarStimulus` and 
:py:class:`~pulse2percept.stimuli.GratingStimulus`.


Passing to an Implant
---------------------

Psychophsyics stimuli can be passed to an implant and combined with a model.
To demonstrate, we will pass a ``GratingStimululus`` to an
:py:class:`~pulse2percept.implants.ArgusII` implant and use the
:py:class:`~pulse2percept.models.AxonMapModel` [Beyeler2019]_ to interpret it:

.. important ::

  Don't forget to build the model before using ``predict_percept``


.. GENERATED FROM PYTHON SOURCE LINES 106-124

.. code-block:: Python


    from pulse2percept.implants import ArgusII
    from pulse2percept.models import AxonMapModel

    model = AxonMapModel()
    model.build()

    implant = ArgusII()
    grating = GratingStimulus((25,25), temporal_freq=0.1)
    # A model reads current, so the video is encoded first. Its frames are 20 ms
    # apart, so the pulse rate has to be at least 50 Hz for every frame to get a
    # pulse; asking for a percept at the video's own frame times then gives one
    # percept frame per video frame:
    implant.stim = grating.encode(implant=implant, freq=50)

    percept = model.predict_percept(implant, t_percept=grating.time)
    percept.play()






.. raw:: html

    <div class="output_subarea output_html rendered_html output_result">

    <div class="p2p-anim" id="p2p-anim-da8e4128df4a415f87383308e1c5ccd6">
      <div class="p2p-stage">
        <img class="p2p-bg" src="data:image/png;base64,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AADA5ghAYCcUoQMAAAAism7dOtm6dWugD8PxyIAAAADYHBkQ/3j00Uflvvvuk/379wf6UByNDAgAAIDN3elteHUiv/bt20vevHklf/780q1bN7lw4cJNn3PlyhXp1auXFCxYUHLnzi2tW7eWkydPemyjM5WnXObPn++xzdq1a6V69eqSPXt2uffee+WTTz5J8zWPHDkia9as8fFscSsEIAAAAMhUGnxoa9tVq1bJsmXLZP369e6OU2kZMGCALF26VBYuXGiGRh0/flxatWqVarvZs2fLiRMn3EvLli09AoonnnhCGjVqJLt27ZL+/fvLP/7xD/n3v//t9TWjoqKkaNGifjhj3AxDsAAAAGzuTh6CpcOZVq5caWoratasadZNmTJFWrRoIWPHjpVixYqles7Zs2dl5syZMm/ePDMsyhVolC9f3kwUWLduXfe2mlGJjIz0+tozZsyQUqVKybhx48x9ff6GDRtkwoQJ0qxZM/d2f/75p8m0pNftbg9PZEAAAABs7k4eghUdHW2CBFfwoZo0aSKhoaGyefNmr8/Zvn27XLt2zWznUq5cOZOh0P0lp8O0ChUqJLVr15ZZs2Z5nIdum3wfSgOPlPvQ4KZevXry+eefy+XLl9M8l3379pmJCitUqHAb7wBSIgMCAAAAt3Pnznnc19oJXTIqNjZWihQp4rEua9asEh4ebh5L6zlhYWEmcEkuIiLC4zlvvvmmyZDcdddd8u2338o///lPU1vSt29f9370OSn3oeeogUbOnDnNun/9619SokQJeeONN8wQrRo1akjFihXNMep2Ovxry5Yt5q8OJ9u5c2eG3w8QgAAAANieP4dg6Q/x5IYPHy4jRoxItf2gQYNk9OjRN91nZneTGjp0qPt2tWrV5OLFizJmzBh3AHI72rRpY5aNGzeaGhENMnTR4Oaee+6RIUOGyLPPPpsqKMLtIwABAACwOX8GIDExMaZblUta2Y+XXnpJOnfufNN9li5d2tRnxMXFeay/fv266YyVVu2Grk9ISJD4+HiPH/zaBSut56g6derIW2+9JVevXjXHrdum7Jyl9/X8XNmPlOrXr28WZB4CEAAAALjpj/PkAUhaChcubJZb0doKDSS0rkOHNiltdZuYmGgCBm90u2zZssnq1atN+1118OBBOXr0qNlfWrTTVYECBdxBk267YsUKj220E9fN9oHM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" alt="">
        <canvas class="p2p-canvas" width="800" height="500"></canvas>
      </div>
      <div class="p2p-controls">
        <button class="p2p-btn" data-p2p-go="first"
                title="First frame">&#9198;</button>
        <button class="p2p-btn" data-p2p-go="prev"
                title="Previous frame">&#9194;</button>
        <button class="p2p-btn p2p-toggle" title="Play/Pause">&#9654;</button>
        <button class="p2p-btn" data-p2p-go="next"
                title="Next frame">&#9193;</button>
        <button class="p2p-btn" data-p2p-go="last"
                title="Last frame">&#9197;</button>
        <input class="p2p-slider" type="range" min="0" max="50" value="0"
               step="1">
        <span class="p2p-count">1/51</span>
        <select class="p2p-mode" title="Loop mode">
          <option value="once">Once</option>
          <option value="loop">Loop</option>
          <option value="reflect">Reflect</option>
        </select>
      </div>
    </div>
    <style>
    #p2p-anim-da8e4128df4a415f87383308e1c5ccd6 { display: inline-block; max-width: 100%; width: 800px;
            font-family: sans-serif; font-size: 13px; }
    #p2p-anim-da8e4128df4a415f87383308e1c5ccd6 .p2p-stage { position: relative; line-height: 0; }
    #p2p-anim-da8e4128df4a415f87383308e1c5ccd6 .p2p-bg { width: 100%; height: auto; display: block; }
    #p2p-anim-da8e4128df4a415f87383308e1c5ccd6 .p2p-canvas { position: absolute; left: 0; top: 0;
                        width: 100%; height: 100%; }
    #p2p-anim-da8e4128df4a415f87383308e1c5ccd6 .p2p-controls { display: flex; align-items: center; gap: 4px;
                          padding-top: 4px; }
    #p2p-anim-da8e4128df4a415f87383308e1c5ccd6 .p2p-btn { cursor: pointer; border: 1px solid rgba(128,128,128,0.4);
                     border-radius: 3px; background: transparent; color: inherit;
                     padding: 1px 6px; font-size: 13px; line-height: 1.4; }
    #p2p-anim-da8e4128df4a415f87383308e1c5ccd6 .p2p-btn:hover { background: rgba(128,128,128,0.2); }
    #p2p-anim-da8e4128df4a415f87383308e1c5ccd6 .p2p-slider { flex: 1 1 auto; min-width: 40px; margin: 0 4px; }
    #p2p-anim-da8e4128df4a415f87383308e1c5ccd6 .p2p-count { font-variant-numeric: tabular-nums; opacity: 0.7;
                       white-space: nowrap; }
    #p2p-anim-da8e4128df4a415f87383308e1c5ccd6 .p2p-mode { background: transparent; color: inherit; font-size: 12px;
                      border-radius: 3px;
                      border: 1px solid rgba(128,128,128,0.4); }
    </style>
    <script>
    (function () {
      var cfg = {"n": 51, "ncols": 8, "fw": 121, "fh": 121, "sw": 121, "sh": 121, "rect": [211, 60, 386, 385], "smooth": false, "interval": 20.0, "mode": "loop", "title": {"rect": [0, 37, 800, 20], "x": 404, "y": 47, "align": "center", "font": "normal 16.7px \"DejaVu Sans\", Verdana, sans-serif", "color": "#000000"}, "labels": ["t = 0.00 ms", "t = 20.00 ms", "t = 40.00 ms", "t = 60.00 ms", "t = 80.00 ms", "t = 100.00 ms", "t = 120.00 ms", "t = 140.00 ms", "t = 160.00 ms", "t = 180.00 ms", "t = 200.00 ms", "t = 220.00 ms", "t = 240.00 ms", "t = 260.00 ms", "t = 280.00 ms", "t = 300.00 ms", "t = 320.00 ms", "t = 340.00 ms", "t = 360.00 ms", "t = 380.00 ms", "t = 400.00 ms", "t = 420.00 ms", "t = 440.00 ms", "t = 460.00 ms", "t = 480.00 ms", "t = 500.00 ms", "t = 520.00 ms", "t = 540.00 ms", "t = 560.00 ms", "t = 580.00 ms", "t = 600.00 ms", "t = 620.00 ms", "t = 640.00 ms", "t = 660.00 ms", "t = 680.00 ms", "t = 700.00 ms", "t = 720.00 ms", "t = 740.00 ms", "t = 760.00 ms", "t = 780.00 ms", "t = 800.00 ms", "t = 820.00 ms", "t = 840.00 ms", "t = 860.00 ms", "t = 880.00 ms", "t = 900.00 ms", "t = 920.00 ms", "t = 940.00 ms", "t = 960.00 ms", "t = 980.00 ms", "t = 1000.00 ms"]};
      var root = document.getElementById("p2p-anim-da8e4128df4a415f87383308e1c5ccd6");
      if (!root) { return; }
      var ctx = root.querySelector(".p2p-canvas").getContext("2d");
      var slider = root.querySelector(".p2p-slider");
      var counter = root.querySelector(".p2p-count");
      var mode = root.querySelector(".p2p-mode");
      var toggle = root.querySelector(".p2p-toggle");
      var frame = 0, dir = 1, timer = null, sheet = new Image();

      function draw() {
        if (!sheet.complete || !sheet.naturalWidth) { return; }
        var col = frame % cfg.ncols, row = (frame - col) / cfg.ncols;
        ctx.imageSmoothingEnabled = cfg.smooth;
        // Frames with an alpha channel are composited onto the static background,
        // so the previous frame has to go first or they stack up:
        ctx.clearRect(cfg.rect[0], cfg.rect[1], cfg.rect[2], cfg.rect[3]);
        ctx.drawImage(sheet, col * cfg.sw, row * cfg.sh, cfg.fw, cfg.fh,
                      cfg.rect[0], cfg.rect[1], cfg.rect[2], cfg.rect[3]);
        if (cfg.title) {
          ctx.clearRect(cfg.title.rect[0], cfg.title.rect[1],
                        cfg.title.rect[2], cfg.title.rect[3]);
          ctx.font = cfg.title.font;
          ctx.fillStyle = cfg.title.color;
          ctx.textAlign = cfg.title.align;
          ctx.textBaseline = "middle";
          ctx.fillText(cfg.labels[frame], cfg.title.x, cfg.title.y);
        }
      }

      function show(i) {
        frame = Math.max(0, Math.min(cfg.n - 1, i));
        slider.value = frame;
        counter.textContent = (frame + 1) + "/" + cfg.n;
        draw();
      }

      function pause() {
        if (timer !== null) { clearInterval(timer); timer = null; }
        toggle.innerHTML = "&#9654;";
      }

      function play() {
        if (timer !== null) { return; }
        if (mode.value === "once" && frame === cfg.n - 1) { show(0); }
        toggle.innerHTML = "&#10074;&#10074;";
        timer = setInterval(advance, Math.max(1, cfg.interval));
      }

      function advance() {
        var next = frame + dir;
        if (next > cfg.n - 1 || next < 0) {
          if (mode.value === "loop") {
            next = dir > 0 ? 0 : cfg.n - 1;
          } else if (mode.value === "reflect" && cfg.n > 1) {
            dir = -dir;
            next = frame + dir;
          } else {
            pause();
            return;
          }
        }
        show(next);
      }

      root.querySelectorAll("[data-p2p-go]").forEach(function (btn) {
        btn.addEventListener("click", function () {
          pause();
          dir = 1;
          var go = btn.dataset.p2pGo;
          show(go === "first" ? 0 : go === "last" ? cfg.n - 1 :
               go === "next" ? frame + 1 : frame - 1);
        });
      });
      toggle.addEventListener("click", function () {
        if (timer === null) { play(); } else { pause(); }
      });
      slider.addEventListener("input", function () {
        pause();
        dir = 1;
        show(parseInt(slider.value, 10));
      });
      mode.value = cfg.mode;
      sheet.onload = draw;
      sheet.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8gAAANPCAMAAAAxOQZQAAADAFBMVEUAAAABAQECAgIDAwMEBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUWFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAgICAiIiIjIyMkJCQkJCQmJiYnJycoKCgoKCgqKiorKyssLCwsLCwuLi4vLy8wMDAwMDAyMjIzMzM0NDQ0NDQ2NjY3Nzc4ODg4ODg6Ojo7Ozs8PDw8PDw+Pj4/Pz9AQEBBQUFBQUFDQ0NERERFRUVGRkZHR0dISEhJSUlJSUlLS0tMTExNTU1OTk5PT09QUFBRUVFRUVFTU1NUVFRVVVVWVlZXV1dYWFhZWVlZWVlbW1tcXFxdXV1eXl5fX19gYGBhYWFhYWFjY2NkZGRlZWVmZmZnZ2doaGhpaWlpaWlra2tsbGxtbW1ubm5vb29wcHBxcXFxcXFzc3N0dHR1dXV2dnZ3d3d4eHh5eXl5eXl7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKDg4ODg4OFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OTk5OVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6Ojo6OlpaWmpqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7Ozs7O1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PDw8PFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PT09PV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pj4+Pl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/Pz8/P19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///8OeeLkAAALaUlEQVR4Xu3TsW0DQAwEQZWu0p1dBU8DWsxEjInbzxf4eZ9dwM8SMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAh/58PnNnMuLafw3ObGdf2c3huM+Pafg7PbWZc28/huc2Ma/s5PLeZcW0/h+c2M67t5/DcZsa1/Rye28y4tp/Dc5sZ1/ZzeG4z49p+Ds9tZlzbz+G5zYxr+zk8t5lxbT+H5zYzru3n8NxmxrX9HJ7bzLi2n8NzmxnX9nN4bjPj2n4Oz21mXNvP4bnNjGv7OTy3mXFtP4fnNjOu7efw3GbGtf0cntvMuLafw3ObGdf2c3huM+Pafg7PbWZc28/huc2Ma/s5PLeZcW0/h+c2M67t5/DcZsa1/Rye28y4tp/Dc5sZ1/ZzeG4z49p+Ds9tZlzbz+G5zYxr+zk8t5lxbT+H5zYzru3n8NxmxrX9HJ7bzLi2n8NzmxnX9nN4bjPj2n4Oz21mXNvP4bnNjGv7OTy3mXFtP4fnNjOu7efw3GbGtf0cntvMuLafw3ObGdf2c3huM+Pafg7PbWZc28/huc2Ma/s5PLeZcW0/h+c2M67t5/DcZsa1/Rye28y4tp/Dc5sZ1/ZzeG4z49p+Ds9tZlzbz+G5zYxr+zk8t5lxbT+H5zYzru3n8NxmxrX9HJ7bzLi2n8NzmxnX9nN4bjPj2n4Oz21mXNvP4bnNjGv7OTy3mXFtP4fnNjOu7efw3GbGtf0cntvMuLafw3ObGdf2c3huM+Pafg7PbWZc28/huc2Ma/s5PLeZcW0/h+c2M67t5/DcZsa1/Rye28y4tp/Dc5sZ1/ZzeG4z49p+Ds9tZlzbz+G5zYxr+zk8t5lxbT+H5zYzru3n8NxmxrX9HJ7bzLi2n8NzmxnX9nN4bjPj2n4Oz21mXNvP4bnNjGv7OTy3mXFtP4fnNjOu7efw3GbGtf0cntvMuLafw3ObGdf2c3huM+Pafg7PbWZc28/huc2Ma/s5PLeZcW0/h+c2M67t5/DcZsa1/Rye28y4tp/Dc5sZ1/ZzeG4z49p+Ds9tZlzbz+G5zYxr+zk8t5lxbT+H5zYzru3n8NxmxrX9HJ7bzLi2n8NzmxnX9nN4bjPj2n4Oz21mXNvP4bnNjGv7OTy3mXFtP4fnNjOu7efw3GbGtf0cXvsDi/y279ADxgEAAAAASUVORK5CYII=";
      show(0);
    })();
    </script>

    </div>
    <br />
    <br />

.. GENERATED FROM PYTHON SOURCE LINES 125-141

As you can see in the above code segment, the stimulus passed to the implant does
not necessarily have to have the same dimensions as the electrode grid.
This is functionality built in to the implant code: The implant will automatically
rescale the stimulus to the appropriate size.
In the case of Argus II, the stimulus would thus be downscaled to a 6x10 image.

Pre-Processing Stimuli
----------------------

Since both :py:class:`~pulse2percept.stimuli.BarStimulus` and 
:py:class:`~pulse2percept.stimuli.GratingStimulus`
inherit form :py:class:`~pulse2percept.stimuli.VideoStimulus`, we can apply 
any video processing methods provided by ``VideoStimulus``.

In the following example, we will invert the stimulus before passing it to the
implant:

.. GENERATED FROM PYTHON SOURCE LINES 141-155

.. code-block:: Python


    model = AxonMapModel()
    model.build()

    implant = ArgusII()
    grating = GratingStimulus((25,25), temporal_freq=0.1).invert()
    # A model reads current, so the video is encoded first. Its frames are 20 ms
    # apart, so the pulse rate has to be at least 50 Hz for every frame to get a
    # pulse; asking for a percept at the video's own frame times then gives one
    # percept frame per video frame:
    implant.stim = grating.encode(implant=implant, freq=50)

    percept = model.predict_percept(implant, t_percept=grating.time)
    percept.play()





.. raw:: html

    <div class="output_subarea output_html rendered_html output_result">

    <div class="p2p-anim" id="p2p-anim-e7a348f7b59543f7ab7c8c23d9444939">
      <div class="p2p-stage">
        <img class="p2p-bg" src="data:image/png;base64,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AADA5ghAYCcUoQMAAAAism7dOtm6dWugD8PxyIAAAADYHBkQ/3j00Uflvvvuk/379wf6UByNDAgAAIDN3elteHUiv/bt20vevHklf/780q1bN7lw4cJNn3PlyhXp1auXFCxYUHLnzi2tW7eWkydPemyjM5WnXObPn++xzdq1a6V69eqSPXt2uffee+WTTz5J8zWPHDkia9as8fFscSsEIAAAAMhUGnxoa9tVq1bJsmXLZP369e6OU2kZMGCALF26VBYuXGiGRh0/flxatWqVarvZs2fLiRMn3EvLli09AoonnnhCGjVqJLt27ZL+/fvLP/7xD/n3v//t9TWjoqKkaNGifjhj3AxDsAAAAGzuTh6CpcOZVq5caWoratasadZNmTJFWrRoIWPHjpVixYqles7Zs2dl5syZMm/ePDMsyhVolC9f3kwUWLduXfe2mlGJjIz0+tozZsyQUqVKybhx48x9ff6GDRtkwoQJ0qxZM/d2f/75p8m0pNftbg9PZEAAAABs7k4eghUdHW2CBFfwoZo0aSKhoaGyefNmr8/Zvn27XLt2zWznUq5cOZOh0P0lp8O0ChUqJLVr15ZZs2Z5nIdum3wfSgOPlPvQ4KZevXry+eefy+XLl9M8l3379pmJCitUqHAb7wBSIgMCAAAAt3Pnznnc19oJXTIqNjZWihQp4rEua9asEh4ebh5L6zlhYWEmcEkuIiLC4zlvvvmmyZDcdddd8u2338o///lPU1vSt29f9370OSn3oeeogUbOnDnNun/9619SokQJeeONN8wQrRo1akjFihXNMep2Ovxry5Yt5q8OJ9u5c2eG3w8QgAAAANieP4dg6Q/x5IYPHy4jRoxItf2gQYNk9OjRN91nZneTGjp0qPt2tWrV5OLFizJmzBh3AHI72rRpY5aNGzeaGhENMnTR4Oaee+6RIUOGyLPPPpsqKMLtIwABAACwOX8GIDExMaZblUta2Y+XXnpJOnfufNN9li5d2tRnxMXFeay/fv266YyVVu2Grk9ISJD4+HiPH/zaBSut56g6derIW2+9JVevXjXHrdum7Jyl9/X8XNmPlOrXr28WZB4CEAAAALjpj/PkAUhaChcubJZb0doKDSS0rkOHNiltdZuYmGgCBm90u2zZssnq1atN+1118OBBOXr0qNlfWrTTVYECBdxBk267YsUKj220E9fN9oHM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" alt="">
        <canvas class="p2p-canvas" width="800" height="500"></canvas>
      </div>
      <div class="p2p-controls">
        <button class="p2p-btn" data-p2p-go="first"
                title="First frame">&#9198;</button>
        <button class="p2p-btn" data-p2p-go="prev"
                title="Previous frame">&#9194;</button>
        <button class="p2p-btn p2p-toggle" title="Play/Pause">&#9654;</button>
        <button class="p2p-btn" data-p2p-go="next"
                title="Next frame">&#9193;</button>
        <button class="p2p-btn" data-p2p-go="last"
                title="Last frame">&#9197;</button>
        <input class="p2p-slider" type="range" min="0" max="50" value="0"
               step="1">
        <span class="p2p-count">1/51</span>
        <select class="p2p-mode" title="Loop mode">
          <option value="once">Once</option>
          <option value="loop">Loop</option>
          <option value="reflect">Reflect</option>
        </select>
      </div>
    </div>
    <style>
    #p2p-anim-e7a348f7b59543f7ab7c8c23d9444939 { display: inline-block; max-width: 100%; width: 800px;
            font-family: sans-serif; font-size: 13px; }
    #p2p-anim-e7a348f7b59543f7ab7c8c23d9444939 .p2p-stage { position: relative; line-height: 0; }
    #p2p-anim-e7a348f7b59543f7ab7c8c23d9444939 .p2p-bg { width: 100%; height: auto; display: block; }
    #p2p-anim-e7a348f7b59543f7ab7c8c23d9444939 .p2p-canvas { position: absolute; left: 0; top: 0;
                        width: 100%; height: 100%; }
    #p2p-anim-e7a348f7b59543f7ab7c8c23d9444939 .p2p-controls { display: flex; align-items: center; gap: 4px;
                          padding-top: 4px; }
    #p2p-anim-e7a348f7b59543f7ab7c8c23d9444939 .p2p-btn { cursor: pointer; border: 1px solid rgba(128,128,128,0.4);
                     border-radius: 3px; background: transparent; color: inherit;
                     padding: 1px 6px; font-size: 13px; line-height: 1.4; }
    #p2p-anim-e7a348f7b59543f7ab7c8c23d9444939 .p2p-btn:hover { background: rgba(128,128,128,0.2); }
    #p2p-anim-e7a348f7b59543f7ab7c8c23d9444939 .p2p-slider { flex: 1 1 auto; min-width: 40px; margin: 0 4px; }
    #p2p-anim-e7a348f7b59543f7ab7c8c23d9444939 .p2p-count { font-variant-numeric: tabular-nums; opacity: 0.7;
                       white-space: nowrap; }
    #p2p-anim-e7a348f7b59543f7ab7c8c23d9444939 .p2p-mode { background: transparent; color: inherit; font-size: 12px;
                      border-radius: 3px;
                      border: 1px solid rgba(128,128,128,0.4); }
    </style>
    <script>
    (function () {
      var cfg = {"n": 51, "ncols": 8, "fw": 121, "fh": 121, "sw": 121, "sh": 121, "rect": [211, 60, 386, 385], "smooth": false, "interval": 20.0, "mode": "loop", "title": {"rect": [0, 37, 800, 20], "x": 404, "y": 47, "align": "center", "font": "normal 16.7px \"DejaVu Sans\", Verdana, sans-serif", "color": "#000000"}, "labels": ["t = 0.00 ms", "t = 20.00 ms", "t = 40.00 ms", "t = 60.00 ms", "t = 80.00 ms", "t = 100.00 ms", "t = 120.00 ms", "t = 140.00 ms", "t = 160.00 ms", "t = 180.00 ms", "t = 200.00 ms", "t = 220.00 ms", "t = 240.00 ms", "t = 260.00 ms", "t = 280.00 ms", "t = 300.00 ms", "t = 320.00 ms", "t = 340.00 ms", "t = 360.00 ms", "t = 380.00 ms", "t = 400.00 ms", "t = 420.00 ms", "t = 440.00 ms", "t = 460.00 ms", "t = 480.00 ms", "t = 500.00 ms", "t = 520.00 ms", "t = 540.00 ms", "t = 560.00 ms", "t = 580.00 ms", "t = 600.00 ms", "t = 620.00 ms", "t = 640.00 ms", "t = 660.00 ms", "t = 680.00 ms", "t = 700.00 ms", "t = 720.00 ms", "t = 740.00 ms", "t = 760.00 ms", "t = 780.00 ms", "t = 800.00 ms", "t = 820.00 ms", "t = 840.00 ms", "t = 860.00 ms", "t = 880.00 ms", "t = 900.00 ms", "t = 920.00 ms", "t = 940.00 ms", "t = 960.00 ms", "t = 980.00 ms", "t = 1000.00 ms"]};
      var root = document.getElementById("p2p-anim-e7a348f7b59543f7ab7c8c23d9444939");
      if (!root) { return; }
      var ctx = root.querySelector(".p2p-canvas").getContext("2d");
      var slider = root.querySelector(".p2p-slider");
      var counter = root.querySelector(".p2p-count");
      var mode = root.querySelector(".p2p-mode");
      var toggle = root.querySelector(".p2p-toggle");
      var frame = 0, dir = 1, timer = null, sheet = new Image();

      function draw() {
        if (!sheet.complete || !sheet.naturalWidth) { return; }
        var col = frame % cfg.ncols, row = (frame - col) / cfg.ncols;
        ctx.imageSmoothingEnabled = cfg.smooth;
        // Frames with an alpha channel are composited onto the static background,
        // so the previous frame has to go first or they stack up:
        ctx.clearRect(cfg.rect[0], cfg.rect[1], cfg.rect[2], cfg.rect[3]);
        ctx.drawImage(sheet, col * cfg.sw, row * cfg.sh, cfg.fw, cfg.fh,
                      cfg.rect[0], cfg.rect[1], cfg.rect[2], cfg.rect[3]);
        if (cfg.title) {
          ctx.clearRect(cfg.title.rect[0], cfg.title.rect[1],
                        cfg.title.rect[2], cfg.title.rect[3]);
          ctx.font = cfg.title.font;
          ctx.fillStyle = cfg.title.color;
          ctx.textAlign = cfg.title.align;
          ctx.textBaseline = "middle";
          ctx.fillText(cfg.labels[frame], cfg.title.x, cfg.title.y);
        }
      }

      function show(i) {
        frame = Math.max(0, Math.min(cfg.n - 1, i));
        slider.value = frame;
        counter.textContent = (frame + 1) + "/" + cfg.n;
        draw();
      }

      function pause() {
        if (timer !== null) { clearInterval(timer); timer = null; }
        toggle.innerHTML = "&#9654;";
      }

      function play() {
        if (timer !== null) { return; }
        if (mode.value === "once" && frame === cfg.n - 1) { show(0); }
        toggle.innerHTML = "&#10074;&#10074;";
        timer = setInterval(advance, Math.max(1, cfg.interval));
      }

      function advance() {
        var next = frame + dir;
        if (next > cfg.n - 1 || next < 0) {
          if (mode.value === "loop") {
            next = dir > 0 ? 0 : cfg.n - 1;
          } else if (mode.value === "reflect" && cfg.n > 1) {
            dir = -dir;
            next = frame + dir;
          } else {
            pause();
            return;
          }
        }
        show(next);
      }

      root.querySelectorAll("[data-p2p-go]").forEach(function (btn) {
        btn.addEventListener("click", function () {
          pause();
          dir = 1;
          var go = btn.dataset.p2pGo;
          show(go === "first" ? 0 : go === "last" ? cfg.n - 1 :
               go === "next" ? frame + 1 : frame - 1);
        });
      });
      toggle.addEventListener("click", function () {
        if (timer === null) { play(); } else { pause(); }
      });
      slider.addEventListener("input", function () {
        pause();
        dir = 1;
        show(parseInt(slider.value, 10));
      });
      mode.value = cfg.mode;
      sheet.onload = draw;
      sheet.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8gAAANPCAMAAAAxOQZQAAADAFBMVEUAAAABAQECAgIDAwMEBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUWFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAgICAiIiIjIyMkJCQkJCQmJiYnJycoKCgoKCgqKiorKyssLCwsLCwuLi4vLy8wMDAwMDAyMjIzMzM0NDQ0NDQ2NjY3Nzc4ODg4ODg6Ojo7Ozs8PDw8PDw+Pj4/Pz9AQEBBQUFBQUFDQ0NERERFRUVGRkZHR0dISEhJSUlJSUlLS0tMTExNTU1OTk5PT09QUFBRUVFRUVFTU1NUVFRVVVVWVlZXV1dYWFhZWVlZWVlbW1tcXFxdXV1eXl5fX19gYGBhYWFhYWFjY2NkZGRlZWVmZmZnZ2doaGhpaWlpaWlra2tsbGxtbW1ubm5vb29wcHBxcXFxcXFzc3N0dHR1dXV2dnZ3d3d4eHh5eXl5eXl7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKDg4ODg4OFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OTk5OVlZWWlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6Ojo6OlpaWmpqanp6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7Ozs7O1tbW2tra3t7e4uLi5ubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PDw8PFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PT09PV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pj4+Pl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/Pz8/P19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///8OeeLkAAALaUlEQVR4Xu3TsW0DQAwEQZWu0p1dBU8DWsxEjInbzxf4eZ9dwM8SMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAhQ4CQIUDIECBkCBAyBAgZAoQMAUKGACFDgJAhQMgQIGQIEDIECBkChAwBQoYAIUOAkCFAyBAgZAgQMgQIGQKEDAFChgAh/58PnNnMuLafw3ObGdf2c3huM+Pafg7PbWZc28/huc2Ma/s5PLeZcW0/h+c2M67t5/DcZsa1/Rye28y4tp/Dc5sZ1/ZzeG4z49p+Ds9tZlzbz+G5zYxr+zk8t5lxbT+H5zYzru3n8NxmxrX9HJ7bzLi2n8NzmxnX9nN4bjPj2n4Oz21mXNvP4bnNjGv7OTy3mXFtP4fnNjOu7efw3GbGtf0cntvMuLafw3ObGdf2c3huM+Pafg7PbWZc28/huc2Ma/s5PLeZcW0/h+c2M67t5/DcZsa1/Rye28y4tp/Dc5sZ1/ZzeG4z49p+Ds9tZlzbz+G5zYxr+zk8t5lxbT+H5zYzru3n8NxmxrX9HJ7bzLi2n8NzmxnX9nN4bjPj2n4Oz21mXNvP4bnNjGv7OTy3mXFtP4fnNjOu7efw3GbGtf0cntvMuLafw3ObGdf2c3huM+Pafg7PbWZc28/huc2Ma/s5PLeZcW0/h+c2M67t5/DcZsa1/Rye28y4tp/Dc5sZ1/ZzeG4z49p+Ds9tZlzbz+G5zYxr+zk8t5lxbT+H5zYzru3n8NxmxrX9HJ7bzLi2n8NzmxnX9nN4bjPj2n4Oz21mXNvP4bnNjGv7OTy3mXFtP4fnNjOu7efw3GbGtf0cntvMuLafw3ObGdf2c3huM+Pafg7PbWZc28/huc2Ma/s5PLeZcW0/h+c2M67t5/DcZsa1/Rye28y4tp/Dc5sZ1/ZzeG4z49p+Ds9tZlzbz+G5zYxr+zk8t5lxbT+H5zYzru3n8NxmxrX9HJ7bzLi2n8NzmxnX9nN4bjPj2n4Oz21mXNvP4bnNjGv7OTy3mXFtP4fnNjOu7efw3GbGtf0cntvMuLafw3ObGdf2c3huM+Pafg7PbWZc28/huc2Ma/s5PLeZcW0/h+c2M67t5/DcZsa1/Rye28y4tp/Dc5sZ1/ZzeG4z49p+Ds9tZlzbz+G5zYxr+zk8t5lxbT+H5zYzru3n8NxmxrX9HJ7bzLi2n8NzmxnX9nN4bjPj2n4Oz21mXNvP4bnNjGv7OTy3mXFtP4fnNjOu7efw3GbGtf0cXvsDi/y279ADxgEAAAAASUVORK5CYII=";
      show(0);
    })();
    </script>

    </div>
    <br />
    <br />


.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (0 minutes 1.178 seconds)


.. _sphx_glr_download_examples_stimuli_plot_psychophysics.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: plot_psychophysics.ipynb <plot_psychophysics.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: plot_psychophysics.py <plot_psychophysics.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: plot_psychophysics.zip <plot_psychophysics.zip>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
