How to remove material from Solids?

I have been given a project to work on that renders an object after it has intersected with another object, i.e one object “removes material” from another object. For instance, a drill enters a piece of wood and a hole can be seen when the drill is withdrawn. Can anyone please point out a direction or appraoch that would accomplish this? I don’t mind researching and learning what is needed, hints and suggestions will be great, free libraries and/or technique examples would be even better.
Thanks in advance for any help.

Constructive Solid Geometry (CSG) is a possible technique to accomplish this, it applies boolean operators (union, intersection, difference) to two or more solid objects. I remember seeing papers on how to render these reasonably efficient, but off-hand don’t have any links.

Thanks, CSG has now been added to my search terms.
Cheers!

For anyone who is interested, after an exhaustive web search, I found a most useful solids modelling library that works with OpenGL and I am sure other rendering engines. sgCore by Geometros.
I highly recommend it, I’m getting good results, already performing Boolean operations on solids!

Cheers