A game: How to model the Soma Cube

I have challenged myself to build a Neo4j solver for the Soma Cube, and share it with the community.

There are 7 distinct pieces. They can be assembled in multiple ways to form a cube. I would like to put Neo4j to the task of providing all possible solutions of the game (that form a cube).

These pieces have inner corners and outer corners, and most likely I need to check that every inner corner gets occupied by an outer corner of another piece. I want to be able to represent the 3D shape of each piece, well enough to determine how those pieces can be oriented to fit together to form a cube, without breaking the laws of physics. It would be cool if I could use the new 3D Spatial Data type somehow.

Just for clarity: I'm not asking for a complete solution; I do actually want to solve it myself. But I would welcome any suggestion about how to model the separate pieces in the game. I can think of an approach to solving this outside Neo4j, using a scripting language and a 3D Matrix, but that's not the challenge I want to solve.