In this paper, we propose a method for reconstructing a 3D object (or a set of objects)
from a 2D drawing provided by a designer. The input 2D drawing consists of a set of contours that
may partially overlap each other or be self-overlapping. Accordingly, the resulting 3D object(s) may
occlude each other or be self-occluding. The proposed method is composed of three major steps: 2D
contour analysis, 3D skeleton computation, and 3D object construction. Our main contribution is to
compute the 3D skeleton from the self-intersecting 2D counterpart. We formulate the 3D skeleton
construction problem as a sequence of optimization problems, to shape the skeleton and place it in the
3D space while satisfying C1-continuity and intersection-free conditions. Our method is mainly for a
silhouette-based sketching interface for the design of 3D objects including self-intersecting objects.