Contents
October 13, 2025 · View on GitHub
MineAnyBuild: Benchmarking Spatial Planning for Open-world AI Agents
NeurIPS 2025 Datasets and Benchmarks TrackYuecheng Liu4, Yuzheng Zhuang4, Xiaodan Liang1✉
3Mohamed bin Zayed University of Artificial Intelligence, 4Huawei Noah’s Ark Lab
* Equal contribution ✉ Corresponding author
Spatial Planning is a crucial part in the field of spatial intelligence, which requires the understanding and planning about object arrangements in space perspective. AI agents with the spatial planning ability can better adapt to various real-world applications, including robotic manipulation, automatic assembly, urban planning etc. Recent works have attempted to construct benchmarks for evaluating the spatial intelligence of Multimodal Large Language Models (MLLMs). Nevertheless, these benchmarks primarily focus on spatial reasoning based on typical Visual Question-Answering (VQA) forms, which suffers from the gap between abstract spatial understanding and concrete task execution. In this work, we take a step further to build a comprehensive benchmark called MineAnyBuild, aiming to evaluate the spatial planning ability of open-world AI agents in the Minecraft game. Specifically, MineAnyBuild requires an agent to generate executable architecture building plans based on the given multi-modal human instructions. It involves 4,000 curated spatial planning tasks and also provides a paradigm for infinitely expandable data collection by utilizing rich player-generated content. MineAnyBuild evaluates spatial planning through four core supporting dimensions: spatial understanding, spatial reasoning, creativity, and spatial commonsense. Based on MineAnyBuild, we perform a comprehensive evaluation for existing MLLM-based agents, revealing the severe limitations but enormous potential in their spatial planning abilities. We believe our MineAnyBuild will open new avenues for the evaluation of spatial intelligence and help promote further development for open-world AI agents capable of spatial planning.

