Maybe you can check jiglib's collision for start. I guess the best way to check collision actually is during the vertex computing/processing, at least when you actually have access to the process.