So, I’d been under the impression that whichever way the normal of a face is pointing is treated as the “outer” side of the face, and as such, if I were to use the boolean difference modifier on the object, the impression created in the surface would be facing away from the normal.
However, in practice, the direction of the normal seems to make no difference. I’m not sure if this is a bug, or if boolean operations simply don’t work how I expect.
Case in point: I’m modelling a room with recess lighting in the ceiling. Since the room is only supposed to be viewed from the inside, I flipped all the normals inward. I then created a cylinder as the boolean object to cut out of the ceiling for the recess lighting. However, when I added the boolean difference modifier to the room with the cylinder, rather than creating a recess in the ceiling, it creates a cylindrical protrusion. Although this is easily fixed in this particular case by changing the boolean operation to a union, I had assumed since the normals were flipped, it would carve from the inside of the room, not the outside. However, normals seem to make no difference, whether I flip them on the room, or the cylinder.
I know that in this particular case, there’s an easy fix, but I feel like in more complex scenarios, things might not be so easy, so I’d like to improve my understanding. Should the boolean modifier be behaving this way? And if so, is there another way to flip a face’s orientation that would change the behavior of the boolean modifier?
Here’s some pics from my modelling:


