SUMMARYIn this paper, we describe an algorithm for the incremental state update of elasto-plastic systems with softening. The algorithm uses a complementary pivoting technique and is based on casting the incremental state update as a complementarity problem. In developing the algorithm, we take advantage of the special features of solid and structural mechanics problems to achieve good computational performance, and hence the ability to compute numerical solutions to practical size problems. For example, the notion of a tangent stiffness matrix arises. Numerical examples using models of skeletal structures are presented to demonstrate the practicability of the algorithm. The numerical examples also raise some interesting questions about multiplicity of the solutions.