Optomized method to detect if two parts are colliding?

i want to build a collision detection from scratch because GetPartsInPart is expensive
i did use SAT to detect if they are touching it works better than GetPartsInPart when trying to find 1 part colliding with another but if you try to detect if its touching the player’s character which has 16 parts GetPartsInPart easily wins

if you have an algorithem that is both fast and counts for rotation plz give me it :(