YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
NeuroGolf 2026 - ARC-AGI Tiny Network Solver
Enhanced solver for the NeuroGolf 2026 competition, building minimal ONNX networks for ARC-AGI tasks.
Overview
This repository contains an enhanced solver based on rogermt/neurogolf-solver with additional analytical solvers and optimizations.
Target: Solve ARC-AGI tasks with the smallest possible ONNX networks.
Score: max(1, 25 - ln(cost)) where cost = params + memory_bytes + MACs
Data Source
The ARC-AGI training data with all 400 tasks (including test outputs) is available at:
https://huggingface.co/LuciferMrng/neurogolf-2026/blob/main/all_tasks.json
Usage
1. Install dependencies
pip install numpy onnx onnxruntime
2. Download the data
# Option 1: Direct download from HF
curl -L https://huggingface.co/LuciferMrng/neurogolf-2026/resolve/main/all_tasks.json -o all_tasks.json
# Option 2: Via huggingface-cli
pip install huggingface-hub
huggingface-cli download LuciferMrng/neurogolf-2026 all_tasks.json --local-dir .
3. Run the solver
# Solve all 400 tasks with 30s budget per task
python neurogolf_solver_enhanced.py --data_file all_tasks.json --output_dir submission --conv_budget 30
# Solve with more time (better coverage)
python neurogolf_solver_enhanced.py --data_file all_tasks.json --output_dir submission --conv_budget 60
# Solve specific tasks
python neurogolf_solver_enhanced.py --data_file all_tasks.json --output_dir submission --tasks 1,2,3
4. Create submission.zip
The solver automatically creates submission.zip with all generated ONNX files.
Architecture
Input/Output Format
- All networks use
[1, 10, 30, 30]one-hot float32 tensors - ONNX opset 10, IR version 10
Solver Pipeline
Analytical Solvers (fast, tiny models - tried first):
identity- Input equals outputcolor_map- 1x1 conv color transformationtranspose- Matrix transposeflip- Horizontal/vertical fliprotate- 90/180/270 degree rotationtile- Repeat input patternupscale- Nearest-neighbor upscalingconcat- Concatenate transformed inputsspatial_gather- Pixel remappingcrop- Centered cropconstant- Fixed output regardless of input
Convolution Solvers (for learned transformations):
- Fixed shape:
Slice -> Conv -> ArgMax -> OneHot -> Pad - Variable shape:
Conv(30x30) -> ArgMax -> OneHot -> Mul(mask) - Diff shape:
Slice -> Conv -> Slice(crop) -> ArgMax -> OneHot -> Pad
The conv solver learns optimal weights via least-squares fitting on one-hot patches, trying kernel sizes from 1 to 29.
Key Optimizations
- Smallest kernel first - Tries kernel size 1, then 3, 5, etc. (smaller = fewer params)
- Analytical before learned - Analytical solvers have near-zero cost
- One-hot ArgMax trick - Eliminates numerical precision issues
- No bias preferred - Slightly fewer parameters
Expected Results
With the base solver:
- ~127-293/400 tasks solved depending on time budget
- Analytical solvers cover the simplest transformations
- Conv solver handles local spatial transformations
References
- ARC-AGI - Original benchmark
- NeuroGolf 2026 Competition
- Rogermt's Base Solver
License
MIT - Based on the ARC-AGI benchmark and community contributions.