The Smart Classroom lets teachers simultaneously instruct remote and local students. It provides a pen-based user interface on a projected display and a computer-vision-based module for selecting remote students using a laser pointer. A speech-capable computer-animated virtual assistant lets the teacher control the presentation of lecture materials and informs the teacher of classroom events. In addition, a context-aware Smart Cameraman module automatically switches between several cameras so the live video for remote students always follows the class focus. The system?s underlying software infrastructure, the Smart Platform, has a multi-agent based architecture with a loosely coupled publish-subscribe coordination model and a well-defined wire protocol. The Smart Platform's development interface is fairly simple, so developers can easily understand and use the system.