We present several algorithms for self-intersection detection, and possible elimination, in freeform planar curves and surfaces. Both local and global self-intersections are eliminated using a binormal-line criterion and a simple direct algebraic elimination procedure that enables the direct solution of the algebraic (self-)intersection constraints. All algorithms have been fully implemented and tested. Examples are presented for applications in self-intersection detection, self-intersectionfree metamorphosis of curves, and proper trimming of self-intersections in offset curves. c 2007 Elsevier Ltd. All rights reserved.