Skip to main content

The Generative Design Python Client (GDPC) is a Python-based interface for the Minecraft GDMC HTTP Interface mod.\nIt was created for use in the Generative Design in Minecraft Competition (GDMC).

Project description

GDPC 6.0 (Transformative Update)

GDPC (Generative Design Python Client) is a Python framework for use in conjunction with the GDMC-HTTP mod for Minecraft Java edition. It is designed for the Generative Design in Minecraft Competition (GDMC).

You need to be playing in a Minecraft world with the mod installed to use the framework.

The latest version of GDPC is compatible with GDMC-HTTP versions >=1.0.0, <2.0.0.

Quick example

from gdpc import Editor, Block, geometry

editor = Editor(buffering=True)

# Get a block
block = editor.getBlock((0,48,0))

# Place a block
editor.placeBlock((0,80,0), Block("stone"))

# Build a cube
geometry.placeCuboid(editor, (0,80,2), (2,82,4), Block("oak_planks"))

What's the difference between GDMC, GDMC-HTTP and GDPC?

These abbreviations are all very similar, but stand for different things.

GDMC is short for the Generative Design in Minecraft Competition, a yearly competition for generative AI systems in Minecraft. The challenge is to write an algorithm that creates a settlement while adapting to the pre-existing terrain. The competition also has a Discord server.

GDMC-HTTP is a Minecraft Forge mod that provides a HTTP interface to edit the world. It allows you to modify the world live, while you're playing in it. This makes it possible to iterate quickly on generator algorithms. The mod is an official submission method for the competition.

GDPC (notice the "P") is a Python framework for interacting with the GDMC-HTTP interface. It provides many high-level tools that make working with the interface much simpler.

Installation

GDPC is available on PyPI. To install the latest stable release, type one of the following commands:

  • On Linux/MacOS: python3 -m pip install gdpc
  • On Windows: py -m pip install gdpc

For the latest sexy-but-might-break-something prerelease, type the following instead:

  • On Linux/MacOS: python3 -m pip install --pre gdpc
  • On Windows: py -m pip install --pre gdpc

To update your package, type the following:

  • On Linux/MacOS: python3 -m pip install --upgrade gdpc
  • On Windows: py -m pip install --upgrade gdpc

If you would like to install the latest (pre)release version directly from GitHub, replace gdpc with
git+https://github.com/avdstaaij/gdpc
If instead you want to install the latest cutting-edge development version, replace gdpc with
git+https://github.com/avdstaaij/gdpc@dev

For more information on installing from GitHub (such as getting old versions) see the pip documentation.

If you are having trouble with dependencies, download requirements.txt and try running python3 -m pip install -r requirements.txt (or py -m pip pip install -r requirements.txt if you are using Windows). You should not use requirements-dev.txt!

Tutorials and examples

There are various tutorial scripts that will help to get you started.

Some practical examples are also available, though they're slightly older and may not reflect the latest features:

  • visualize_map.py: Displays a map of the Minecraft world using OpenCV.
  • emerald_city.py: Demonstrates basic GDPC functionality by building a simple model of the Emerald City.

Contributing

See CONTRIBUTING.md for more information about how to contribute.

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

gdpc-6.0.0.tar.gz (59.9 kB view details)

Uploaded Source

Built Distribution

gdpc-6.0.0-py3-none-any.whl (62.0 kB view details)

Uploaded Python 3

File details

Details for the file gdpc-6.0.0.tar.gz.

File metadata

  • Download URL: gdpc-6.0.0.tar.gz
  • Upload date:
  • Size: 59.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for gdpc-6.0.0.tar.gz
Algorithm Hash digest
SHA256 92a281498e5e9ee13e62c120272748483dd48c893b8bc4fc410262fd765f28d3
MD5 5e7116b5d0fb936a05d61f85dadf7b35
BLAKE2b-256 7cbb7645d7cc5e70f6ffe876054825c4b7ec39c6df41902f443ffe04a4203f7a

See more details on using hashes here.

File details

Details for the file gdpc-6.0.0-py3-none-any.whl.

File metadata

  • Download URL: gdpc-6.0.0-py3-none-any.whl
  • Upload date:
  • Size: 62.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for gdpc-6.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 689bd95f8ced3e04f283b540332a72d044def7d3f46efe8ee81f334e86c43753
MD5 3490c0f8ed81758c5f92937feb4737ff
BLAKE2b-256 a78b35a66732170dd0982e45f5c2091b57f9114e5381cc781b6a6c81942b9fb7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page