Yade is an extensible open source framework for discrete numerical models, focused on the Discrete Element Method. Its computation parts are written in C++ using a flexible object model that allows independent implementation of new algorithms and interfaces, while Python is used for rapid and concise scene construction, simulation control, postprocessing, and debugging. Yade is designed for researchers and engineers who need to create, run, inspect, modify, and extend particle-based simulations through scripts, interactive commands, graphical tools, and reusable simulation components. Simulations can be built from specialized generators or constructed directly with Python scripts, giving users flexibility for developing custom models, importing geometries, reusing code, and controlling the full simulation loop. It represents each simulation as a scene containing bodies, interactions, and resultant forces, with bodies defined by geometry, material properties, state variables, etc.