LSD is one of many programming languages designed to develop agent-based models. LSD implements time-driven models expressed in formats equivalent to discrete systems of equations, where each equation computes the value of a generic instance of a variable at a generic time step. LSD models are therefore extremely parsimonious in terms of details that users must provide to the system. When a model has been described, the system automatically generates a working program implementing the model, endowed with a complete set of interfaces for any possible operation on the model. The major feature of is that users can rely on an automatic scheduling system and on automatic retrieval of data required for the equations. Such features are particularly attractive in complex, multi-herarchical models. They permit even non-expert programmers to develop even relatively complex models with minimal training. The system's interfaces guarantee the complete control of the model at building, at run-time and at post-simulation analysis, facilitating debugging, revisions and detailed analysis of model results, which are useful properties especially when developing large models for ambitious projects. The design of LSD is based on an open architecture, so that LSD can be used to implement any type of model, including even-driven models and models based on customized data structures. The intrinsic modularity of LSD models make them easily scalable facilitating the development of highly complex models by demanding users. The underlining layer of C++, accessible by the users, allows the inclusions of external libraries or of complex data structures, besides an extreme speed and dimensions of the model. This work reports on the major features of the design of LSD outlining its most prominent advantages for users of simulation models in research, particularly for agent-based simulations.