LightsOut
LightsOut
Description
LightsOut is an environment for evaluating agents on spatial reasoning and logic puzzle solving tasks. This environment wraps the LightsOut implementation from TextArena, a framework for text-based game environments.
Capabilities
- Spatial reasoning and pattern recognition
- Understanding cascading effects of actions
- Strategic planning to reach goal states
- Logic puzzle solving with constraint satisfaction
Compute Requirements
LightsOut does not require a sandbox. It has minimal compute requirements.
License
MIT.
Tasks
There are two splits: train (150 tasks) and test (150 tasks). Each split contains 50 tasks across each of 3 variants:
- LightsOut-v0
- LightsOut-v0-train
- LightsOut-v0-raw
Each task is seeded for reproducibility.
Reward Structure
This is a sparse reward environment. Rewards are mapped from TextArena's native range of {-1, 0, 1} to {0.0, 0.5, 1.0} via (raw + 1) / 2.
We do not use LLM graders for this environment; reward is determined programmatically.
Data
Game state is generated procedurally by the TextArena engine using seeded randomness. No external data files are required.
Tools
Agents are given a single tool:
toggle_light(row, column): Toggle a light at the given position (0-indexed). This flips the light and all orthogonally adjacent lights. Goal: turn all lights off.
Time Horizon
LightsOut is a multi-turn environment.
Environment Difficulty
This environment presents moderate to challenging difficulty, requiring agents to understand and account for the cascading effects of toggling lights while working toward a specific goal state.
Other Environment Requirements
There are no further environment requirements; LightsOut works out of the box without any secrets or API keys.
Safety
Agents in LightsOut interact only with a logic puzzle and have no access to external systems, the internet, or sensitive data. The environment does not present safety risks.
Citations
@software{textarena2024,
author = {Guertler, Leon and Banting, Wilfried and Pignatelli, Eduardo},
title = {TextArena},
year = {2024},
publisher = {GitHub},
url = {https://github.com/LeonGuertler/TextArena}
}