A constraint-drawing editor allows the user to maintain a set of Points and Figures on the drawing plane. Points come in two flavours: Free Points and Constrained Points. While the former can be freely placed and moved by the user, the latter depend on other Points, which will (fully or partially) define the position of a Constrained Point. If necessary, the system will move Constrained Points automatically to maintain the respective constraints. Examples of Constrained Points are points located in the middle of two given ones, on a corner of a rectangle, or anywhere on a circle. Escher is a reworking of the original 'Constraint Drawing' package Brahe published by Joakim Björklund, Niclas Forsen, Gabor Magyar, Peter Mitts, and Wolfgang Weck 1997. Escher uses the original constraint drawing concept and implementation from Brahe virtually unchanged, but with the following differences: The underlying data type has been changed from INTEGER to REAL. Several new Point and Figure types have been added. The user interface code has been extensively rewritten to provide new and improved functionality. Multi-language support has been added to the user interface (English, French & German). A few old bugs have been removed; no doubt some new ones have been added! The Documentation has been significantly extended & updated to reflect the above changes. A Module that adds Animation to Escher drawings. Support for drawing conic sections (ellipses and parabolas etc). The dependancies Escher has on non-Oms subsystems are: Optional: CtlsRealField & CtlsSliders.Slider. ('Oms-only' versions of the Forms are also provided.) Escher uses optional the services of Ctls.