Boolean modeling a sink with Bool Tool
We've used the Boolean modifier a couple of times in earlier parts of this book. Dynamically cutting holes for our chair earlier in this project was neat, but it involved many tedious steps, such as choosing the right Boolean operation, deactivating the Boolean object's rendering in the outliner, and setting the bounding box's draw mode. The Bool Tool add-on reduces those steps to a much faster workflow. Bool Tool has two methods—Auto Boolean and Brush Boolean. Using Auto Boolean will instantly apply the Boolean operation and discard the Boolean object. Using Brush Boolean will set up the necessary modifiers and change the display of the Boolean object.
To start, let's use Bool Tool to carve a hole in the counters for a sink:
- In your kitchen island scene, create a cube and adjust it in Edit Mode to fit over two cupboard doors.
- Select the cube in Object Mode, then select your kitchen counter.
- Use the Ctrl + Shift + B hotkey and choose Brush Difference.
- You can see the next layer of the kitchen through the hole you created; once again, select the Brush cube, then the next layer, and choose Brush Difference, repeating until it goes all the way down, as in the following screenshot:
Now that we have a hole cut, we can model the sink:
- Add another cube to fit inside this hole or create it from a duplicate of your previous Boolean object. This will be the start of our sink.
- Duplicate this cube for a different object that will carve the sinks in. Move it up, scale it down, and leave more space on the backside to add our faucet later. Add your sink object to the selection, then Brush Difference Boolean.
- For the divider between the two sinks, duplicate the previous sinkhole brush, scale it to a thin divider, and move it down. Boolean modifiers often require a nearby plane to make clear-cut decisions, so make sure the faces overlap, rather than sitting right on top of each other.
- Boolean setups are most likely to break for a few reasons. If the incorrectly facing normals on the main or brush meshes are at fault, select the faces in Edit Mode and recalculate normals with Ctrl + Shift + N. Errors might also occur based on mesh proximity, as the Boolean modifier tries to find geometric neighbors. Try slight adjustments to the position and scale and note when a Boolean brush "pops" into a correct operation.
So far, our sink looks like this:
So far, so good—but no sink is complete without drains. Let's make those now:
- Set the three-dimensional cursor to the divider objects, add a cylinder, and put a Mirror modifier on it. In Edit Mode, move all its vertices to one side (now mirrored on both sink sides).
- In Object Mode, add your sink to the selection, then do a brush difference, cutting circles into the bottom of the sink.
- For the sink drain, I duplicated the brush and changed its draw mode back to textured and reactivated its rendering in the outliner. Quickly model some insets and extrudes and finish by deleting the planes for the drainage holes.
Now, our drains should look like this:
Very good—but we are, of course, missing a faucet. We can't pour water without a faucet, so let's make one now:
- Create a cylinder for the faucet, then Boolean out several union cylinders to form a handle, with a thin cube as a difference Boolean to put a seam in the handle.
- On the sink, use Brush Union Boolean on a scaled torus to add an inset for the faucet. You can model the neck and spigot from an extruded cylinder or with a curve with Fill Mode set to Full and some minor bevel depth, which you then convert into a mesh. Simple insets, extrusions, and scalings create the spigot head. Then, for the tiny detail of a switch on the faucet, I once again used Brush Union Boolean—a rectangular union Boolean—for the switch chassis, a duplicated and edited difference Boolean for the switch hole, and a diverted box for the switch:
- Add a Bevel modifier to your sink object, set Segments to 4, set Limit method to an angle of 30 degrees, and right-click to set Shade Smooth. The Bevel modifiers are the last touch for our beautiful Boolean modeling, but we have to watch out for problems in the mesh, the modifier stack, and the Bevel settings.
- Adjust the Bevel modifier's width until it's just right—in my case, .01. When it's done right, the bevel will soften the edges, but if adjacent faces are at similar angles, they'll be ignored. If you change one of your Boolean brush modifiers to be lower in the stack, the order of operations instead leaves a sharp seam.
- Throw a similar Bevel modifier on your faucet and other objects, including your brush objects. I added one to the sink difference with much larger settings—0.1m width and 7 segments, with no limit method. The cut is sharp when it enters the sink, but creates a rounded interior. I softened some of the other difference brushes as well, such as the faucet handle and sink divider.
There we have it! Lots and lots of Booleans, but we've got ourselves a sink that should look like this:
The Bool Tool workflow is great for hard surfaces and leaves a lot of secondary freedom by adjusting your brush objects. Practice will help you with small adjustments to both the object placement and modifier settings whenever artifacts appear. For instance, I sometimes toss in an extra edge loop so that the jump the modifier makes when cutting isn't so far.
Up next, we'll take a look at adding doors and windows to let some air into our kitchen.