Added initial version, written in Processing