An interactive web application for solving ARC (Abstraction and Reasoning Corpus) AGI challenges with an enhanced grid editor, AI assistance, and comprehensive puzzle navigation.
- Interactive color palette - 10 ARC colors (0-9) with visual selection
- Click-to-paint grid cells with selected color
- Adjustable grid size - Resize answer grid from 1x1 to 30x30
- Copy from input - Start with the test input as template
- Clear grid - Reset all cells to black (color 0)
- Full dataset support - Load entire ARC AGI dataset
- Navigation controls - Previous/Next buttons and direct puzzle number input
- Training examples - View input/output pairs for pattern learning
- Test cases - Solve the test inputs with the grid editor
- Context-aware chat - AI has access to current puzzle data
- Pattern analysis - Get insights about grid transformations
- Grid summaries - Automatic analysis of grid sizes and structure
- Submit answers - Check your solutions
- Visual feedback - Success/error messages for submissions
- Python 3.8+
- pip package manager
- Clone the repository:
git clone <repository-url>
cd ArcAGI- Run the application:
python run.pyThis will:
- Create/activate a virtual environment
- Install all required dependencies
- Start the web server on port 8050
- Launch Microsoft Edge browser (or default browser)
If you prefer manual setup:
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On Linux/Mac:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the application
python arc_app_enhanced.pyThen open http://localhost:8050 in your browser.
- Navigate to a puzzle using the Previous/Next buttons or enter a puzzle number
- Study the training examples to identify the transformation pattern
- Use the grid editor to create your answer:
- Select a color from the palette
- Click grid cells to paint them
- Resize the grid if needed
- Use "Copy Input" to start with the test input
- Submit your answer to check if it's correct
- Ask the AI Assistant for help analyzing patterns
- Enter in chat input - Send message
- Enter in puzzle number input - Go to puzzle
ArcAGI/
βββ run.py # Main launcher with venv management
βββ arc_app_enhanced.py # Enhanced FastAPI application
βββ requirements.txt # Python dependencies
βββ data/
β βββ arc_agi/ # ARC puzzle datasets
βββ logs/ # Application logs
βββ venv/ # Virtual environment (auto-created)
Edit arc_app_enhanced.py and modify the port number:
uvicorn.run(app, host="0.0.0.0", port=8050) # Change 8050 to desired portPuzzles are loaded from data/arc_agi/ directory. Place your ARC dataset JSON files there.
Edit the load_arc_dataset() function in arc_app_enhanced.py to add custom puzzles:
puzzles.append({
"id": "custom_001",
"dataset": "custom",
"train": [...],
"test": [...]
})Modify the /api/chat endpoint to add more sophisticated pattern analysis or integrate with external AI services.
# Find process using port 8050
# On Windows:
netstat -ano | findstr :8050
# On Linux/Mac:
lsof -i :8050
# Kill the process or use a different port# Upgrade pip
python -m pip install --upgrade pip
# Clear pip cache
pip cache purge
# Reinstall requirements
pip install -r requirements.txt --no-cache-dirCheck the logs in the logs/ directory for detailed error messages:
tail -f logs/backend_*.logRun the test suite:
python test_app.py- OS: Windows, Linux, macOS, WSL
- Python: 3.8 or higher
- Browser: Modern web browser (Chrome, Firefox, Edge, Safari)
- RAM: 2GB minimum
- Disk Space: 1GB for virtual environment and datasets
- Backend: FastAPI, Uvicorn
- Frontend: Vanilla JavaScript, HTML5, CSS3
- Data Format: JSON (ARC dataset format)
- Logging: Python logging module
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is for educational and research purposes. The ARC dataset is created by FranΓ§ois Chollet.
- ARC Prize for the challenge dataset
- FranΓ§ois Chollet for creating the ARC benchmark
- The ARC community for insights and strategies
For issues or questions:
- Check the troubleshooting section
- Review the logs in
logs/directory - Open an issue on GitHub
Current Version: 1.0.0
Last Updated: 2025