ActiveMath is a generic web-based learning system that dynamically generates interactive (mathematical) courses adapted to the student's goals, preferences, capabilities, and knowledge. The content is presented in a semantic XML-based format. For each user, the appropriate content is retrieved from a knowledge base and the course is generated individually according to pedagogical rules. Then the course is presented to the user via a standard web-browser. One of the exceptional features of ActiveMath is its integration of stand-alone mathematical service systems. This offers the means for exploratory learning, realistically complex exercises as well as for learning proof methods. The article provides a comprehensive account of the current version of ActiveMath.