Brilliant piece of work.
Can you be persuaded to do a tutorial someday? I would love to be able to do this, but I have no idea how to even begin