Visual reasoning is an essential skill for many disciplines in engineering and architecture. We describe an intelligent tutoring system for visual reasoning that uses the missing view problem, a learning contents model based on skills, lessons, and problems, and a learner model that measures domain competence as a set of skills. Learning contents and pedagogical teaching strategy are stored in ontologies, which can be customized by the teacher.