Simulation is an important approach to understanding a wide variety of real and abstract systems. A simulation model represents key features of a system like a city or an economy as a computer program that takes data as input, executes the underlying software, and produces output data for analysis. Simulation approaches range from relatively simple mathematics to very complex models. A variety of different simulation approaches are in use, some since the inception of the digital computer, and each method offers distinct strengths and challenges. These various methods are used in capacities that run the gamut from formal theory building to scenario generation to education. Simulation offers a number of advantages that range from knowledge elucidation to the tractable modeling of complex multiscalar systems. Simulation in general also faces a number of recurring challenges, particularly with respect to data needs and issues inherit in modeling complex systems. Simulation is a valuable approach that will likely see expanded growth in the future as a means to understand increasingly complex human, human-environment, and natural systems.