We describe a software tool for specifying operational semantics as a term-graph reduction system. The semantics are guaranteed to accurately model the asymptotic space and time usage of an implementation yet are abstract enough to support reasoning at the program level. Term graphs make explicit all the aspects of reduction relating to space usage as they naturally encode size and address information. The semantics are constrained to be small-step, deterministic rules and each rewrite step uses bounded resources. The result is a system suitable for describing and analysing the space behaviour of functional programming languages.