UG is a flexible software tool for the numerical solution of partial differential equations on unstructured meshes in two and three space dimensions using multigrid methods. Its basic design is flexible enough to support many different discretization schemes. The underlying distributed dynamic data programming model offers a smooth migration from sequential to parallel computing.