  Given a finite set of local constraints, we seek a cellular automaton (i.e.,
a local and uniform algorithm) that self-stabilises on the configurations that
satisfy these constraints. More precisely, starting from a finite perturbation
of a valid configuration, the cellular automaton must eventually fall back into
the space of valid configurations where it remains still. We allow the cellular
automaton to use extra symbols, but in that case, the extra symbols can also
appear in the initial finite perturbation. For several classes of local
constraints (e.g., $k$-colourings with $k\neq 3$, and North-East deterministic
constraints), we provide efficient self-stabilising cellular automata with or
without additional symbols that wash out finite perturbations in linear or
quadratic time, but also show that there are examples of local constraints for
which the self-stabilisation problem is inherently hard. We note that the
optimal self-stabilisation speed is the same for all local constraints that are
isomorphic to one another. We also consider probabilistic cellular automata
rules and show that in some cases, the use of randomness simplifies the
problem. In the deterministic case, we show that if finite perturbations are
corrected in linear time, then the cellular automaton self-stabilises even
starting from a random perturbation of a valid configuration, that is, when
errors in the initial configuration occur independently with a sufficiently low
density.
