Bool Tool

I have taken over maintenance and development of Bool Tool add-on, which was shipped with Blender til 4.1 and is now available on extensions platform.

This topic is for gathering feedback and communicating with users.
You can report bugs on repository by following this link.
Expanding add-on documentation is available in wiki.


Contributions from people who are good with bpy and better than us at math are welcomed and encouraged. If you want to take part in development take a look at Help Wanted section, or propose your ideas!

Users can also contribute by providing screenshots, graphs, or videos that can be useful for documentation.


Bool Tool v1.1 has been released with many updates and new Carver tools

Check out release notes down below and grab the new goods by updating add-on from inside Blender! (Preferences > Get Extensions)

12 Likes

Today I will release first update, official 1.0 version, with changes:


Additions:

  • You can choose boolean solver in preferences. It now defaults to Fast (and hence improving the performance), but you can change it back to Exact.
  • Double-clicking on the boolean modifier in Properties editor selects its cutter object.
  • Curve and Text objects can be used as cutters if they’re beveled or extruded (NOTE: they’re converted to mesh in the process and lost).
  • Cutters are automatically added to “boolean_cutters” collection, making them easy to find and manage. Collection automatically gets removed by Bool Tool operators if it has no objects in it.
  • “Select Boolean Cutters” & “Select Boolean Canvas” operators in object mode > “Select” menu.
  • Cutter objects get parented to canvas, so that moving canvas doesn’t break the boolean (can be disabled in preferences).
  • New boolean modifiers have “Show in Edit Mode” enabled by default (can be disabled from preferences).

Changes:

  • Instances of Bool Tool are renamed to Boolean in UI, to make them easier to understand and to comply to Blender’s Human Interface Guidelines.
  • “Brushes” are now called “Cutters”, as it’s technically more correct name, used more often by other add-ons and softwares, and avoids confusion with actual brushes in UI and code.
  • Slice operations are improved by a lot and work correctly in more edge cases. All utility operators properly take slices into account.
  • When cutter is applied with Bool Tool operators it’s deleted and it’s data is purged from the scene, but only if it’s not used by another canvas.
  • “Toggle All Cutters” operator that toggles modifiers and wireframes (if they’re not used by another canvas) replaces “Hide Bool Objects” checkbox.
  • All boolean and utility operators now take all selected objects into account, not just the active one.

Removals:

  • Fast Transformation feature was removed for time being. It was hacky, not working properly, and clashing with Blenders built-in tools. It might come back in future with proper implementation.

IMPORTANT: Add-on now uses new, better data-structure that no longer depends on exposed custom properties which were easy to mess up. Because of that if you have files saved with unapplied Bool Tool modifiers you need to enable “Versioning” in preferences to update your files to new version of add-on.

14 Likes

Hello, When I use hotkeys to apply Booleans (⇧⌃B) it seems to apply modifiers out of order, and in some cases, applies a modifier from one object to the other.

In the sample I attached, if I select both objects and use the hotkeys to apply a Union Boolean, the solid part at the bottom gets the curve applied to it twice.

Also, there are weird artifacts along the join lines, and it takes a really long time to execute.

If I remove the curve modifier from the solid part, the boolean applies the curve from the hex pattern object to the solid object, and still creates a poor join between the objects. Only if I apply all the modifiers first does it work correctly.

This tells me that it is trying to join the two parts before applying modifiers.

I have hundreds of files set up with parts that have their own modifiers. I hope there’s a fix!

Boolean Troubles.blend (1.8 MB)

Hi Nickberckley, would you mind share how something like this woulde be be implemnted properly? I have whanted something like this for a while and did not know bool tools used to have it.

I am interested in making something similar myself in phyton, but not sure where to start. I took a quick look at how it was implemnted before in bool tools, but it was way too hackay for my liking as well.

I haven’t given it a thought yet, it’s very low in the list of priorities for add-on. One could use/abuse dephsgraph_update handler, and I suppose that is still less hacky than calling multiple modals in single operator.

Something that comes to mind would be using msgbus to keep track of active object transform properties?

1 Like

Thanks for taking the time to answer, was also thinking about using handler, but I kinda dislike using them to be honest, so hope it can be done withoute, will look into using msgbus :slight_smile:

1 Like

What you describe doesn’t seem related to add-on, its about how modifiers are evaluated in Blender, but looking at your file I don’t think there is a software that can handle that. Workflow is just convoluted. Booleans are very computationally heavy, and combining it with so many also heavy modifiers is asking for trouble. In general, combining booleans and subsurf in same workflow is never advised.

If you want to do fully procedural setup its best if you do it with geometry nodes, it might be more forgiving than your current workflow, but I cant guarantee performance will be significantly better.

The thing is that it’s worked on every previous version of Blender. This is the first time that I haven’t been able to select two or more objects, boolean them together, and move on. Now I have to go through all the modifiers for each object, clicking command-A for each one. It’s a loss of functionality that is costing me time.
The fact that combining the two parts is causing some modifiers to be applied to the both objects is clearly not correct. Each object’s modifiers should be applied in a top-down order, then the two objects should be joined together.

