Arc Prize problem type: the transformation

The arc prize problems are visual – naturally they encounter similar situations that visual editors do.

Q: Taken a shape, can you flood fill it?

Here, the shape inside of the shape gets a fill of a certain color
This is flood fill with the boundaries as walls https://arcprize.org/play?task=e73095fd

Q: Can you take a shape and transform it by a consistent transform – scaling?

Here the shape is scaled
The original shape is taken and scaled 2x: https://arcprize.org/play?task=f25fbde4

Q: Can you take a shape and transform it by a relative transform – relative size decides color?

Here the tallest gets blue, then next yellow, then next red https://arcprize.org/play?task=ea32f347

Q: Can you take a shape and transform it by a consistent transform – painting more shapes?

Here every shape gets a blue circle
Here red shapes get two blue circles, yellow shapes get one blue circle
Each square gets added rows to its bottom based on how many different colors are in the square; https://arcprize.org/play?task=fcc82909

Q: Can you duplicate a pattern by some offset? filling it to the boundaries in some direction?

Could we create a consistent framework?

  • Given a starting grid
  • Can you perform a series of paints into a result grid?
    • Q: What data, patterns we can draw from:
      • input,
      • output
      • transition of input -> output?
    • The paints are based on “strategies” that we already use as humans.
      • sense of empty space in a shape -> flood fillable spots
      • sense of above, right, below, left -> locations, directions for additional paints
      • sense of size -> for scaling
      • sense of relativity -> for shape relative paints
      • sense of uniqueness and counts -> for shape specific transformations
    • Q: Is the secret to enumerate all of the human concepts of visual sense?
      • or is the end goal to create a system, that could LEARN all of our visual senses
      • well, there could be a different secret to the competition and one for visual sense AGI
Python
def enrich_data(input, output):
    return {
      "input": input,
      "output": output,
      # insights
      "input_data": analyze_input(...),
      "output_data": analyze_output(...),
      "transition_data": analyze_transition(...)
    }
    
def strategy_finder(data):
    data = enrich_data(data)
    strategies = [...]
    
    results = []
    
    for strat in strategies:
        paints = paint_solver(data, strat)
        if draw(data.input) == data.output:
            results.append(strat)
            
    return results