I've always been a fan of roguelike games (as evidenced by the inanity that is Kareltima). I've also always been a fan of artificial life techniques, from Conway's Game of Life1 to Ant Colony Optimisation. In 2002, I was impressed by Peter Henningsen's DungeonMaker. DungeonMaker can make complex random dungeons according to the designer's specifications. They can be as random or as deterministic as you want. The complex, organic look of the generated dungeons comes from the use of Artificial Life techniques: tunnels and walls are built by a-life creatures moving around the map.

DungeonMaker can make complex random dungeons, following your own high-level designs and filling in the details.
In more recent times, Aaron Dalton took over the SourceForce project, modernised the build and produced a library that can finally be incorporated into game projects.
I also set about making a set of Python bindings for this library. My first step was to modernise the build infrastructure even more (it's been a few years since the last DungeonMaker release), and debianise it. You can find it here.
Download
If you use a Debian-like Linux distribution, you could download from the BedroomLAN Debian Repository, or view all contents of the project's directory (more versions etc.) in the repository.
License
The original DungeonMaker licensing holds for this release. The library is licensed under the GNU Public License. For projects where this is an issue, commercial licenses are available from the original authors.
DungeonSpawn
In the process of building the DungeonMaker Python bindings, I extended the original library to a point where forking a new project with personal customisations and extensions seemed prudent. This project is DungeonSpawn.