A downloadable level generator for Windows and macOS

With our Escher-like World Generator, designers can use custom constraints, including dimensions, level density, placement rules and more to create endless level ideas inspired by the work of M. C. Escher.

In our Unity demo, we automatically translate text representations of these worlds into playable 3D spaces with special rules of gravity. We've included the ability for players to switch their plane of gravity, so they can traverse the world as if inside one of M. C. Escher's worlds. Watch the video or download the demo to experience one of these worlds.

Created by Ben Paulsen, Rachel Haub, Sophia Santos, and Bailey Victorio.

Install instructions

To play the demo:

Download the right demo for your platform (Mac or Windows).

  • Mac: Double click the .dmg file, run the app.
  • Windows: Unzip the .zip, run the .exe file.

To generate your own levels:

Make sure you have python 3 or greater.

  1. Download Unity-Project. Download level-generator.zip and unzip.
  2. Open your terminal and navigate to that folder. Run pip install python-constraint or pip3 install python-constraint to get the constraint satisfaction library. 
  3. Run python3 generate.py --help to bring up the command line interface.
  4. Generate a level. Copy and paste it from your terminal into the Escher-WorldGen-Unity/Assets/Resources/level.txt file in the Unity project.
  5. Open the Unity editor to Escher-WorldGen-Unity and hit play to test out your level!


Demo.dmg 74 MB
Demo.zip 65 MB
level-generator.zip 72 kB
Unity-Project.zip 676 MB


Log in with itch.io to leave a comment.

We need Escher's multiplayer fps!