Skip to content

Commit

Permalink
Demo linear gratings, frames
Browse files Browse the repository at this point in the history
  • Loading branch information
JorisVincent committed Dec 13, 2022
1 parent b2653bd commit f1afdcf
Showing 1 changed file with 87 additions and 0 deletions.
87 changes: 87 additions & 0 deletions demo/illusions/grating_parameters.ipynb
Expand Up @@ -90,6 +90,93 @@
"# Show\n",
"display(ui, out)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from stimuli.components.grating import square_wave as linear\n",
"from stimuli.components.frame import frames\n",
"\n",
"# Define widgets\n",
"w_length = iw.IntSlider(value=8.0, min=1, max=10, description=\"heigh/width [deg]\")\n",
"w_ppd = iw.IntSlider(value=32, min=1, max=64, description=\"ppd\")\n",
"\n",
"w_frequency = iw.FloatSlider(value=2.0, min=0.1, max=3.0, description=\"frequency\")\n",
"w_phases = iw.IntSlider(value=4, min=0, max=10, description=\"N phases\")\n",
"w_phase_width = iw.FloatSlider(value=1.0, min=0., max=4.0, description=\"phase_width\")\n",
"w_use_which = iw.SelectMultiple(options=['frequency', 'n_phases', 'phase_width'], value=['n_phases'], description='use param(s):')\n",
"w_period = iw.ToggleButtons(options=[\"ignore\", \"full\", \"half\"], value=\"ignore\", button_style=\"\", description=\"ensure period\")\n",
"\n",
"# Layout\n",
"b_resolution = iw.HBox([w_length, w_ppd])\n",
"b_grating_params = iw.VBox([iw.HBox([w_use_which, iw.VBox([w_frequency, w_phases, w_phase_width])]),w_period])\n",
"ui = iw.VBox([b_resolution, b_grating_params])\n",
"\n",
"# Function for resolving\n",
"def show_gratings(\n",
" length=None,\n",
" visual_angle=None,\n",
" ppd=None,\n",
" frequency=None,\n",
" n_phases=None,\n",
" phase_width=None,\n",
" period=\"ignore\",\n",
" use_params=None,\n",
"):\n",
" stimuli = {\n",
" \"horizontal\": linear(\n",
" shape=(length, length),\n",
" visual_size=(visual_angle, visual_angle),\n",
" ppd=ppd,\n",
" frequency=frequency if \"frequency\" in use_params else None,\n",
" n_bars=n_phases if \"n_phases\" in use_params else None,\n",
" bar_width=phase_width if \"phase_width\" in use_params else None,\n",
" period=period,\n",
" orientation=\"horizontal\",\n",
" ),\n",
" \"vertical\": linear(\n",
" shape=(length, length),\n",
" visual_size=(visual_angle, visual_angle),\n",
" ppd=ppd,\n",
" frequency=frequency if \"frequency\" in use_params else None,\n",
" n_bars=n_phases if \"n_phases\" in use_params else None,\n",
" bar_width=phase_width if \"phase_width\" in use_params else None,\n",
" period=period,\n",
" orientation=\"vertical\",\n",
" ),\n",
" \"frames\": frames(\n",
" shape=(length, length),\n",
" visual_size=(visual_angle, visual_angle),\n",
" ppd=ppd,\n",
" frequency=frequency if \"frequency\" in use_params else None,\n",
" n_frames=n_phases if \"n_phases\" in use_params else None,\n",
" frame_width=phase_width if \"phase_width\" in use_params else None,\n",
" period=period,\n",
" )\n",
" }\n",
" plot_stimuli(stimuli)\n",
"\n",
"\n",
"# Set interactivity\n",
"out = iw.interactive_output(\n",
" show_gratings,\n",
" {\n",
" \"visual_angle\": w_length,\n",
" \"ppd\": w_ppd,\n",
" \"frequency\": w_frequency,\n",
" \"n_phases\": w_phases,\n",
" \"phase_width\": w_phase_width,\n",
" \"period\": w_period,\n",
" \"use_params\": w_use_which,\n",
" },\n",
")\n",
"\n",
"# Show\n",
"display(ui, out)"
]
}
],
"metadata": {
Expand Down

0 comments on commit f1afdcf

Please sign in to comment.