from octa.Stimulus import Grid, Outline, Concentric, Stimulus from octa.Positions import Positions from octa.patterns import GridPattern, Pattern from octa.shapes import Ellipse, Rectangle, Triangle, Image, Text, Polygon, RegularPolygon from octa.measurements import Order, Complexity random.seed(1630595518) stimulus = Grid(n_rows = 7, n_cols = 19, row_spacing = 37, col_spacing = 37, x_margin = 60, y_margin = 60, background_color = 'none') stimulus.positions = Positions.CreateSineGrid(n_rows = 7, n_cols = 19, row_spacing = 37, col_spacing = 37, A = 15, f = 0.2, axis = "xy") stimulus.positions.SetPositionDeviations(element_id = [66], x_offset = [0], y_offset = [15]) stimulus.shapes = GridPattern.RepeatAcrossRightDiagonal([Ellipse, Triangle, Rectangle]) stimulus.fillcolors = GridPattern.RepeatAcrossRightDiagonal(["#1D8DB0", "#6AC2EE", "#123C75"]) stimulus.boundingboxes = GridPattern.RepeatAcrossColumns([(20,20)]) stimulus.orientations = GridPattern.MirrorAcrossRightDiagonal([0]) stimulus.remove_elements(element_id = [84,85,86,67,104,103,102,105]) stimulus.set_element_shapes([Image("data:image/jpeg;base64,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")], element_id = [66]) stimulus.set_element_boundingboxes([(150,200)], element_id = [66]) stimulus.Show()