New blender addon – Transform Utils

By default some blender operations do not work very well with instances. Mainly I speak about ‘Apply  transformation‘ and setting ‘Origin to 3D cursor’.  Apply  transformation – won’t work at all with instanced object and setting ‘Origin to 3D cursor’ won’t preserve position of instances. I made python version of these, that work with instances and are preserving positions of instanced objects. The math behind that was bit complicated, but I managed to make i work. The ‘Transform Utils‘ also has some other tools that I developed while working with blender.

  • Add Transform Orientation – quick way to align gizmo (add temporary Transform Orientation) to selection. Gizmo will be aligned to  selected object, face, vertex or edge.
  • Align To Transformation  – Sets current object rotation to match the gizmo transform orientation (created with previous command).
  • Apply Transformation – lets you apply location, rotation, scale even on object with instances. Instances positions will be maintained.
  • Origin to 3D cursor – same as default blender operator, but all instances positions are preserved.
  • Store position – let’s you save current object location, rotation, scale. Position can be restored with ‘Restore position’ button.

In image below I demo the ‘Apply Transformation’ operator. Build in apply loc, rot, scale operator won’t work on object with instances. The addon version works ok, and it is maintaining original position of all instances.

Transform Utils

Grab addon from gumroad

Procedural art with Animation Nodes

Animation nodes is addon for blender, that lets you animate stuff, but it is also great for procedural art generation :).

You can get the latest version of Animation Nodes from here (click the green button for download). Support the creator of addon – Jacques Lucke – by donating here.


Below is the breakdown of the most important steps to obtain results from above (this is for advanced users).  Here is the file

  • generating random point on mesh surface (Plane object) – it will be root of spline:
  • Then I can create spline from random (x,y,z) points in loop, but this gives to noisy result (looks like lightning, jagged and random). So instead I use coherent noise – perlin noise as way of generating points for splines. This makes the splines look like wavy grass thing.
  • next step is making tip of the hairs go into direction of target object (sphere). For that I just create BHV tree for target, and then I snap spline to target with ‘find nearest surface point’. If I snap spline point to target sphere I would end up with this:

    But I do not want snap whole spline to sphere, but just the tips. To do this I can interpolate between originally generated point (x,y,z) and snapped to surface point (obtained from BHV find nearest node).

    The red inscription says: 0 == ignore snapping, 1== full snapp to target shpere). Start value in AnimFloat is root of spline, End – tip of spline.

There is more stuff, but the basic idea is explained above.

Batchtool Baker – update 1.03

Update 1.03 to Batchtool Baker:

  • added ability to bake second or next uv set (UV map)
  • preview of frontal/rear ray distance
  • one click cage setup

Example of fixing black texure spots (to low value of ray distance causes some areas of highpoly to not be captured while baking). First I preview frontal (green) ray distance, fixing bake, then adjusting rear (red) ray distance, fixing bake again.


And example of one click cage setup. You can adjust cage offset by weight painting it.


Trim Tools for Blender

Blender addon for cutting your geometry. Grab it from here. Compared to other blender Carving addons, this addon works in edit mode.


Located in left Tool Shelf-> Tools-> Trim View.

  • Knife trim – cut geometry with knife tool. If this tool is not behaving as it should, try switching ‘Trim Type’ parameter from ‘dissolve’ to ‘KDTree search’ (slower) or vice versa.
  • Trim by selection -(based on bisect tool) cut mesh in plane based on selected geometr. To define plane – select 2 or more vertices, then use this tool. After that you can offset the cut plane by pressing F6 and changing depth parameter.

This addon may not work on complex geometry as expected. This is partially due to old blender carve (boolean) module. It was being worked by blender devs, but for now it is disabled. Maybe it will be enabled again in blender 2.8?

New Blender addon Draw Xray

New Blender addon Draw Xray allows to draw your lowpoly mesh on top of your highpoly mesh!

How to use:

  • grab addon from here Draw Xray
  • install it by searching addon by name ‘Xray’
  • go to Properties panel -> shading – Draw Xray.

You will be able to see your mesh now and few more control sliders:

  • Object offset – will determine how much your lowpoly object will be rendered in front of other objects. Set it to 0 to get default blender behavior.
  • Polygon color opacity
  • Edge /Vertex color opacity.

Updata 1.01

  • better mesh drawing when zooming in/out the vieport camera to mesh.



Batchtool Baker

Hi today I release first version of baking addon for Blender and Substance Batchtools. You can get it here
This addon is based on Meltdown script by Piotr Adamowicz. I left the UI stuff not changed too much but I reworked the core of addon to integrate it with Substance Batchtools, fixed bugs, added new features, optimized redundant stuff etc.

I developed it for few reasons:

  • Substance Batchtools speed – you can bake 4k textures in minutes (compared to hours in blender)
  • Substance Batchtools reduced ram usage – I can bake hipoly meshes, without risk running out of ram
  • I wanted to have quick way to bake complex objects made with GroupPro addon. But you don’t have to use it. This addon works for baking normal objects too.
  • Easy iteration – no need to click Import/Export multiple times in blender, and your external baking app. This is usually tedious and time consuming process. All objects are exported automatically in background.  Also addon is smart enough to know when object was changed, and export it only when needed.
  • Easy way to re-bake only parts of your texture, that were changed/updated. I will explain how to do this later below.

