The DualSPHysics project is an open-source smoothed particle hydrodynamics (SPH) code for simulating free-surface flow. The DualSPHysics code can be run on both multi-core central processing units (CPUs) or on a graphics processing unit (GPU) and is optimised to exploit the computational power of a GPU. Since its original release in 2011, DualSPHysics has been continually developed based on latest research and hence its functionality has been expanded to include an increasing range of applications. The paper presents the basic formulation and then details of all features of SPH formulations including boundary conditions, water wave generation and absorption, coupling with other models including the discrete element method, a physics engine and mooring library, and multi-phase models. Developing an SPH code with many developers in different locations presents challenges, and ensuring rigorous validation is undertaken before code releases is an important part of the development process. The validations undertaken for the DualSPHysics code are presented followed by two example applications: an armoured breakwater with moving armour units, and a wave energy converter. Both examples demonstrate the ability of SPH to include the interconnected movement of multiple objects. Finally, the paper briefly discusses the current research challenges being addressed by the DualSPHysics consortium