The OCTA Toolbox: A new tool to create flexible and
reproducible stimuli for studying perception and appreciation

Eline Van Geert, Christophe Bossens, & Johan Wagemans
Laboratory of Experimental Psychology, KU Leuven, Belgium

Aim of OCTA

Create reproducible and flexible multi-element displays varying qualitatively and quantitatively in:

ORDER
order
structure and organization
COMPLEXITY
complexity
quantity and variety

available as a free tool for
programmers (as a Python library) and
non-programmers (as an online Shiny app)

Test the OCTA Shiny app & code













Shiny app    documentation    Python code

1 Create stimulus

Stimulus types
  • Grid
  • Outline
  • Concentric
Stimulus features
     

2 Add element positions

Position pattern definitions


Create2DGrid

CreateSineGrid

CreateRandomPositions

CreateCircle

CreateShape

CreateCustomPositions

3 Add feature patterns & values

Features (including dynamic feature options!)

shapes

fillcolors

boundingboxes

orientations

borderwidths

bordercolors

opacities

mirrorvalues
additional non-visual features: links, classlabels, idlabels
Pattern types

Repeat

ElementRepeat

Mirror

Gradient

Random

TiledGrid

TiledElementGrid
Pattern directions

AcrossElements

AcrossRows

AcrossColumns

AcrossLeftDiagonal

AcrossRightDiagonal

AcrossLayers

4 Add deviations & calculate measures

Position and element deviations

position
jitter

position
deviations

swap
elements

randomize
elements

remove
elements
Feature deviations

swap
features

change
features

randomize
features

jitter
features

Calculate order and complexity measures
ORDER
pattern type congruency
pattern direction congruency
# pattern deviants
# position deviants
COMPLEXITY
# elements
# distinct elements
# distinct values
# non-identical features

Calculate your own measures using the vector or raster image output

5 Render, save, and recreate the stimulus

Output options
  • stimulus as vector image (SVG)
  • stimulus as raster image (PNG, JPG, PDF, TIFF)
  • computer-readable JSON output to recreate the stimulus
    in Python with the LoadFromJSON function
  • in the online Shiny app: download or view the Python code
    to create the stimulus in Python

Set a seed to reproduce the exact same random deviations

Scale option to increase quality for raster images


SVG

PNG scale 0.5

PNG scale 1

PNG scale 10

Applications

OCTA stimuli are ideal for online or offline studies on:

aesthetic
appreciation

order and
complexity

grouping
principles

symmetry
detection

local-global processing

creativity
 

visual
search

and many
more!
easy to use in any kind of task
(rating, ranking, sorting, detection, construction, adjustment, …)

Why use OCTA?

OCTA facilitates reproducible stimulus construction and experimental design in research on aesthetics and visual perception

Use OCTA when you want to create stimuli that are:
  • varying qualitatively or quantitatively in order and/or complexity
  • reproducible, adjustable, and open source
  • easy to create
  • tailored for online use
  • static or dynamic
  • multimodal (adding sound is possible using Javascript)
Many opportunities for further development

Subscribe to email updates on OCTA here

Get in touch for questions, feature requests, or collaborations!
eline.vangeert@kuleuven.be

Contact

Eline Van Geert - eline.vangeert@kuleuven.be
supported by a Ph.D. fellowship of the Research Foundation - Flanders (FWO)
GestaltReVision logo

European Conference on Visual Perception 2021 - August 26th - Virtual

The OCTA Shiny app