It makes use in other classes I’ve created which I can assure you work perfectly (Those were there before I started implementing SAT and I’ve used them several times), the Vector3f class that is built-in in LWJGL and in the following classes:

Note: The class IntersectionData is just a class that stores if two objects collide and the distance between the to objects, it is already in use in other parts of the engine and is fully functioning.

For some reason, collision won’t detect properly and objects pass right through each other, and I suspect the source of the problem is the way the normal vector is calculated, because when I run the simulation (the engine), I get an IllegalStateException: Zero length vector exception at the line normal1.normalise();.