📰 Updates
- [09/2025] 🎉🎉🎉 Our paper has been accepted as Poster by NeurIPS 2025 Datasets and Benchmarks Track.
- [05/2025] Arxiv paper released.
Contents
- Contents
- 🔧Installation
- 📥Downloads
- 🚀Running codes
- Citation
- Acknowledgement
🔧Installation
Install Minecraft
Ensure you have a valid Microsoft account and Minecraft JAVA Edition.
- Visit the Minecraft Official Website and navigate to the "Get Minecraft" section.
- Select your platform (Windows, Linux or macOS) and choose JAVA Edition.
- Download the launcher and install it, and then log in using your Microsoft account.
- Start the launcher, select the release version (1.20.4) compatible with Mineflayer and click Play to load the game.
- Load the test environment map we provide (recommanded) or create a new world with settings.
- Open the Pause Menu, click the Open to LAN, and following the settings:
- Take note of the Port Number displayed (in the lower versions of Minecraft) or enter a Port Number that is consistent with the code (in the latest versions of Minecraft).
- Set the game mode to Creative.
- [IMPORTANT] Enable Cheats to allow command usage required for MLLM-based agents.
For more detailed instructions, visit the Minecraft Help Center for help.
Install packages
- Download and install the appropriate version of Node.js.
- Run the following command to install Mineflayer on your terminal:
npm install mineflayer
Create a Conda env and packages
conda create -n mineanybuild python=3.10
conda activate mineanybuild
pip install -r requirements.txt
📥Downloads
| Download Links | Description |
|---|---|
| Hugging Face | Datasets for MineAnyBuild tasks, including task instructions, architectures and stimuli data. |
| Google Drive | Pure maps in Maps_Evaluation.zip for evaluation. |
| Hugging Face | Raw HTML data fetched from Grabcraft, namely Grabcraft_raw_data.rar. |
🚀Running codes
📊Evaluation
You should run the Inference of MLLM-based agents first to generate the responses of MLLM-based agents.
For different tasks in our MineAnyBuild, please conduct evaluation according to the following steps respectively.
Executable Spatial Plan Generation, Creativity and Spatial Understanding tasks
-
Start the Minecraft game and record the video with Replay Mod (recommended currently). 1) Start the recording in Pause Menu of Minecraft game. 2) Run
/mineanybuild/mineflayer.ipynband specify the starting frame. 3) Stop the recording when the notebook cells finish executing. 4) Save and render the video in Replay Mod Menu. (For the concrete instructions, please refer to the Replay Mod documentation and Section B.3.2 in the Supplementary Material. We provide a document for usage instructions of Replay Mod in docs/replay_mod.md.) -
Video Segmentation Split the video into multiple frames and match each frame to its corresponding building structure. We provide an example of using this in
frame_clipper()andselect_frames()functions of/mineanybuild/utils.py. You can use it to match automatically or conduct manual matching selection (recommended for accuracy) if less data is to be tested. -
Run the functions/scripts in
/mineanybuild/evaluator.pyfollowing the below instructions.python /mineanybuild/evaluator.py --task [Spatial_Understanding|Creativity|Executable_Spatial_Plan_Generation] -
Run the function
process_json_critic_scores()in/mineanybuild/utils.pyto process the JSON files generated by the previous step. -
Run the functions
calculate_scores_creativity(),calculate_scores_spatial_plan(),calculate_scores_spatial_understanding()to calculate the final scores of the three tasks respectively.
Spatial Reasoning task
- Run the function
calculate_scores_spatial_reasoning()in/mineanybuild/evaluator.pyto calculate the Accuracy of the Spatial Reasoning task.
Spatial Commonsense task
-
Run the functions
critic_spatial_commonsense()(orcritic_spatial_commonsense_opensource()) in/mineanybuild/evaluator.pyfollowing the below instructions.python /mineanybuild/evaluator.py --task Spatial_Commonsense -
Run the function
calculate_scores_spatial_commonsense()in/mineanybuild/evaluator.pyto calculate the scores of the Spatial Commonsense task.
🗃️Data curation
Executable Spatial Plan Generation, Creativity and Spatial Understanding tasks
For the released data on HuggingFace, you can refer the codes in the dirpath /data_curation, e.g., data_curation/gen_data_released.py.
For data you want to curate by yourself, please follow the below steps.
-
Prepare your own architectures/buildings/assets in your Minecraft maps. You can follow the template in the example file in
/examples/village_input.jsonto annotate your data."plains_meeting_point_3": { // architecture name "start_pos": [1, 5, -796], // the X,Y,Z position of the left-bottom block of the architecture "end_pos": [11, 13, -786] // the X,Y,Z position of the right-up block of the architecture }, ...By manually annotating the above data, you can directly obtain curated data through the following automated pipeline.
-
Run
/data_curation/customize_data.ipynbto obtain the curated data.Optional: If the JSON format is not completely correct, run the function
process_json()in/data_curation/utils.pyto process the data and format it in JSON. -
Run the main function
curate_architecture_datasets()for reference in/data_curation/gen_data_customized.pyto curate the datasets and generate instructions for different tasks. -
[Optional] Calculate the difficulty factor of new data.
python /data_curation/calculate_difficulty.py
Spatial Reasoning task
For the released data on HuggingFace, you can refer codes in data_curation/gen_data_released.py.
For data you want to curate by yourself, please follow the below steps.
-
Prepare your own stimuli structures built in your Minecraft map. You can follow the template in the example file in
/examples/mental_rotation_input.jsonto annotate your data. -
Run
/data_curation/customize_data.ipynbto obtain the curated data.Optional: If the JSON format is not completely correct, run the function
process_json()in/data_curation/utils.pyto process the data and format it in JSON. -
Run the main function
curate_spatial_reasoning_datasets()for reference in/data_curation/gen_data_customized.pyto curate the datasets and generate VQAs data for this task.
Data standardization
Run the functions/scripts in /data_curation/unify_data.py following the below instructions.
python unify_data.py --task [Spatial_Understanding|Creativity|Executable_Spatial_Plan_Generation|Spatial_Reasoning|Spatial_Commonsense]
🤖Inference of MLLM-based agents
Specify your API keys for each models.
Run the following codes to perform inference for MLLM-based agents.
Proprietary MLLMs
- Run
/mineanybuild/prompter.pyspecifying the task of MineAnyBuild. Please specify the input and output file/directories for each task function.
python /mineanybuild/prompter.py --task [Spatial_Understanding|Spatial_Reasoning|Creativity|Executable_Spatial_Plan_Generation|Spatial_Commonsense]
- Run the
json_parser_blueprint()function in/mineanybuild/utils.pyto transform the response of MLLM-based agents into blueprint 3D matrix in JSON format.
Open-source MLLMs
- Run the following codes based on the type of open-source MLLMs you want to run.
python /mineanybuild/internvl.py --task [Spatial_Understanding|Spatial_Reasoning|Creativity|Executable_Spatial_Plan_Generation|Spatial_Commonsense]
python /mineanybuild/qwenvl.py --task [Spatial_Understanding|Spatial_Reasoning|Creativity|Executable_Spatial_Plan_Generation|Spatial_Commonsense]
python /mineanybuild/llavaov.py --task [Spatial_Understanding|Spatial_Reasoning|Creativity|Executable_Spatial_Plan_Generation|Spatial_Commonsense]
- Run the
json_parser_blueprint()function in/mineanybuild/utils.pyto transform the response of MLLM-based agents into blueprint 3D matrix in JSON format.
✅Planned Future Updates
- More detailed annotations
- Docs of instructions for Replay Mod
- Optimization of the use of visualization tools (timer in Replay Mod code, viewer)
- RL environment codes for Mineflayer
- Fix known bugs
- Debugging and provide adaptation to normal python codes (w/o Jupyter notebook)
- MineRL/MineDojo codes
Citation
If you find this work useful, please consider citing:
@inproceedings{wei2025mineanybuild,
title={MineAnyBuild: Benchmarking Spatial Planning for Open-world {AI} Agents},
author={Ziming Wei and Bingqian Lin and Zijian Jiao and Yunshuang Nie and Liang Ma and Yuecheng Liu and Yuzheng Zhuang and Xiaodan Liang},
booktitle={The Thirty-ninth Annual Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
year={2025}
}
Acknowledgement
Some of the codes are built upon APT. Part of our datasets are built upon GrabCraft, Minecraft Wiki and Raekon. Thanks them for their great works and resources!