Arcade class is the main entry point for interacting with ARC-AGI-3 environments. It handles configuration, environment discovery, and scorecard management.
Constructor Parameters
TheArcade constructor accepts the following parameters. All parameters can be overridden by environment variables, with constructor arguments taking precedence.
All parameters are optional. See details below for each option.
operation_mode
Controls where games are loaded from. See Local vs Online for guidance on which mode to use.
| Mode | Description |
|---|---|
OperationMode.NORMAL | Load both local and remote games (default) |
OperationMode.OFFLINE | Load local games only — fast, no rate limits |
OperationMode.ONLINE | Load remote games only — enables scorecards and replays |
arc_api_key
API key for the ARC API. Required for ONLINE mode. If empty and not in offline mode, an anonymous key will be automatically fetched.
environments_dir
Directory to scan for local game files (metadata.json). Default: "environment_files".
ENVIRONMENTS_DIR
recordings_dir
Directory to save game recordings in JSONL format. Default: "recordings".
RECORDINGS_DIR
arc_base_url
Base URL for the ARC API. Default: "https://three.arcprize.org".
ARC_BASE_URL
logger
Optional logger instance. If not provided, a default logger logging to STDOUT is created.
Methods
make()
Create and initialize an environment wrapper for a specific game.
Signature: make(game_id, seed=0, scorecard_id=None, save_recording=False, render_mode=None, renderer=None)
Parameters:
game_id(str): Game identifier in format'ls20'or'ls20-1234abcd'. The first 4 characters are the game_id, everything after'-'is the version.seed(int, optional): Random seed for the game. Defaults to0.scorecard_id(str, optional): Scorecard ID for tracking runs. IfNoneis provided (the default), the system will create and maintain a single default scorecard that is automatically reused across allmake()calls. This allows you to track multiple games in the same scorecard without explicitly managing scorecard IDs.save_recording(bool, optional): Whether to save recordings to JSONL file. Defaults toFalse.render_mode(str, optional): Render mode string ("human","terminal","terminal-fast"). If provided, creates a renderer automatically.renderer(Callable[[int, FrameDataRaw], None], optional): Custom renderer function. If bothrender_modeandrendererare provided,renderertakes precedence.
EnvironmentWrapperorNone: Returns anEnvironmentWrapperinstance if successful,Noneotherwise.
get_environments()
Get the list of available environments (both local and remote).
Returns:
list[EnvironmentInfo]: List ofEnvironmentInfoobjects representing available environments.
create_scorecard()
Create a new scorecard for tracking game runs.
Signature: create_scorecard(source_url=None, tags=None, opaque=None)
Parameters:
source_url(str, optional): Optional source URL for the scorecard.tags(list[str], optional): Optional list of tags for the scorecard. Defaults to["wrapper"].opaque(Any, optional): Optional opaque data for the scorecard.
str: The ID of the newly created scorecard.
open_scorecard()
Alias for create_scorecard(). Opens a new scorecard.
Signature: open_scorecard(source_url=None, tags=None, opaque=None)
Parameters: Same as create_scorecard().
Returns:
str: The ID of the newly created scorecard.
get_scorecard()
Get a scorecard by ID, converted to EnvironmentScorecard.
Signature: get_scorecard(scorecard_id=None)
Parameters:
scorecard_id(str, optional): Scorecard ID. IfNoneis provided (the default), returns the default scorecard that the system is currently using (the same one created automatically whenmake()is called withscorecard_id=None).
EnvironmentScorecardorNone: Scorecard object if found,Noneotherwise.
close_scorecard()
Close a scorecard and return the final scorecard data.
Signature: close_scorecard(scorecard_id=None)
Parameters:
scorecard_id(str, optional): Scorecard ID. IfNoneis provided (the default), closes the default scorecard that the system is currently using (the same one created automatically whenmake()is called withscorecard_id=None). After closing, the default scorecard is cleared and a new one will be created on the nextmake()call.
EnvironmentScorecardorNone: Final scorecard object if found,Noneotherwise.

