Skip to main content

A text processing package with various scenarios and checkers.

Project description

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}
}

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

craftext-0.2.2.tar.gz (101.7 kB view details)

Uploaded Source

Built Distribution

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

craftext-0.2.2-py3-none-any.whl (139.3 kB view details)

Uploaded Python 3

File details

Details for the file craftext-0.2.2.tar.gz.

File metadata

  • Download URL: craftext-0.2.2.tar.gz
  • Upload date:
  • Size: 101.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for craftext-0.2.2.tar.gz
Algorithm Hash digest
SHA256 c6bc7359a9d9a652de3479cb747ab90c00dc3a4902470bda01d053f8f4d2ccab
MD5 e2f0a88affd0ed954c6b160f41fcc24a
BLAKE2b-256 d56de42100a97ea1239db321054683fe371c4bb47cb9f82b81ec850d93c63c62

See more details on using hashes here.

File details

Details for the file craftext-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: craftext-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 139.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for craftext-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a7d13bc8c6af94496d187a702e50cf621ff9940ac45ed2ac6e8ef6c5474e52cc
MD5 f087368dbb611c3bb70306362f4eda38
BLAKE2b-256 2ff50652854ec78d0a71cbb74112897199409772c61ce3d01189fecc6b7302d6

See more details on using hashes here.

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