SHRDLU World
Small standalone tabletop blocks-world simulator. It can run as a Python object, a headless HTTP service, or a browser viewer for manual control.
Install
pip install shrdlu-world
For local development:
cd ~/shrdlu-block-world
python -m pip install -e .
Run
# Browser viewer at http://127.0.0.1:18123/
shrdlu-simulator
# Equivalent module entrypoint
python3 -m shrdlu_blocks.simulator
# API only
shrdlu-simulator --headless
# Equivalent module entrypoint
python3 -m shrdlu_blocks.simulator --headless
Useful options:
--host HOST--port PORT--open-browser
Interface
Running python3 -m shrdlu_blocks.simulator starts a small browser UI for
manual control of the scene.
The viewer includes:
- a central canvas showing the current blocks-world scene
SelectandMovemodes for interacting with objects in the canvas- zoom controls and a reset button in the top bar
- direct
xandyinputs formove_grasper - buttons for
raise_grasper,lower_grasper,open_grasper, andclose_grasper - an object list for selecting the active object
- highlight and unhighlight controls for the selected object
- an event log showing recent actions and simulator responses
This UI is served from the same HTTP server as the JSON API, so the browser viewer and programmatic API stay in sync.
Python API
from shrdlu_blocks import ShrdluBlocksEnv
env = ShrdluBlocksEnv()
env.execute_action({"name": "move_grasper", "args": {"x": -0.1, "y": 0.4}})
env.execute_action({"name": "lower_grasper", "args": {}})
print(env.snapshot_text())
HTTP API
GET /api/statePOST /api/actionPOST /api/reset
POST /api/action expects an action object:
{
"action": {
"name": "move_grasper",
"args": {"x": -0.1, "y": 0.4}
}
}
Supported action names:
move_grasperwithxandylower_grasperraise_grasperclose_grasperopen_grasperhighlight_objectunhighlight_object
Configuration
export SHRDLU_SIMULATOR_HOST=0.0.0.0
export SHRDLU_SIMULATOR_PORT=18123
export SHRDLU_WEB_OPEN_BROWSER=1
For remote use, forward the viewer port and open http://localhost:18123:
ssh -L 18123:localhost:18123 user@remote-host
Layout
shrdlu_blocks/simulator/: environment, controller, scene model, and HTTP servershrdlu_blocks/viewer/: browser viewer and static assetsshrdlu_blocks/client.py: small HTTP client for a running service
Metadata
Release files for shrdlu-world 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| shrdlu_world-0.1.2.tar.gz | 29.6 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shrdlu_world-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 63.7 kB
Release files / shrdlu_world-0.1.2.tar.gz
| Download URL | shrdlu_world-0.1.2.tar.gz |
|---|---|
| Size | 29.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
48b435082427b79ec55a5912906b0b8a270fb15f9f3fd6a16402de6a396f2ed6
|
|
BLAKE2b-256 checksum How to use checksums |
e204449b80b12393110fcb3fa2f14e170a9fd94184c2d93bf2c6f7e8136d3344
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.
Transparency logRelease files / shrdlu_world-0.1.2-py3-none-any.whl
| Download URL | shrdlu_world-0.1.2-py3-none-any.whl |
|---|---|
| Size | 34.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7aa8b2f523af7c72d0a666d54f9e7a8328b38be03a6b2c97534bd4edcf03bce8
|
|
BLAKE2b-256 checksum How to use checksums |
09ae4f2f687030c1256c28bda65a97ce6b23e4972f01eb12392a337af6c215d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.
Transparency logSecurity for shrdlu-world 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for shrdlu_world-0.1.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.