The problem addressed is that of simulation of soft robots, in particular those made of silicone rubber and actuated by either air pressure or cables. There are three important aspects to this problem: accuracy, speed and flexibility. In terms of accuracy, I emphasized the fact that most traditional simulators cannot handle well incompressible materials like rubber. My method is based on the framework of the mixed finite element method (FEM). It can handle such situations and avoid a dangerous phenomenon called locking (which in brief means simply giving the wrong simulation results). I wrote a simulator in C++ and Python which can simulate the problem in several ways, some potentially faster than many of the existing commercial and open-source solutions. The code was published as open-source and available for anyone to use. It can be further optimized and already allows interactive and even real-time performance for some scenarios. Last, but not least, this simulator (and the theory behind it) allows for a flexible configuration well suited for many of the soft robotics scenarios . For example, one can choose between static and time-dependent simulation, add simple contacts or solver inverse dynamics problems.