High-performance JAX-based ARC environment for RL research
Project description
JaxARC
JaxARC is a JAX-based reinforcement learning environment for the Abstraction and Reasoning Corpus (ARC) challenge. It's built for researchers who want to use extremely fast vectorized environments to explore reinforcement learning, and meta-learning techniques for abstract reasoning.
Why JaxARC?
Speed. Environments compile with jax.jit and vectorize with jax.vmap.
Run thousands of episodes in parallel on GPU/TPU.
Flexible. Multiple action spaces (point-based, selection masks, bounding boxes). Multiple datasets (ARC-AGI, ConceptARC, MiniARC). Observation wrappers for different input formats. Configure everything via typed dataclasses or YAML.
Extensible. Clean parser interface for custom datasets. Wrapper system for custom observations and actions. Built with future HRL and Meta-RL experiments in mind.
Key Features
- JAX-Native: Pure functional API — every function is
jax.jit-compatible - Lightning Fast: JIT compilation turns Python into XLA-optimized machine code
- Configurable: Multiple action spaces, reward functions, and observation formats
- Multiple Datasets: ARC-AGI-1, ARC-AGI-2, ConceptARC, and MiniARC included
- Type-Safe: Full type hints with runtime validation
- Visual Debug: Terminal and SVG rendering for development
Installation
pip install jaxarc
Want to contribute?
git clone https://github.com/aadimator/JaxARC.git
cd JaxARC
pixi shell # Sets up the environment
pixi run -e dev pre-commit install # Hooks for code quality
See the tutorials for training loops, custom wrappers, and dataset management.
Stoix Integration
JaxARC uses the Stoa API, allowing seamless integration with Stoix, which is a JAX-based reinforcement learning codebase supporting various RL algorithms.
JaxARC provides a ready-to-use factory function for Stoix:
from jaxarc.stoix_adapter import make_jaxarc_env, jaxarc_custom_metrics
# Create Stoix-compatible environments
train_env, eval_env = make_jaxarc_env(config)
# Process episode metrics for logging
metrics = jaxarc_custom_metrics(raw_metrics)
# → success_rate, avg_steps_to_solve, truncation_rate, etc.
Domain-specific metrics (puzzle similarity, solve rate) are tracked via the
ExtendedMetrics wrapper and flow through Stoix's standard logging pipeline.
You can explore jaxarc-baselines repository for example implementations of training agents on JaxARC environments using Stoix.
Contributing
Found a bug? Want a feature? Open an issue or submit a PR.
Related Work
JaxARC builds on great work from the community:
- ARC Challenge by François Chollet — The original dataset and challenge
- ARCLE — Python-based ARC environment (inspiration for our design)
- Stoix by Edan Toledo — Single-agent RL in JAX (we use their Stoa API)
Citation
If you use JaxARC in your research, please cite our paper:
@misc{aadam2026jaxarchighperformancejaxbasedenvironment,
title={JaxARC: A High-Performance JAX-based Environment for Abstraction and Reasoning Research},
author={Aadam and Monu Verma and Mohamed Abdel-Mottaleb},
year={2026},
eprint={2601.17564},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2601.17564},
}
License
MIT License — see LICENSE for details.
Questions?
- Bugs/Features: GitHub Issues
- Discussions: GitHub Discussions
- Docs: jaxarc.readthedocs.io
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jaxarc-1.0.3.tar.gz.
File metadata
- Download URL: jaxarc-1.0.3.tar.gz
- Upload date:
- Size: 545.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b98a3f4660556382dd3686df6bcdd8756bcf108f9bd011fd6c4420804799f47a
|
|
| MD5 |
843c5c6a22deac0f035d961bcf7406e1
|
|
| BLAKE2b-256 |
342d87e24dfc5e570291751ddef429ba52eadd2fc9ae9c223d017e2161a265ef
|
Provenance
The following attestation bundles were made for jaxarc-1.0.3.tar.gz:
Publisher:
cd.yml on aadimator/JaxARC
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jaxarc-1.0.3.tar.gz -
Subject digest:
b98a3f4660556382dd3686df6bcdd8756bcf108f9bd011fd6c4420804799f47a - Sigstore transparency entry: 1009477340
- Sigstore integration time:
-
Permalink:
aadimator/JaxARC@d42e5f735139c4b6945c9250fe23d8465aad5c0a -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/aadimator
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@d42e5f735139c4b6945c9250fe23d8465aad5c0a -
Trigger Event:
release
-
Statement type:
File details
Details for the file jaxarc-1.0.3-py3-none-any.whl.
File metadata
- Download URL: jaxarc-1.0.3-py3-none-any.whl
- Upload date:
- Size: 163.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2099c18588beb7afd194a401d41840ecd25fe7ef4797b530a17ce1b714309b28
|
|
| MD5 |
d1f20eb790bada03faba1b7ea1a330a6
|
|
| BLAKE2b-256 |
5af711976cf95d8ca8340f45137856edf8a82bec4910c1331f39ce45034ee09f
|
Provenance
The following attestation bundles were made for jaxarc-1.0.3-py3-none-any.whl:
Publisher:
cd.yml on aadimator/JaxARC
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jaxarc-1.0.3-py3-none-any.whl -
Subject digest:
2099c18588beb7afd194a401d41840ecd25fe7ef4797b530a17ce1b714309b28 - Sigstore transparency entry: 1009477345
- Sigstore integration time:
-
Permalink:
aadimator/JaxARC@d42e5f735139c4b6945c9250fe23d8465aad5c0a -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/aadimator
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@d42e5f735139c4b6945c9250fe23d8465aad5c0a -
Trigger Event:
release
-
Statement type: