Foundations of a constraint-based illustrator. The talk describes some of the formal foundations of Juno-2, a constraint-based graphical illustrator implemented by Allan Heydon and Greg Nelson and available over the web in source form. par The first idea underlying Juno-2 is that constraint-based programming is obtained from ordinary imperative programming not by adding a feature but by subtracting a restriction: specifically by dropping the law of the excluded miracle from the calculus of guarded commands of Edsger W. Dijkstra. Dropping this law introduces “partial commands” (sometimes called “miracles”), which, when combined with conventional local variable introductions (“VAR statements”) creates a highly principled constraint solving primitive that is beautifully orthogonal to the conventional imperative features of the language. par The second idea is that the “combination of decision procedures technique” that has been widely used in the automatic theorem-proving community for the last two decades can also be used to combine constraint solvers for two logical theories into a single constraint solver for the combination of the theories. Juno-2 uses this idea to combine a simple solver for the theory of a pairing function (which amounts only to an implementation of unification closure) with a sophisticated numerical solver for the theory of the real numbers to produce a powerful constraint solver that is useful for producing accurate technical illustrations and animations. The talk will include a demonstration of Juno-2, weather permitting.