I am really not sure what you mean. Are you using term “apply” correctly? Bool Tool shouldn’t be applying any modifiers except itself in some cases. If you’re using “Apply Cutter” operator or “Apply All Cutters” it is obviously only going to apply boolean modifiers only. I don’t think it used to ever function differently. Is that the behavior you want? To also apply curve and subdiv modifiers when you use that operator?

Yes, exactly. For sure it’s possible that I’m not using some terms correctly, but what I’m talking about is selecting two objects, each with un-applied modifiers, and then using the bool tool. It should automatically “apply” all the modifiers for each object before cutting them or joining them.
I’ve been using it that way every day for years. My modifiers are ordered correctly so that it will work.

When I pull up the Bool Tool menu, I don’t see “Apply Cutter” or “Apply All Cutters” , it’s Union, Difference, Intersect, and Slice.

Here’s a much simpler example. Select both objects, and hit control-shift-B to pull up Booleans then select Union. In all previous versions of Blender the two objects instantly join correctly. In 4.2 they get mangled.

Boolean Troubles Rings.blend (1.1 MB)

I will add the option that applies all modifiers for auto-boolean operators, but in the meantime you don’t need to apply all modifiers one-by-one, you can either use Ctrl A > Visual Geometry to Mesh, or right-click > Convert > Mesh. That’s that add-on will do anyway, but be careful that it also applies shape keys.

Great, I’ll do that until you add that option.Thanks!

@mowenwanders I have implemented back your request, and made it default, but in preferences I added option for determining behavior. There are three choices:

  1. Apply All
  2. Apply Only Booleans
  3. Apply Everything before Final Boolean (which is best imo)

This applies to auto-boolean, as well as “Apply All” operators. For 2 and 3 options there is now a check so that it aborts operation if there are shape keys (previously it threw error).

New version will be released coming days, maybe even tomorrow, but wanted to tell you this because release notes are getting too big and probably nobody will read it.

Bool Tool 1.1 is released with tons of new features, including Carver tools which were ported from the old “Carver” add-on and adapted, modernized, and enhanced with tons of new features and UI/UX.

Carver

  • Three workspace tools in object and edit modes: Box, Circle, and Polyline Carvers that can create cutter objects and support destructive and non-destructive workflows (currently only view-aligned).
  • Designed and modeled after modern built-in Blender tools to be intuitive and natural to use for users.
  • Support multiple modes; affected by Bool Tool utility operators, share user preferences, and more. You can read all about workflows here.
  • You can create multiple shapes in multiple different ways. You can bevel, rotate, and move shapes around. Read more about shape properties here.
  • Carver shapes can be arrayed in rows and columns, inside the modal too! Read more about arrays here.
  • Carver tools can support multiple hard-surface modeling workflows by allowing modifier pinning, smoothing cutters by angle, parenting to canvas, and more. Read about cutter properties here.
  • Carver supports grid snapping, and modal operators play well with existing Blender UX. Read more about modals here.

Check out to ever-expanding Carver documentation for everything all together!


Additions:

  • Preference for modifier applying order (restored to 4.1 behavior by default). #doc
  • Ability to pin boolean modifiers for brush booleans (in preferences). #doc
  • Newly created faces are selected after booleans are applied.

Changes:

  • Better handling of objects with shape keys. No more errors. #doc
  • Unused data is purged after auto booleans.
  • New modifiers can no longer be created for objects that are already cutting mesh.
  • Dbl-click to select boolean modifier object now optional, off by default.

Fixes:

  • 7 bug fixes.

You can get the add-on on extensions platform, or if you already have it simply update it from inside Blender to get the new goods.

9 Likes

Wow! What a banger of a update! Really impressive! You are really breathing new life into this classic!

Is there any chance that we at some point could see surface snap for the new carver tool at some point? Would be a game changer!

Also, could be cool with some more colorful icons for the boolean operations, currently they look a bit to similar, but thats a nitpick.

That is the ultimate goal, but couldn’t made it work myself for now. Hoping other add-on developers who want to create free, open-source hard-surface modeling tool will contribute, otherwise its gonna take a time until I become goot at matrices

I want them to look similar. Most of the users that will use the add-on will not use those tools, and I don’t want it shoved into their faces. They should be able to ignore it easily.

1 Like

Ah, I understand! I am a beginner myself, but if I ever get better I would love to help!

By the way, I might have found a bug, with 32 in circle it looks like this and carve tool:
image

Ah, fair enough!

Ah god damn it. I should have someone testing this before I release

Edit: Fixed it, will wait couple of days to collect some bugs and fix them before I upload new version. Sorry about that.

2 Likes

Ah, no worrise at all! :slight_smile: Thanks for fixing it, I can wait a few days.