The Programmer's Guide describes the structure and organization of the program VMD, and provides complete descriptions for all important object classes. This guide is designed to aid researchers interested in learning how VMD is constructed and who are interested in making modifications or improvements to the existing code. The program is logically divided into six main categories: (1) Utility objects; (2) Rendering (display) objects; (3) Molecule objects; (4) Remote connection objects; (5) User interface objects; (6) Spatial tracking and 3D pointer object. The Programmer's Guide describes first the organization and conventions used in all source files for VMD, then discusses the program design and relationship between the five components, and concludes with individual descriptions of each object class.