From e1f86ee455ab5bc0068c7518c32dbcfd20394d82 Mon Sep 17 00:00:00 2001 From: lynnschmittwilken Date: Mon, 24 Oct 2022 20:03:28 +0200 Subject: [PATCH] added demo JN for todorovics --- demo/todorovic.ipynb | 667 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 667 insertions(+) create mode 100644 demo/todorovic.ipynb diff --git a/demo/todorovic.ipynb b/demo/todorovic.ipynb new file mode 100644 index 00000000..653eccd5 --- /dev/null +++ b/demo/todorovic.ipynb @@ -0,0 +1,667 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import itertools\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "import IPython\n", + "import ipywidgets as iw\n", + "from stimuli.utils import plot_stimuli, plot_stim" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# todorovic_rectangle_generalized\n", + "\n", + "General version of the Todorovic stimulus with rectangular target and with flexible target and cover placement." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from stimuli.illusions.todorovic import todorovic_rectangle_generalized" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Parameterization" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "params = {\n", + " \"visual_size\": (10., 10.),\n", + " \"ppd\": 10.0,\n", + " \"target_size\": (4., 4.),\n", + " \"target_pos\": (3., 3.),\n", + " \"covers_size\": (2., 2.),\n", + " \"covers_posx\": (2.0, 6.0, 2.0, 6.0),\n", + " \"covers_posy\": (2.0, 6.0, 6.0, 2.0),\n", + " \"intensity_background\": 0.,\n", + " \"intensity_target\": 0.5,\n", + " \"intensity_covers\": 1.,\n", + "}\n", + " \n", + "stim = todorovic_rectangle_generalized(**params)\n", + "plot_stim(stim)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With this general form of the stimulus, it is possible to add as many covers as desired by adding more cover coordinates in `covers_posx` and `covers_posy`.\n", + "\n", + "Keep in mind that you need as many elements in`covers_posx` as in `covers_posy`." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "params = {\n", + " \"visual_size\": (10., 10.),\n", + " \"ppd\": 10.0,\n", + " \"target_size\": (4., 4.),\n", + " \"target_pos\": (3., 3.),\n", + " \"covers_size\": (2., 2.),\n", + " \"intensity_background\": 0.,\n", + " \"intensity_target\": 0.5,\n", + " \"intensity_covers\": 1.,\n", + "}\n", + " \n", + "stim1 = todorovic_rectangle_generalized(**params,\n", + " covers_posx=(1., 4., 7.),\n", + " covers_posy=(1., 4., 7.))\n", + "\n", + "stim2 = todorovic_rectangle_generalized(**params,\n", + " covers_posx=(2., 2., 6., 2., 6., 6.),\n", + " covers_posy=(2., 4., 6., 6., 4., 2.))\n", + "\n", + "plot_stimuli({\"Example 1:\": stim1, \"Example 2:\": stim2})\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# todorovic_rectangle\n", + "\n", + "Todorovic stimulus with rectangular target and central target and cover placement." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from stimuli.illusions.todorovic import todorovic_rectangle" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Parameterization" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "params = {\n", + " \"visual_size\": (10., 10.),\n", + " \"ppd\": 10.0,\n", + " \"target_size\": (4., 4.),\n", + " \"covers_size\": (2., 2.),\n", + " \"covers_offset\": (2., 2.),\n", + " \"intensity_background\": 0.,\n", + " \"intensity_target\": 0.5,\n", + " \"intensity_covers\": 1.,\n", + "}\n", + " \n", + "stim = todorovic_rectangle(**params)\n", + "plot_stim(stim)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In case you want everything to be symmetric, it is sufficient to define one element of all size and position-related variables." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "params = {\n", + " \"visual_size\": 10.,\n", + " \"ppd\": 10.0,\n", + " \"target_size\": 4.,\n", + " \"covers_size\": 2.,\n", + " \"covers_offset\": 2.,\n", + " \"intensity_background\": 0.,\n", + " \"intensity_target\": 0.5,\n", + " \"intensity_covers\": 1.,\n", + "}\n", + " \n", + "stim = todorovic_rectangle(**params)\n", + "plot_stim(stim)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Interactive" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4d23ba1956d84678a1b93caa82730349", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(IntSlider(value=12, description='height [deg]', max=16, min=5), IntSlider(value=…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a3b1586eed494f7e89f53168ad943fbd", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Define widgets\n", + "w_height = iw.IntSlider(value=12, min=5, max=16, description=\"height [deg]\")\n", + "w_width = iw.IntSlider(value=12, min=5, max=16, description=\"width [deg]\")\n", + "w_ppd = iw.IntSlider(value=10, min=1, max=30, description=\"ppd\")\n", + "w_size = iw.HBox([w_height, w_width, w_ppd])\n", + "\n", + "w_theight = iw.FloatSlider(value=4., min=0.1, max=6.0, description=\"target height\")\n", + "w_twidth = iw.FloatSlider(value=4., min=0.1, max=6.0, description=\"target width\")\n", + "w_tsize = iw.HBox([w_theight, w_twidth])\n", + "\n", + "w_cheight = iw.FloatSlider(value=3., min=0.1, max=6.0, description=\"cover height\")\n", + "w_cwidth = iw.FloatSlider(value=3., min=0.1, max=6.0, description=\"cover width\")\n", + "w_csize = iw.HBox([w_cheight, w_cwidth])\n", + "\n", + "w_coffy = iw.FloatSlider(value=2., min=1., max=4.0, description=\"cover offset y\")\n", + "w_coffx = iw.FloatSlider(value=2., min=1., max=4.0, description=\"cover offset x\")\n", + "w_coff = iw.HBox([w_coffy, w_coffx])\n", + "\n", + "w_iback = iw.FloatSlider(value=0.0, min=0., max=1.0, description=\"intensity background\")\n", + "w_icovers = iw.FloatSlider(value=1.0, min=0., max=1.0, description=\"intensity covers\")\n", + "w_itarget = iw.FloatSlider(value=0.5, min=0., max=1.0, description=\"intensity target\")\n", + "w_intensities = iw.HBox([w_iback, w_icovers, w_itarget])\n", + "\n", + "ui = iw.VBox([w_size, w_tsize, w_csize, w_coff, w_intensities])\n", + "\n", + "def show_todorovic(\n", + " height=None,\n", + " width=None,\n", + " ppd=None,\n", + " target_height=None,\n", + " target_width=None,\n", + " cover_height=None,\n", + " cover_width=None,\n", + " cover_offset_y=None,\n", + " cover_offset_x=None,\n", + " intensity_background=None,\n", + " intensity_covers=None,\n", + " intensity_target=None,\n", + "):\n", + "\n", + " stim = todorovic_rectangle(\n", + " visual_size=(height, width),\n", + " ppd=ppd,\n", + " target_size=(target_height, target_width),\n", + " covers_size=(cover_height, cover_width),\n", + " covers_offset=(cover_offset_y, cover_offset_x),\n", + " intensity_background=intensity_background,\n", + " intensity_covers=intensity_covers,\n", + " intensity_target=intensity_target,\n", + " )\n", + " plot_stim(stim)\n", + "\n", + "\n", + "out = iw.interactive_output(show_todorovic,\n", + " {\n", + " \"height\": w_height,\n", + " \"width\": w_width,\n", + " \"ppd\": w_ppd,\n", + " \"target_height\": w_theight,\n", + " \"target_width\": w_twidth,\n", + " \"cover_height\": w_cheight,\n", + " \"cover_width\": w_cwidth,\n", + " \"cover_offset_y\": w_coffy,\n", + " \"cover_offset_x\": w_coffx,\n", + " \"intensity_background\": w_iback,\n", + " \"intensity_covers\": w_icovers,\n", + " \"intensity_target\": w_itarget,\n", + " })\n", + "\n", + "display(ui, out)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# todorovic_cross_generalized\n", + "\n", + "General version of the Todorovic stimulus with cross-like target and with flexible target and cover placement." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "from stimuli.illusions.todorovic import todorovic_cross_generalized" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Parameterization" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "params = {\n", + " \"visual_size\": (10., 10.),\n", + " \"ppd\": 10.0,\n", + " \"target_arms_size\": (3., 3., 4., 4.),\n", + " \"target_thickness\": 2.,\n", + " \"covers_size\": (2., 2.),\n", + " \"covers_posx\": (2.0, 6.0, 2.0, 6.0),\n", + " \"covers_posy\": (2.0, 6.0, 6.0, 2.0),\n", + " \"intensity_background\": 0.,\n", + " \"intensity_target\": 0.5,\n", + " \"intensity_covers\": 1.,\n", + "}\n", + " \n", + "stim = todorovic_cross_generalized(**params)\n", + "plot_stim(stim)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "params = {\n", + " \"visual_size\": 10.,\n", + " \"ppd\": 10.0,\n", + " \"target_arms_size\": 4.,\n", + " \"target_thickness\": 2.,\n", + " \"covers_size\": 2.,\n", + " \"intensity_background\": 0.,\n", + " \"intensity_target\": 0.5,\n", + " \"intensity_covers\": 1.,\n", + "}\n", + " \n", + "stim1 = todorovic_cross_generalized(**params,\n", + " covers_posx=(1., 4., 7.),\n", + " covers_posy=(1., 4., 7.))\n", + "\n", + "stim2 = todorovic_cross_generalized(**params,\n", + " covers_posx=(2., 2., 6., 2., 6., 6.),\n", + " covers_posy=(2., 4., 6., 6., 4., 2.))\n", + "\n", + "plot_stimuli({\"Example 1:\": stim1, \"Example 2:\": stim2})\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# todorovic_cross\n", + "Todorovic stimulus with cross-like target and central target and cover placement." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "from stimuli.illusions.todorovic import todorovic_cross" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Parameterization" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "params = {\n", + " \"visual_size\": (10., 10.),\n", + " \"ppd\": 10.0,\n", + " \"target_arms_size\": (4., 3.),\n", + " \"target_thickness\": 2.,\n", + " \"covers_size\": (2., 2.),\n", + " \"intensity_background\": 0.,\n", + " \"intensity_target\": 0.5,\n", + " \"intensity_covers\": 1.,\n", + "}\n", + " \n", + "stim = todorovic_cross(**params)\n", + "plot_stim(stim)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Interactive" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7f47090cb532402cb772c5ab8187b775", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(IntSlider(value=12, description='height [deg]', max=16, min=5), IntSlider(value=…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "c8cad86c498e488399ec86a17f147e2c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Define widgets\n", + "w_height = iw.IntSlider(value=12, min=5, max=16, description=\"height [deg]\")\n", + "w_width = iw.IntSlider(value=12, min=5, max=16, description=\"width [deg]\")\n", + "w_ppd = iw.IntSlider(value=10, min=1, max=32, description=\"ppd\")\n", + "w_size = iw.HBox([w_height, w_width, w_ppd])\n", + "\n", + "w_theight = iw.FloatSlider(value=4., min=0.1, max=6.0, description=\"target height\")\n", + "w_twidth = iw.FloatSlider(value=4., min=0.1, max=6.0, description=\"target width\")\n", + "w_tthick = iw.FloatSlider(value=2., min=0.1, max=3.0, description=\"target thickness\")\n", + "w_tsize = iw.HBox([w_theight, w_twidth, w_tthick])\n", + "\n", + "w_cheight = iw.FloatSlider(value=3., min=0.1, max=6.0, description=\"cover height\")\n", + "w_cwidth = iw.FloatSlider(value=3., min=0.1, max=6.0, description=\"cover width\")\n", + "w_csize = iw.HBox([w_cheight, w_cwidth])\n", + "\n", + "w_iback = iw.FloatSlider(value=0.0, min=0., max=1.0, description=\"intensity background\")\n", + "w_icovers = iw.FloatSlider(value=1.0, min=0., max=1.0, description=\"intensity covers\")\n", + "w_itarget = iw.FloatSlider(value=0.5, min=0., max=1.0, description=\"intensity target\")\n", + "w_intensities = iw.HBox([w_iback, w_icovers, w_itarget])\n", + "\n", + "ui = iw.VBox([w_size, w_tsize, w_csize, w_intensities])\n", + "\n", + "def show_todorovic(\n", + " height=None,\n", + " width=None,\n", + " ppd=None,\n", + " target_height=None,\n", + " target_width=None,\n", + " target_thickness=None,\n", + " cover_height=None,\n", + " cover_width=None,\n", + " intensity_background=None,\n", + " intensity_covers=None,\n", + " intensity_target=None,\n", + "):\n", + "\n", + " stim = todorovic_cross(\n", + " visual_size=(height, width),\n", + " ppd=ppd,\n", + " target_arms_size=(target_height, target_width),\n", + " target_thickness=target_thickness,\n", + " covers_size=(cover_height, cover_width),\n", + " intensity_background=intensity_background,\n", + " intensity_covers=intensity_covers,\n", + " intensity_target=intensity_target,\n", + " )\n", + " plot_stim(stim)\n", + "\n", + "\n", + "out = iw.interactive_output(show_todorovic,\n", + " {\n", + " \"height\": w_height,\n", + " \"width\": w_width,\n", + " \"ppd\": w_ppd,\n", + " \"target_height\": w_theight,\n", + " \"target_width\": w_twidth,\n", + " \"target_thickness\": w_tthick,\n", + " \"cover_height\": w_cheight,\n", + " \"cover_width\": w_cwidth,\n", + " \"intensity_background\": w_iback,\n", + " \"intensity_covers\": w_icovers,\n", + " \"intensity_target\": w_itarget,\n", + " })\n", + "\n", + "display(ui, out)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.13" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + }, + "vscode": { + "interpreter": { + "hash": "d79f930315d22092267204fc095ece7b80c939bb23fde6f7397d8c6352112825" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}