> ## Documentation Index
> Fetch the complete documentation index at: https://aegean.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Blocksworld Planning

> Classic PDDL example using the blocksworld domain with the Unified Planning library.

<img src="https://mintcdn.com/aegeanaiinc/8QUGbQnxBRbEKIZV/aiml-common/lectures/planning/task-planning/pddl/blocksworld/unified-planning-library.png?fit=max&auto=format&n=8QUGbQnxBRbEKIZV&q=85&s=eda30384ad695bfc4c90ce2eff04d3da" alt="Unified Planning Library" width="903" height="307" data-path="aiml-common/lectures/planning/task-planning/pddl/blocksworld/unified-planning-library.png" />

The blocksworld is a classic planning domain used to demonstrate PDDL concepts. In this domain, a robot arm must rearrange blocks on a table to achieve a goal configuration.

## Key Concepts

* **Domain Definition**: Defining predicates like `on`, `ontable`, `clear`, `holding`
* **Actions**: `pick-up`, `put-down`, `stack`, `unstack`
* **Goal States**: Specifying desired block configurations
* **Plan Generation**: Using planners to find action sequences

<Note>
  This tutorial uses the [Unified Planning Library](https://github.com/aiplan4eu/unified-planning), a Python library that provides a unified interface to multiple planning engines.
</Note>

<Card title="Run the Tutorial" icon="play" href="https://colab.research.google.com/github/pantelis/eng-ai-agents/blob/main/notebooks/task-planning/up_blocksworld_demo.ipynb">
  Open the blocksworld demo in Google Colab to execute the code interactively.
</Card>

***

<Callout icon="pen-to-square" iconType="regular">
  [Edit this page on GitHub](https://github.com/aegean-ai/eaia/edit/main/src/aiml-common/lectures/planning/task-planning/pddl/blocksworld/index.mdx) or [file an issue](https://github.com/aegean-ai/eaia/issues/new/choose).
</Callout>