For this addon to work you have to have Substance Designer, and then install Substance Batchtools from all

To install Batchtools on your PC, go to, login and go to Download tab.



Then click on the icon, as shown in image above and grab Substance Batchtools.BatchToolDownload

After installing BatchTools you are good to go.
Run blender and search for ‘bake‘ phase(1). Enable Batchtools Baker, and point it (2) to sbsbaker.exe file, located in your Substance Batchtool installation folder. In my case it was located in: ‘E:\Program Files\Allegorithmic\Substance BatchTools\5\sbsbaker.exe

Batchtool Baker Addon Preferences

After that you will have new tab in 3d View -> Tool shelf -> Baking.

Basic steps for baking are (make sure your blend file is saved):

  • click button ‘Add Bake Job‘. Few options will popup (file path, resolution, etc)
  • click ‘Add Pair‘ button, to select lowpoly mesh (with uv), and highpoly mesh.
  • click ‘Add Pass‘ and select baking type you want to perform (normal, id, ao etc)

When you are done you can bake by pressing ‘Bake’ button on top. By default output directory is set to:  ‘path to your blend file’/textures/‘. You can change it with Path property (just below Dilation parameter). Also you can open destination folder from blender by: shift+LMB clicking on folder icon.

Bake Job‘ corresponds to single UV set (one texture). When you want to bake another texture (eg. separate texture for head, and separate for body) then just add new ‘Bake Job’ for head. Each ‘Bake Job’ can bake multiple sets of high-low poly pairs and passes.

Pairs‘ multiple high-low poly pairs are useful when thing, that you are baking, is composed of many objects, but we don’t want them to influence each other. For example lets say body of character, has pants and shoes that are overlapping each other. Without this addon, you would have to move shoes object away from pants object, so they are not affecting each-other while baking. But with Batchtool Baker, you can just create two pairs high-low poly of objects  – one for pants, one for shoes. No need to move them away.

Passes‘ Batchtool Baker in blender supports following passes:

  • “MAT_ID” – from material color, Vertex Color, Mesh ID, Submesh ID
  • “AO”
  • “NORMAL” (Tangent and World Space, OpenGL and DirectX mode)
  • “UV”
  • “CURVATURE” – it requires normal map pass (just put normal pass bake, before/above curvature map bake)
  • “POSITION”  – all axis or one axis.
  • “HEIGHT”

In addon preferences you can define suffix for each of those passes. So when your bake name is ‘head’, then your will get files like: head_ao, head_id, head_norm, etc (depending on your passes).

Each lowpoly-highpoly pair has bunch of settings.
First two fields are used for selecting your high,lowpoly objects. For highpoly you can also use group of objects or Group Instance (preferably made with GroupPro addon 🙂 ).

Grid this button, when enabled allows you to select cage object. When disabled you can tweak forward and rear ray distance multiplier. Those values work as multipliers for main Rear and Forward ray distances defined just blow AA samples parameter. So eg. when you set rear distance to 0,02, and rear multiplier to 10, then the resulting rear ray distance is 0,2  (0,02*10).

PairSideButtonsX – deletes current low-high poly pair
Camera – disable baking of current low-high poly pair. Cool feature here is, that if you previously baked current low-high pair, and then disable it, script will use result of previous bake for new bake. This may save you some time, when you wan to re-bake only some pairs of objects, then just disable ‘Camera’ icon for not needed pairs and previous bake will be used for those.

Refresh – when enabled addon will export fbx file, with current pair of objects, on next bake. When disabled, fbx file will not be exported. Useful when working with heavy meshes, tweaking bake parameters, and you do not want to export all that heavy geometry on each small change. Actually script automatically detects any change to hipoly mesh and enables this button when needed. However there are some bugs in blender eg. if you grab hipoly object, and cancel grab command, update event on mesh will be triggered, resulting in enabling ‘Refresh’ icon, even though no geometry or position was changed. That is why, I added this manual override button, so you can disable exporting FBX file on new bake.

There are similar buttons placed on header of Pairs list:

 They are here just for convenience – they allow to disables/enables exporting fbx and baking for all mesh pairs, with one click. See example:





And the last icon I wanted to explain – green icon – means baking of current baked job is enabled. If you click on it, it will become red – disable baking of bake job.


At he bottom I showed you example of how those features could be used. We have two pairs of objects:

  • pipe_low‘ and ‘PipeHi‘ (group of multiple objects)
  • cylinder_low‘ and ‘cylinder-hi

We see that ‘Camera’ icon is disabled for ‘pipe_low’ but it is baked into image, because addon used previous bake result for this pair of objects.
Cylinder_low – is using cage ‘cylinder_lowCage’ object. It has enabled ‘Camera’ icon – so it was baked. Also it has enabled ‘refresh’ icon, so geometry was updated with new fbx file on bake. This is very simple setup,  so there is no much gain in terms of speed. But on complex models, you can introduce changes only where those are needed, without re-baking everything.

Example Batchtool Baker

I just added object picker for highpoly, lowpoly and cage.

Object Picker

Update 1.03 (more info)

  • added ability to bake second or next uv set (UV map)
  • preview of frontal/rear ray distance
  • one click cage setup