OCTA is a Python library to create stimuli varying qualitatively and quantitatively in order and complexity, based on regularity and variety along multiple dimensions (e.g., position, shape, size, color, orientation) of the elements in the patterns. This Python toolbox provides perception and aesthetics researchers with a free and easy way to create reproducible and parametrically manipulated stimulus sets, with a focus on multi-element displays. Elements can include geometric shapes, but also images or custom-defined vector-based shapes to increase ecological validity. The standard vector-based output is ideal for experiments on the web and the creation of dynamic interfaces and stimuli. This flexibility is evidenced further by the option to animate specific elements in the display. An additional benefit of OCTA is its accessibility: researchers with programming experience can use the available functions or specify additional functionality tailored to their own wishes, whereas researchers less familiar with programming can use the point-and-click interface that is provided. With OCTA being fast, flexible, and transparent, we strongly believe that this toolbox will facilitate reproducible stimulus construction and experimental design in research on order, complexity, and aesthetics. In addition, OCTA can be a very useful tool to study research questions concerning visual perceptual organization and visual perception in general.

Example stimulus (OCTA demo with code)


stimulus = Grid(9,9, row_spacing=25, col_spacing=25)

stimulus.boundingboxes = GridPattern.RepeatAcrossElements([(20,20)])
stimulus.shapes = GridPattern.RepeatAcrossLayers([Rectangle, Triangle, Ellipse])
stimulus.fillcolors = GridPattern.GradientAcrossRightDiagonal(start_value = 'limegreen', end_value = 'steelblue')
stimulus.orientations = GridPattern.MirrorAcrossLeftDiagonal([-90,-45,0,45,90])