This could be done with Kangaroo. As long as everything works in a plane, it’s fairly simple.
Also look at this topic: