I find Hal Abelson's book Turtle Geometry [1] fascinating. It describes a dialect of Logo (the graphical routines could probably be implemented relatively easily in Python/Tkinter or Tcl/Tk or something like Processing).
Once the basics are described, then it uses them to go on to explore things like non-euclidian geometry (and maybe topology?).
You might also want to check out http://GeoKone.NET, which is kinda similar, but not trying to imitate the original spirograph. But I hear many people have compared the two.
GeoKone is much more complex though and allows much more flexible geometry to be created.
Once the basics are described, then it uses them to go on to explore things like non-euclidian geometry (and maybe topology?).
[1] http://www.amazon.com/Turtle-Geometry-Mathematics-Artificial...