Atom is a DSL embedded in Haskell used to describe synchronous reactive software systems, primarily intended for realtime control applications. Based on conditional term rewriting, an atom description is composed of a set of rules that defines the state transition behavior of the system at periodic intervals.