The VJ-Software Resolume Arena is a popular tool that is used by many media artists. The software allows you to create a composition of multiple video clips that are organized in individual layers.
Many tutorials that explain the various functionality of the software can be found on the website.
Resolume Arena has a very powerful project mapping engine, that allows you to divide the composition into multiple slices. Later these slices can be mapped onto multiple surfaces. Additionally, Resolume Arena also allows you to mask the mappings, if you for example want to project on a sphere or a more complex surface.
The following processing sketch shows how Resolume Arena can be remote controlled using the oscP5 library that sends OSC messages:
import oscP5.*; import netP5.*; OscP5 osc; NetAddress arena; void setup() { size(400, 400); frameRate(25); // processing receives OSC messages on port 12000 osc = new OscP5(this, 12000); // arena receives OSC messages on port 7000 arena = new NetAddress("127.0.0.1", 7000); } void draw() { background(0); } void keyPressed() { if (key == '1') { setClip(3, 1, true); } else if (key == '2') { setClip(3, 2, true); } else { println("unhandled: " + key); } } void setClip(int layer, int clip, boolean state) { OscMessage msg = new OscMessage("/composition/layers/"+layer+"/clips/"+clip+"/connect"); msg.add(state ? 1 : 0); osc.send(msg, arena); }