ARC-TGI Logo

ARC-TGI: ARC Task Generators Inventory

A project for developing generators for Abstraction and Reasoning Corpus (ARC) tasks.

## Generators Overview
ARC-TGI Generators Overview

ARC-TGI generators corresponding to ARC-AGI-1 tasks. The visualization showcases multiple generators, each represented by multiple sampled tasks to demonstrate within-family diversity. Each task includes three example input–output pairs illustrating within-task diversity.

## Generators The `Generators/` directory contains three main subfolders: **ARC-AGI-1**, **ARC-AGI-2**, and **ARC-Mini**. **ARC-AGI-1** contains our ARC-TGI generators constructed for tasks from the ARC-AGI-1 benchmark (https://arcprize.org/arc-agi/1/). Each generator preserves the latent transformation logic and task-level generalization properties of the original ARC-AGI-1 tasks while allowing systematic variation in object configurations, layouts, and grid properties. **ARC-AGI-2** contains our ARC-TGI generators constructed for tasks from the ARC-AGI-2 benchmark (https://arcprize.org/arc-agi/2/). Each generator preserves the latent transformation logic and task-level generalization properties of the original ARC-AGI-2 tasks while allowing systematic variation in object configurations, layouts, and grid properties. **ARC-Mini** contains simplified generators created by us to model elementary ARC-style reasoning patterns. In ARC-Mini, each task is designed around a single core transformation rule, enabling controlled experiments and analysis of fundamental reasoning primitives. ## Prerequisites - Python 3.12 or higher ## Installation 1. Clone the repository: ```bash git clone https://github.com/Omega-Reasoning/ARC-Task-Generators-Inventory.git cd ARC-Task-Generators-Inventory ``` 2. Create and activate a virtual environment: ```bash # On Windows python -m venv venv .\venv\Scripts\activate # On macOS/Linux python -m venv venv source venv/bin/activate ``` 3. Install dependencies: ```bash pip install -r requirements.txt ``` ## Use generators You have three options to use the generators described below: * test them in a Streamlit app (Framework/app.py) * run a single generator via commandline (Framework/test.py) * create a full dataset (Framework/dataset_generator.py) ### Streamlit Run the Streamlit app to interactively test and visualize task generators: ```bash streamlit run Framework/app.py ``` This allows you to select a generator, create new tasks, and view the output. ### Command line #### Generate an ARC task ```bash python -m Framework.test Generators/ARC-AGI-1/Train/task0b148d64.py ``` #### Generate and visualize a task ```bash python -m Framework.test Generators/ARC-AGI-1/Train/task0b148d64.py -v ``` ### Dataset generator Use the dataset generator to create a dataset of ARC tasks from multiple generators: ```bash python -m Framework.dataset_generator [options] ``` #### Options: - `-g, --generator_folders`: Specify one or more folders containing generators - Default: All non-hidden subfolders inside `Generators/` - Example: `python -m Framework.dataset_generator -g Generators/ARC-AGI-1/Train Generators/ARC-AGI-1/Eval` - `-f, --generator_files`: Specify individual generator files to use - Example: `python -m Framework.dataset_generator -f path/to/generator1.py path/to/generator2.py` - `-n, --nr_of_tasks`: Number of tasks to generate per generator - Default: 100 - Example: `python -m Framework.dataset_generator -n 50` - `-o, --output`: Output directory for generated datasets - Default: "datasets" - Example: `python -m Framework.dataset_generator -o my_datasets` #### Examples: Generate default number of tasks from all generators: ```bash python -m Framework.dataset_generator ``` Generate 50 tasks from specific folders: ```bash python -m Framework.dataset_generator -g Generators/ARC-AGI-1/Train Generators/ARC-AGI-1/Eval -n 50 ``` Generate tasks from specific generator files: ```bash python -m Framework.dataset_generator -f Generators/ARC-AGI-1/Train/task0b148d64.py Generators/ARC-AGI-1/Eval/task1a2e2828.py ``` Generate tasks from both folders and individual files: ```bash python -m Framework.dataset_generator -g Generators/ARC-AGI-1/Train -f Generators/ARC-AGI-1/Eval/task1a2e2828.py -n 100 ``` Generate tasks with custom output location: ```bash python -m Framework.dataset_generator -o custom_datasets -n 200 ``` The generator creates both individual CSV files for each folder and a combined 'all.csv' file in the output directory. Individual generator files are saved to an 'individual_files.csv' file.