I believe that if you intend to go the 2D CAD way, the Geom module might be of some use to you. The Geom/Draw Plotter object handles affine coordinate transform, the Tool objects (PathTool, AreaTool, MarkTool) can be used to draw some primitive objects using logical (float) coordinates. The PlotterCtrl control in Geom/Ctrl is a generic view control intended exactly for viewing and editation float-based drawing-style data. There is a DragDrop subobject which can be used to implement various mouse operation modes. There are also some murkier areas, like a toolbox for handling geographic coordinate transforms, but perhaps it'll be better to leave that for later. There are also some generic mathematical and computational geometry-related routines like linear equation set solver, complex polygon splitter or Delaunay triangulator. Parts of the stuff don't really belong there and some slowly find their way into Mirek-maintained main trunk .