Luke's Custom Build (Win, Mac, Linux)
I’ve made a custom build of Blender for Windows, Mac, and Linux. The idea is to keep things the way they are, while giving you more options for:
Box, Circle, and Lasso Select
X-Ray
Facedots
Selection Radius
Mouse Cursor
Header Buttons
Camera Zoom
Frame Selected
Repeat Last
It’s $9.99, and will include a few addons I am working on when they are finished. Buy one package for 10 bucks, and then choose what parts of it you want to download. All Blender versions I can build for, and their sub-version updates, will be available as I finish them. Bump this thread on Blender Artists and ask for a new or old version of Blender that I haven’t done. That is the best place to check for the latest information, I'll post stuff there if for no other reason than to help remember things later or plan things out.
Feature requests are encouraged!
Presets
Preferences → Luke’s Custom Build → Presets
I made some presets to give you a quick way to get everything I change about Blender back to the way it is in the official release, or to give you a starting point for an improved experience. Just choose one from the dropdown, and click the Apply button. I can make you a preset upon request. Tell me what settings you use and a name for the preset, and I’ll add it to the list.
Box, Circle, and Lasso Select
Preferences → Luke’s Custom Build → Drag Select
This build gives you full control over the ways that Box, Lasso, and Circle can select Objects, Edges, and Faces. There are a lot of limitations and inconsistencies with Blender regarding this. My build fixes them in a way that works the way you want, not the other way around where you do things the way Blender wants.
What are these selection issues?
Object mode will always select through. It can be very useful to limit your selection to what you can see.
Box will select any object the selection area touches. Except when you are using wireframe and x-ray shading. In this case you only select objects if one of their wires or the origin are touched by selection area. Circle and Lasso only select objects if their origin is touched by the selection area.
Edit mode will not select through. It can be very useful to select unseen mesh without moving your view or turning on xray.
Box and Lasso select fully enclosed edges, where both verts are inside the selection area. Except when none of the edges are fully enclosed. In that case you select any edges touched by the selection area. Circle will select any edges touched by the selection area.
Box, Circle, and Lasso will select any face touched by the selection area. Except when you turn on xray. In that case you only select faces if their center is touched by the selection area.
Box, Circle, and Lasso will select stray edges and faces that you can’t see when not using xray. How bad it is will vary based on the position/rotation of the viewport, and the shape of the mesh you are working with. What matters is that it’s random and unpredictable. Subdivide the default cube a couple times so there’s more than 1 extra face to select per side, makes it a little easier to see what’s going on. Then drag over some or all of what you can see, just be sure to hit the borders of the mesh. Now spin your view around to see the extra junk you selected. Was hoping Vulkan would fix this, but it does not.
My build has none of those problems, but it will preserve them by default so can you keep working with them if you prefer. It will not force you to select things differently just because you are using a different tool or shading mode.
HOW?
Turn on Select Through in Edit Mode, so you can select unseen mesh when you need to.
Select any object that is touched by the selection area, fully enclosed within it, or only if the origin is inside.
Select any edge that is touched by the selection area, or fully enclosed within it.
Select any face that is touched by the selection area, fully enclosed within it, or only if the center is inside.
For eliminating unwanted backfacing edges and faces, set Backface to Edge & Face Near. You can also use No Backface but that will also apply to Xray and Select Through, and you probably don’t want that. At that point you could leave Select Through on all the time, and the backface filter would essentially work like the Xray button, while allowing you to turn Xray on without changing selection at all. It would also do a little extra work to remove backfacing verts when not using Xray or Select Through. But this is wasted effort since Near Select has no issues grabbing extra verts, at least not that I have observed.
There is one exception with version 4.4, at least for now.
Disabling Select Through in Object Mode
Up to version 4.3 of my custom build will allow you to disable Select Through in Object mode.
The new draw engine in 4.4 has known issues with depth selection, and will ignore any options for using it, or crash if I try to force it which is obviously not going to be in the build. Hoping that this will be fixed by the time I’m done with some other things like the pie menu addon.
If not, I’ll look at having the old draw engine included in a way that you can switch it on/off. Low priority for now.
If nothing else, you can try Auto-Xray. It will turn xray on and off for you while you select. It doesn’t solve this problem, but will at least let you see what you doing to some extent. Not my cup of tea, but maybe you like it.
The Default options mean, “Do what regular Blender does. It might be weird, but just leave it alone.”
Miscellaneous Options
Wireless Touch Object is an option for touch select in Object Mode. If you are using wireframe and Xray (you can turn Xray off in wireframe) it will still select objects as you would expect, rather than forcing you to touch a wire or the object's origin to select it.
Square Select changes Circle Select into a square. It should work a little faster in different situations like touch select in Object Mode. Not a big difference as far as I’ve seen, but maybe the shape appeals to certain situations. It will function in all modes where circle is available. As it currently works, it’s an all-or-nothing thing. So if you want it, you really gotta want it. If you want to turn it on and off while working, show the button for it as described in the next section, and it should be there for you in any mode that can use circle select. That or use the drag select pie menu I’ve made, more on that in the next section as well.
Facedot Priority will always select by face center if facedots are visible. Speaking of which, you can turn off facedots in xray now. You’ll find some options for how that works in the Visual section at the bottom of the Luke’s Custom Build tab.
Yeah-yeah-yeah, get on with it. HOW DOES IT WORK?
If you are ever in doubt, check the tooltips.
Change the Mode to Easy if you want the three drag select tools to act the same. Change the Mode to Split if you want some, or all of them, to act differently from each other, or if you want to use drag direction control (left vs right, or up vs down) for Box and/or Lasso.
If you don’t need to change these selection options on the fly as you are working, you can just set things the way you want and do your thing. Set it and forget it.
But, you also have many options for cycling through selection modes and toggling options as you work. No need to open userprefs once you set things up the way you like them. I made operators to control the dropdowns above in a highly customizable way.
Expand the Dynamic Controls section to set up the operators how you want them to function. They all have icons that change to indicate what modes and settings are active. They can be shown in the Viewport header and/or toolsettings. If you only want to use keyboard shortcuts without showing any extra icons, just show them temporarily, right click them, and then assign them to your keymap.
There is also a customizable pie menu for my drag select settings, and other drag select features. You can decide what parts of it go in any of the 8 pie menu slices. Add a keymap entry for pie.drag_select
in the keymap. You can make this as modular as you need it. Put a main entry in Window
or wherever else, and then another for a specific tool like Box Select if you want it to have a new layout for different tools or interaction modes.
You’ll want to setup the dynamic controls for whatever settings you need to change while you work. They all use the same operators whether you use keyboard shortcuts, click the icons in the header/toolsettings, or the drag select pie menu.
For the Object, Edge, and Face selection modes, I have an operator that will cycle through the modes. The dynamic controls for them allow you to exclude modes from the cycle. That way you don’t need to waste time clicking through modes you never want to use.
For the Backface Filter, Auto X-Ray, and Select Through operators, you can choose what type of toggle the operator will perform. Backface has 2 styles, and the other 2 will let you decide whether to toggle the setting in both Object and Edit, or just the Interaction Mode you are currently using.
If you use Split Mode controls, you can synchronize 2 of the 3 tools so they stay the same when using the operators, while the unsynchronized tool will act independently.
Settings for the new things in my build are user preferences instead of toolsettings. They will remain the way you left them, instead of changing depending what .blend file you open like toolsettings do. This only happened because a feature request made me realize how much better it could be. Can’t say it enough times, feature requests are encouraged.
The drag directions I’ve made work like they’re supposed to, unlike the ones you’ll find in the keymap. You don’t have to live with a deadzone, or some compromised version of left and right, or up and down, that is rotated 22.5 degrees. You also don’t need to create a ton of keymap assignments per tool. You can use drag controls for everything, or opt-in to only the ones you want and use the operators for the others.
Selection Radius
Preferences → Luke’s Custom Build → Mouse → Click Select
Single-click an edge, vertex, or facedot and there’s a pretty big area you can grab it from. Faces in near select have zero radius, so you have to be right on top of them.
I made this adjustable and consistent. Change Click Select to Custom and choose a radius. Blender’s default is 75. Faces will act the same as verts and edges now. Blender gives unselected mesh a slight bias, this can be turned off by using Select Unbiased.
Mouse Cursor
Preferences → Luke’s Custom Build → Mouse → Mouse Cursors
I don’t like the Edit Mode crosshair, so I made a replacement. Then I decided to just make this available to most of the cursors and have a few options to choose from.
If you need to get things back to normal, just click Reset Cursors. The Paint and 2D cursors have an additional option called Blank. It’s an empty cursor that was made by an unrelated request in another thread.
You’ll need to move your cursor in and out of whatever area they’re from to see the change take effect. If you are on Mac or Linux, most of the cursor options don’t work, but System and Cross should show up correctly if you’d like them as an alternative for any cursor. I’ll expand on this feature if there’s interest.
Facedots
Preferences → Luke’s Custom Build → Visual → Facedot Toggle
You can turn off X-ray facedots. They’re in the same area as before up in the viewport header, it’s just an operator now instead of a checkbox. An operator because you can choose how it works. Either toggle them in both Xray and non-Xray shading, or both. This also makes it possible to preserve Blender default behaviour without relying on default settings that won’t exist if you already have a startup file for the same Blender version as this custom build.
Shading Buttons
Preferences → Luke’s Custom Build → Visual → Shading Buttons
I don’t need buttons for X-Ray or Shading, so I thought of a few ways to combine or reduce them to save space in the Viewport header.
X-Ray will have the X-Ray button replace the Shading buttons, and it will change its icon to reflect what Shading Mode you’re in.
Cycle will shrink the Shading Buttons down to a single button. The new operator will cycle through the 4 shading modes. You can reduce the number of shading modes in the cycle. These options will show up next to the dropdown when you select the Cycle mode for Shading Buttons.
X-Ray Button
You can hide the X-Ray button from the Viewport header. If you change the Shading Buttons mode to X-Ray, this option will be disabled since it is already “hiding” it.
Camera Zoom
You can make camera move faster or slower for view3d.zoom
. If you want multiple zoom mappings you need to manually set the speed for the existing zoom keymap or the speed of the new one you make will be used for both. 1.2 is the Blender default zoom speed. It slows down as you approach 1.0, and gets very fast as you go up to 10.
Frame Selected
You can set a camera offset for view3d.view_selected
. Like camera zoom, if you want more than one mapping for different distances, you need to manually set the existing one or it won’t work right. Camera Offset at 0 is the Blender default, increase it to move the Viewport camera further away.
Invoke Last
A new operator called screen.invoke_last
that works the same as Repeat Last, except instead of executing everything the same, it just invokes the last operation. You’ll need to add a new Keymap entry for screen.invoke_last. Undo makes it lose memory the same as Repeat Last.
Thankyou
This build is only possible because of the knowledge and experience shared by the community. I want mention some people that helped me figure things out like Chris Blackbourne, LazyDodo, Brecht, Thomas, Harley, and Campbell. Everyone on devtalk, blender artists, and in the chat, thank you.
Most of all, I want to thank kio. Select Through, Facedot visibility, and Touch select faces in X-Ray are from the work he did. In the older versions of this custom build it was basically untouched, and I learned a lot by updating it and changing how it works. There were a couple issues with it, and over time I finally understood more about how everything works. After fixing those issues, and making a few optimizations and flexibility changes, it is pretty different. The main thing that makes everything fast though, using gpu_select
aka opengl_select
goes all the way back to his work.
Upcoming Additions
Pie Menu Addon
First thing will be a pie menu addon. To see what I am planning to do, check out the customizable pie menu that I made for the drag select features of this build.
This is not just, “I made this for you to use. Therefore it is custom.” It is a pie menu that is customizable by you, the user. But not in a way where you have to do that, either.
No coding. Just pick something from a dropdown for whichever pie slices you need, and you’re done. But, if you need something more advanced, there’s also an even CUSTOM-ER pie menu that will accept any bpy code you send at it, any number of operators per slice, any name you want to give it, and any icon (including the larger toolbar ones)
Anyways, the more basic pie menu operators will be tailored to a general area of Blender or workflow style. They will have a default layout that you can just use, but they will have a lot of operators and settings available that can be assigned where you want them to be. The available options will be limited to what makes sense for the intended purpose of that pie menu operator. No need to scroll past tons of stuff that makes no sense.
Since it is assignable in the keymap, it can be as modular as you need. Make one generic version for Window, or whichever Interaction Mode makes sense, and then a more specific version for a tool that you need a different layout for.
This will be an ongoing thing that will expand with feedback and feature requests.
Selection Addon
After that will be an addon version of various selection features in this custom build. The addon version of the selection features will work slower and harder, that's just the way it is. I don't think python will ever have access to
gpu_select
/open_gl select
so it needs to reinvent the wheel into an octagon to do the same thing. Either way, an addon could be useful for people who aren't interested in a custom build, or when an update is late and you need the latest Blender version before the build is ready.
Update Old Blender Versions
As I work on whatever else, I'll fill out older versions of Blender. I probably won't back-port everything in the latest version of this custom build to old Blender versions unless it is requested by somebody. Plan is to just update whatever state this custom build was in for the latest subversion of Blender that it was made for.
Old Video for Version 3.6
A custom build of Blender3D for with many features related to selection and the viewport camera.