SabreCSG 1.3 Out Now

After 2 months of development we’re proud to announce that 1.3 is now out on the Unity Asset Store. 1.3 is our biggest update yet, featuring an all new build engine and our new beta feature Auto-Rebuild. With Auto-Rebuild switched on SabreCSG will automatically rebuild geometry as you work allowing you immediate feedback as you edit.

But it’s not just the core tech that’s improved, there’s across the board improvements in every area. Let’s take a look at what’s new:

Build Engine

New Auto-Rebuild mode
Watch a quick demo of Auto-Rebuild in action


SabreCSG build engine has been rewritten from the ground up, it now tracks changes and only rebuilds brushes that have actually changed
Added an option for Auto-Rebuild, when enabled this will continually check for changes to brushes and rebuild them while you work
Meshes built when Generate Lightmap UVs is set will always have the lightmap static flag set
Built meshes now also inherit layer from the CSG Model
Built mesh objects now inherit the static flags of the CSG Model

Face Tool

Follow Last Face with a single click

Copy Material with a single click

Set UV scales and offsets

Align faces to center

Flatten (facet) and smooth faces

Scale faces by scale pairs

Extruded brushes now follow face

Planar map faces to axis aligned


Added an align to centre button on the face tools
Added support for flatten and smoothing face normals
Added support to the UV scale value to take both a uniform value (e.g. 5) and a U/V scale pair (e.g. 5,2), making it possible scale U and V independently
Added support for Follow Last Face (Ctrl+Shift left click), taking the material and UVs from the last selected face and mapping them across the next selected face.
Added Copy Material – while holding C and clicking a face will apply the last selected polygon’s material
Fixed some errors if you select a brush’s faces and try to align them when some of them haven’t actually been built. E.g. two cubes overlap, you select one which results in 6 source polygons being selected but in reality there’s only 5 built polygons.
Current texture scale values are now displayed for selected faces, you can also change the values by enterring a new scale and hitting enter
Improved surface tool’s handling of certain topologies
Selection helpers have been moved to a foldable section on the same page
Extrude brush now uses face orientation as a basis for the new brush’s rotation, making it easier and more intuitive to resize
Face mode UI has been greatly improved, now displays a preview of both the active material and the material’s main texture
Added UV offset to Face tool, works in a similar way to adjusting the UV scale.
Added axis-aligned planar mapping to Face tool

Resize Tool

Snap brush back to grid

Flip brushes along a local axis

Scale by edge in Iso scene views


Added an option in resize tool for snapping a brush center to the absolute grid
Added buttons to the resize tool for local flipping a brush at its pivot
In axis-aligned isometric modes you can now resize a brush by using the edge of the brush, rather than just the resize handles, making it quicker to resize

Vertex Tool

Multi-select vertex editing

Split edges to add vertices

Auto-merge on mouse up

Connect vertices across faces


Edge tool has been merged into the vertex tool, this makes it a lot more intuitive as when you split an edge the vertex is selected, or when you join two vertices the edge is selected without changing mode.
Added option to vertex tool to split edges, inserting a vertex at their mid point. When used in conjunction with the vertex connect option this allows lots of new topologies, such as connecting a corner vertex to the centre of an edge. The previous “Split” button which would split two edges and then connect them has been renamed “Connect Mid-Points”.
Vertex auto-merge is now done when you release the mouse rather than at build time. This now makes it possible to undo and redo vertex auto-merges
Added multi-select support to the vertex tool
Vertex tool now selects newly welded vertices
Connecting mid-points now supports dealing with multiple polygons across multiple brushes
Vertex tool’s connect now supports vertices across multiple faces

Clip Tool

Multi-select clipping

New edges now traced

Add edge loop with a single key


Can now press Shift-Enter to split a brush in clip tool (in addition to the existing Enter shortcut for clip)
Clip tool now supports multi-select
When you split brushes all parts are now selected rather than just the original brush
Clip tool now traces the intersected geometry in black
Added option to clip tool to insert an edge loop (shortcut is L)

Misc & Bug Fixes

