Paper, pencil.
I'm seconding jensgram and JohnGB. Be VERY wary of 'realistic' demos. They do things and feel like something that is real, but inevitably, they are not. The interactions are designed for the demo and the demo software, rather than the real app, and the real requirements of the production code.
If the demo is merely a throw-away, then that's less of an issue, but if it's any sort of an official 'document' or signed-off milestone, I'd suggest you look into adopting Agile development processes and let the actual app, itself, act as the demo.