Skip to main content

CrafText Benchmark: Advancing Instruction Following in Complex Multimodal Open-Ended World

CrafText is a goal-conditioned extension of the Craftax environment, designed as a benchmark for multimodal reinforcement learning. It enables agents to follow natural language instructions grounded in rich, visual environments inspired by Minecraft, combining vision and language to guide complex action sequences.

✨ Key Features

  • Natural Language Objectives Agents are driven by instructions such as “place a crafting table near a tree” or “build a square with stone blocks,” requiring them to reason over both spatial layouts and object interactions.

  • Diverse Scenario Library Tasks are defined in CrafText/craftext/dataset/scenarious, offering a wide range of instruction types and complexities—from basic object placement to multi-step crafting chains.

  • Automated Instruction Checkers Each task includes a custom checker located in craftext/environment/scenarious/checkers, which programmatically verifies whether the agent has fulfilled the specified goal.

  • Environment Integration Layer The wrapper in craftext_wrapper.py enriches the base environment with dynamic goal injection and success feedback.

Visual Examples

Place Crafting Table Near Tree Place Crafting Table Near Water Make Square of Stone
Tree Water Stone

Installation

  1. Clone the repository.

  2. Create a virtual environment and install the dependencies from requirements.txt:

    conda create --name craftext python=3.9
    conda activate craftext
    pip install -r requirements.txt
    
  3. Navigate to the repository and install the dataset:

    cd CrafText
    pip install -e .
    

Here is your updated section with improved formatting, added explanation, and a Basic Usage code block that includes block-style markdown syntax, as well as clarifying comments and structure for better readability:

🧪 Basic Usage

from craftext.enviroment.craftext_wrapper import InstructionWrapper
from craftext.dataset.scenarious import ScenariousManager
from craftext.models.encode import DistilBertEncode, EncodeForm

import jax
import jax.numpy as jnp

# Step 1: Create Craftax environment
env: CraftaxClassicPixelsEnv = make_craftax_env_from_name(
    "Craftax-Classic-Pixels-v1", 
    auto_reset=False
)

# Step 2: Wrap with CrafText
wrapper = InstructionWrapper(
    env=env,
    config_name='simple',
    scenario_handler_class=ScenariousManager,
    encode_model_class=DistilBertEncode,
    encode_form=EncodeForm.EMBEDDING
)

# Step 3: Reset and interact
seed = jax.random.PRNGKey(0)
env_params = env.default_params

obs, state = wrapper.reset(seed, env_params)
print("Initial Observation:", obs)
print("Initial State:", state)

action = jnp.array(0, dtype=jnp.int32)
obs, state, reward, done, info = wrapper.step(seed, state, action, env_params)

Citation

If you use CrafText in your research, please cite:

@article{volovikova2025craftext,
  title={CrafText Benchmark: Advancing Instruction Following in Complex Multimodal Open-Ended World},
  author={Volovikova, Zoya and Gorbov, Gregory and Kuderov, Petr and Panov, Aleksandr I and Skrynnik, Alexey},
  journal={arXiv preprint arXiv:2505.11962},
  year={2025}
}

Metadata

Release files for CrafText 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for CrafText 0.2.2
File Size Uploaded
craftext-0.2.2.tar.gz 101.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for CrafText 0.2.2
File Interpreter ABI Platform
craftext-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 241.0 kB

Release files / craftext-0.2.2.tar.gz

Download URL craftext-0.2.2.tar.gz
Size 101.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c6bc7359a9d9a652de3479cb747ab90c00dc3a4902470bda01d053f8f4d2ccab
BLAKE2b-256 checksum
How to use checksums
d56de42100a97ea1239db321054683fe371c4bb47cb9f82b81ec850d93c63c62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Release files / craftext-0.2.2-py3-none-any.whl

Download URL craftext-0.2.2-py3-none-any.whl
Size 139.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7d13bc8c6af94496d187a702e50cf621ff9940ac45ed2ac6e8ef6c5474e52cc
BLAKE2b-256 checksum
How to use checksums
2ff50652854ec78d0a71cbb74112897199409772c61ce3d01189fecc6b7302d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page