Completely new SabreCSG Grid implementation, fixes numerous issues in the old grid
Green triangulation lines on brushes have been removed and brush selection has been moved to a new method
Brushes that don’t interact with CSG calculations have been renamed from Detail to NoCSG to be less confusing
Changing brush boolean mode on the toolbar now supports multiselect
Changing NoCSG, Collision and Visible flags on the toolbar now supports multiselect
Added support for changing brush boolean mode with shortcuts whith the hierarchy window focussed
Added shortcut for toggle brushes hidden (H)
Removed free mode as it is now obsolete with the changes to support disabling CSG UI when a non-CSG object is selected and the introduction of a brushes hidden shortcut
Added support for group and ungroup (shortcuts are G for group and Shift+G for ungroup)
Reintroduced the green tint for selected faces, but at a fainter level
Hierarchy ordering buttons on the brush inspector now support multiselect, also renamed as Set as First and Send Earlier, etc as it’s easier to understand and less ambiguous
Added option on the brush inspector to resize a brush to fit a specified certain local bounds in addition the the existing rescale option
Fixed some issues with pressing , and . in face UI changing grid
Can now hit enter to apply resize/rescale values on the brush inspector
Fixed some issues with vertex sharing occuring when it shouldn’t leading to weird problems in the surface tool
Selection cycle now resets if the selection possibilities change, this should make selection a bit more intuitive
When creating a new brush by clicking Create from the toolbar it now determines the position of the new brush by raycasting against the existing brushes, if no brushes are hit it will position the new brush at the scene view camera pivot point
Added button the brush inspector to shell a brush (create a new brush from the source brush inset by the current positional snapping value)
Added a requested preference to hide the grid in perspective scene views
Fixed the grid displaying incorrect horizontal lines when in iso horizontal views (left, front etc). The grid also now colours origin lines by axis
OBJs are now exported local to the CSG Model (this affects vertex positions and normals).
Active tool no longer resets each time you recompile
Fixed some issues with the grid drawing over brushes in certain situations
Integrated a new Linear FPS Cam which can be enabled in preferences, this overrides the scene view FPS camera with one that moves at a constant speed
Added shortcuts for changing the angular snapping (the same as the position snapping shortcuts, but with Shift held)
Angular snapping increase/decrease behaviour has now changed. While the angle is above 15 degrees it changes in 15 degree increments, below 15 degrees it changes in 5 degree increments.
Added IPostBuildListener, scripts implementing the interface that are attached or under a CSG Model will recieve a call to OnBuildFinished when the associated CSG Model build completes. This is useful if you want to use CSG Models for dynamic objects such as moving platforms.
Shell brush will no longer create invalid brushes if you try to shell a brush that is too small
Fixed some issues with resizing by bound edge with rotated bounds in Isometric Axis-Aligned scene views
Fixed some of the textures being marked as compressed, all textures that ship with SabreCSG are now marked as true color for faster import times
Fixed some issues with vertex connecting
Fixed some issues with follow last face, it will now also handle following over edges that don’t share a vertex
Fixed an issue with it being difficult to resize a brush far from the origin if Unity was set to both local orientation and center pivot.
Fixed an issue with undoing a multi-select resize not rescaling all the brushes correctly
Fixed a null-reference if you undid a weld, then try to weld again without reselecting
Fixed error when selecting a CSG Model that has been disabled after changing scene
Fixed rotated brushes not displaying correct handles in axis-aligned views
Fixed exporting OBJ from a disabled CSG Model in a reloaded scene
New faces created from using the clip tool no longer use the default material, instead they use the material of one of the clipped source faces
Fixed use of Generate Lightmap UVs causing errors in Face tool
Changing a polygon’s material in the face tool now preserves any UV2 or tangent information without a rebuild
Fixed a couple of errors relating to changing material when multiple polygons with a particular material set up
Fixed some issues with bounds resizing of complicated brushes with position snapping on causing vertices to drift or brushes becoming concave
Fixed an issue with handles not drawing in deferred HDR setups

Our first video tutorial for 1.3 is now live:

Thanks for checking out SabreCSG, if you don’t own SabreCSG yet please take a look at our Asset Store page:

SabreCSG at the Unity Asset Store

Leave a Reply