GroundCollapse v. 0.1.0: Visual Tileset Editor

Announcing a new usability-focused update of the constraint-based 2D level generator GroundCollapse.

This release adds a new visual tileset editor to let you create new tilesets quickly! It also adds support for saving generated level areas, so they can be loaded again later or imported into other tools.

Features include:

  • Flexible, tag-enabled adjacency editor to quickly set up each tile's possible neighbors.
  • Full undo/redo support.
  • Auto-slicing of sprite sheets to quickly import many tiles at once.
  • And more!

Developed for Procjam 2020 (plus work that has been in progress long before the start of the jam), this release may contain bugs, so please use at your own risk. Feel free to ask questions or report bugs here or on GitLab (!


[0.1.0] - 2020-12-14


  • Added a full graphical tileset editor! You can now build an entire tileset visually, rather than typing it into a .json file. Includes auto-slicing of sprite sheets, undo/redo support, copying tiles, and more. This makes it much faster to create a new tileset!
  • Tiles can now have "tags" on their edges to set adjacency (essentially, categories of adjacency) - this means that if two tiles have the same tag on opposite edges, they can be next to each other on those edges.
  • Tiles can now specify "prohibited" adjacencies - even if other rules (such as tags) would allow them to be adjacent, they will never be allowed to be if they have been set to prohibit that specific tile in that specific direction. This lets you set exceptions to tags.
  • Added --aggregateStats option. If you set --aggregateStats=True, you will see a printout of performance stats from clingo.
  • Added ability to specify adjacencies in all 8 directions in the tileset definition.
  • Added ability to save resulting level chunks to disk. You can use --saveChunks=True to enable saving, or --saveHumanReadableChunks=True to save them in text format.
  • Added option to set the save path with --baseChunkPath
  • Added option to set the level name (for saving) with --levelName.
  • Added option --makeUniqueLevelID, set it to True to add a random ID to the level name.
  • Added ability for code to require or desire exits in particular directions when building a chunk.
  • Added ability for code to specify required and desired walkability for specific parts of a chunk.
  • Added ability to specify blocked exits from a tile in the tileset.
  • Added ability to provide user-specified data that external code can retrieve from tiles in the tileset.
  • Added more complex example tileset.
  • Added constraints to help prevent neighboring chunks from being too similar to each other.


  • Improved style of to reduce duplication.
  • Improved performance, reduced hitches while moving camera.
  • Improved performance of chunk creation.
  • Improved variety of output chunks.
  • Improved order in which chunks are built to avoid creating chunks with no constrained edges.
  • Fixed bug that caused some chunks to get temporarily duplicated into a second location.


Windows 64-bit Executable 236 MB
Version 0.1.0 Dec 14, 2020
Linux Executable 351 MB
Version 0.1.0 Dec 14, 2020
Source Code v.0.1.1 (Python, any platform)
Dec 14, 2020

Get GroundCollapse

Leave a comment

Log in with to leave a comment.