K-3D is designed around an extensive and flexible system of plugins, shared library components that are dynamically loaded at runtime. The K-3D application is little more than a "container" that knows how to load plugins at startup and manage their interactions. All of the real functionality in K-3D - from pipeline sources, modifiers, and sinks to the user interface - is provided by plugins. The plugin mechanism simplifies both building and distribution of the program - developers can easily disable plugins that they can’t compile or don’t want, and distributors can ship binary plugins to users, secure in the knowledge that plugins with missing dependencies will be quietly ignored at runtime. This article presents an overview for developers of how the plugin system works.