The maze book for programmers!
mazesforprogrammers.com

Algorithms, circle mazes, hex grids, masking, weaving, braiding, 3D and 4D grids, spheres, and more!

DRM-Free Ebook

The Buckblog

assorted ramblings by Jamis Buck

Under the Hood

Jan 2015

A Better Recursive Division Algorithm

15 January 2015 — A novel variation on a the Recursive Division maze generation algorithm, in which regions are defined by arbitrary clusters of cells instead of rectangular divisions of the grid. The algorithm is presented and illustrated, and its benefits over the original algorithm are put forth. A demonstration in JavaScript is provided — 4-minute read
Mar 2011

Maze Generation: More weave mazes

17 March 2011 — A technique is demonstrated, giving finer configuration of weave density in random mazes, courtesy of Kruskal's algorithm — 7-minute read

Maze Generation: Weave mazes

4 March 2011 — A way to construct mazes in “pseudo-3D” is presented, wherein the passages weave over and under one another — 7-minute read
Feb 2011

Weave Mazes: Your Take?

28 February 2011 — A challenge is given, urging the reader to consider how a maze might be created in which passages weave over and under each other. A subsequent article is foreshadowed — 1-minute read

Maze Generation: Algorithm Recap

7 February 2011 — A quick overview of the maze algorithms described in previous articles, with links and animations — 5-minute read

Maze Generation: Sidewinder algorithm

3 February 2011 — 6-minute read

Maze Generation: Binary Tree algorithm

1 February 2011 — 4-minute read

Jan 2011

Maze Generation: Growing Tree algorithm

27 January 2011 — 5-minute read

Maze Generation: Hunt-and-Kill algorithm

24 January 2011 — 5-minute read

Maze Generation: Wilson's algorithm

20 January 2011 — 6-minute read

Maze Generation: Aldous-Broder algorithm

17 January 2011 — 4-minute read

Maze Generation: Recursive Division

12 January 2011 — 6-minute read

Maze Generation: Prim's Algorithm

10 January 2011 — 5-minute read

Maze Generation: Kruskal's Algorithm

3 January 2011 — 5-minute read

Dec 2010

Maze Generation: Eller's Algorithm

29 December 2010 — 9-minute read

Maze Generation: Recursive Backtracking

27 December 2010 — 4-minute read

Nov 2010

Design Forces in Ekawada, Part 5

9 November 2010 — 2-minute read

Design Forces in Ekawada, Part 4

3 November 2010 — 2-minute read

Design Forces in Ekawada, Part 3

1 November 2010 — 3-minute read

Oct 2010

Design Forces in Ekawada, Part 2

28 October 2010 — 3-minute read

A look inside Ekawada's design

27 October 2010 — 2-minute read

Nov 2006

Under the hood: ActiveRecord::Base.find, Part 3

30 November 2006 — 5-minute read

Under the hood: ActiveRecord::Base.find, Part 2

20 November 2006 — 5-minute read

Under the hood: ActiveRecord::Base.find, Part 1

17 November 2006 — 1-minute read

Oct 2006

Monkey-patching Rails: Extending Routes #2

26 October 2006 — 4-minute read

Monkey-patching Rails: Extending Routes #1

20 October 2006 — 4-minute read

Under the hood: route generation in Rails

16 October 2006 — 20-minute read

Under the hood: route recognition in Rails

4 October 2006 — 8-minute read

Under the hood: Rails' routing DSL

2 October 2006 — 6-minute read

Sep 2006

Inside Capistrano: the Command abstraction

28 September 2006 — 6-minute read

Inside Capistrano: the Gateway implementation

26 September 2006 — 4-minute read

Nov 2004

Refactoring Net::SSH: Part 7

21 November 2004 — 2-minute read

Refactoring Net::SSH: Part 6

6 November 2004 — 3-minute read

Oct 2004

Refactoring Net::SSH: Part 5

23 October 2004 — 4-minute read

Refactoring Net::SSH: Part 4

16 October 2004 — 5-minute read

Refactoring Net::SSH: Part 3

13 October 2004 — 2-minute read

Refactoring Net::SSH: Part 2

11 October 2004 — 3-minute read

Net::SSH Refactoring Adventure

9 October 2004 — 4-minute read