×
SHRDLU Help
About SHRDLU
SHRDLU is a natural language understanding program created by Terry Winograd at MIT in 1968-1970. It allows you to manipulate objects in a "blocks world" using English commands.
This is a simplified/modded version of SHRDLU and does not use color words in commands.
The name comes from the ETAOIN SHRDLU letter-frequency sequence used in old Linotype typesetting.
Read the SHRDLU wiki page
Sample Commands
what is on the table?
what is on the large block?
how many blocks are there?
move the small pyramid to the table
put the large pyramid on the large block
is the small pyramid on the table?
what is the tallest block?
how many balls are there?
how many pyramids are there?
stack the small pyramid on the small block
Available Commands (Systematic)
- Move objects:
put|place|move|stack the <size> <type> on|to the <size> <type>
- Move to table:
move the <size> <type> to the table
- Ask support relation:
what is on the table? or what is on the <size> <type>?
- Count objects:
how many blocks|pyramids|balls are there?
- Yes/no support check:
is the <size> <type> on the table? or is the <size> <type> on the <size> <type>?
- Tallest object query:
what is the tallest block?
Object Types
- Blocks - Cubic objects that can be stacked
- Pyramids - Triangular objects (cannot support other objects)
- Balls - Spherical objects (cannot be stacked)
Properties
Physical Rules
- Objects can only be placed on blocks (not on pyramids or balls)
- An object must be smaller or similar in size to what it's placed on
- You can't pick up an object if something is on top of it
- Multiple objects can be on the table at once
Controls
- Mouse: Rotate camera by dragging
- Scroll: Zoom in/out
- Click object: Select and highlight
Tips
- Use type + size for specific objects (e.g., "the large block")
- You can use size adjectives to specify objects (e.g., "large", "small")
- If there are multiple matching objects, the system will tell you to be more specific
- The system understands context from previous commands
- Try asking questions about the world state
- Commands like "put", "place", "move", and "stack" are all synonyms for moving objects
- Use "on" to specify where to place objects (e.g., "on the table", "on the large block")