Skip to main content

High-performance JAX-based ARC environment for RL research

Project description

JaxARC

Documentation Status PyPI version PyPI Downloads GitHub Discussion

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.

JaxARC throughput as compared with ARCLE

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

JaxARC System Architecture

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?


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

jaxarc-1.0.3.tar.gz (545.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jaxarc-1.0.3-py3-none-any.whl (163.4 kB view details)

Uploaded Python 3

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

Hashes for jaxarc-1.0.3.tar.gz
Algorithm Hash digest
SHA256 b98a3f4660556382dd3686df6bcdd8756bcf108f9bd011fd6c4420804799f47a
MD5 843c5c6a22deac0f035d961bcf7406e1
BLAKE2b-256 342d87e24dfc5e570291751ddef429ba52eadd2fc9ae9c223d017e2161a265ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for jaxarc-1.0.3.tar.gz:

Publisher: cd.yml on aadimator/JaxARC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for jaxarc-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2099c18588beb7afd194a401d41840ecd25fe7ef4797b530a17ce1b714309b28
MD5 d1f20eb790bada03faba1b7ea1a330a6
BLAKE2b-256 5af711976cf95d8ca8340f45137856edf8a82bec4910c1331f39ce45034ee09f

See more details on using hashes here.

Provenance

The following attestation bundles were made for jaxarc-1.0.3-py3-none-any.whl:

Publisher: cd.yml on aadimator/JaxARC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page