QGIS is a modular and extensible open source geographic information system. It exposes functionality through Python bindings, allowing plugins and standalone applications to be developed. Plugins interact with QGIS through the QgisInterface class, which provides access to core functionality like layers, features, and geometry. Example plugins are InaSAFE for hazard impact scenarios and Crayfish for flood modeling results. Standalone applications can be built with the QGIS libraries for tasks like automating processing, data collection, or specialized navigation tools.