Conform Object

Conform Object at work
What is Conform Object?
Conform Object is a Blender add-on for any 3D modeler that needs to project objects onto another object’s surface in one action.
The add-on handles the complexity of doing this for you in a non-destructive way.
Features:
Simple right-click menu option performs the operation in one go.
Graduate the effect from the bottom to the top of the object.
Choose from Grid Mode or Shrinkwrap Mode.
Transfer surface normals to blend object shading.
Underlying mesh is not affected.
Undo and apply options handle the underlying complexity of adding and removing modifers.
Display Vertex Weights in Object Mode to help with the Gradient Effect.
Presets system to save your preferred settings.

Installation
Go to Edit -> Preferences.
Select the Add-ons tab on the left if it is not already.
Select the Install… button along the top.
This will open a file dialog where you should navigate to where you have downloaded the conform_object.zip file. This file should not be unzipped.
Then, click the Install add-on from file button.
Search for the add-on by typing Conform Object in the search box if it does not already appear.
Make sure the checkbox next to the add-on (Mesh: Conform Object) is ticked:

Conform Object Installed
If you have any issues do not hesitate to get in touch via info@configurate.net.
How To Use

Select the Source Object, then the Target Object. Right-click and select “Conform Object” from the menu. Disable the Gradient Effect from the Options panel if needed. Further step by step guide below.
Step by Step

The Source Object is ideally rotated on its local axis so that its base is pointing towards the Target Object.
To conform a Source Object to a Target Object:
Move and rotate the Source Object near, or on top of, the surface of the Target Object you wish to project it onto:
Here, the Source Object has been rotated 90 degrees and is pointing towards the Target Object’s forehead.
Warning
Ideally, Source Objects should:
Be rotated so that their local -Z axis is aimed towards the Target Object surface. Use the Toggle Surface Snapping feature to align your Source Object like this.
Have a good level of topology so that they can be deformed (good number of vertices and quad faces).
Not have modifiers such as booleans which are dependent on other objects.
Not have parents/children.
Tip
You can automatically rotate the Source Object so that is pointing towards the Target Object’s’ surface using the Toggle Surface Snapping option.
Select both the Source Object and then the Target Object:
Both objects selected, with the Target Object being the active object (the last object selected)
To do this:
First, click the Source Object to select it if it isn’t already.
Then, hold the Shift key, and then click the Target Object to select it last. This will make the Target Object the active object.
Both objects need to be selected this way for Conform Object to work.
Right-click in the viewport, and select the Conform Object menu. Select Conform Object:
Tip
You can quickly access this option by clicking the Conform Object icon at the top of the viewport menu:
The Source Object will then conform to the Target Object. If the Gradient Effect is turned on, you may wish to untick it in the Options menu that appears in the bottom left of the viewport:
Toggling on and off the Gradient Effect
Adjust the rotation of the object if needed by expanding the Object Transform section and adjusting the rotation:
The object should now be conformed to the Target Object. Expand the Options panel to adjust more parameters:
Multiple Objects

Conforming multiple objects at once.
It is also possible to conform multiple objects at once using the same operation:
Shift-click select the objects you want to conform, and then select the Target Object last (making it the active object).
Right-click and select the Conform Object sub menu.
Select the Conform Object option as usual.
You can then edit the Options of all the objects at the same time.
Options

Options Panel in the bottom left of the viewport

The options panel with each section collapsed.
Operator Presets
You can add or remove preset configurations from the tool here by pressing the + or - keys, or reset the tool to its default parameters.
Projection

The expanded Projection Panel
The following controls the parameters of how the source object is projected onto the Target Object:
Direction

A source object having its projection direction changed by custom mode (Grid mode visibility is turned on). When the direction line hits the Target Object, the Source Object begins to conform.
The different Direction modes control how the direction line is chosen when projecting the Source Object. You may wish to enable Grid visibility to see the different modes working:
Auto: This mode will first try to project the Source Object onto the Target Object using the negative Z direction as usual, and if that fails, it will instead project onto the closest point on the Target Object.
Axis Line: This will project a line from the middle of the Source Object in the local X, Y or Z direction with the object’s rotation taken into account. By default, the projection is in the local -Z direction. If the line misses, a warning message will be displayed.
Nearest: This will project a line from the middle of the Source Object to the closest point on the Target Object. You may need to use the Transform Orientation section to adjust the position of the object whilst it is being projected.
Custom: Specify a X/Y/Z rotation for the projection line.
Method
This is the method used to deform the Source Object. Choose between Grid Mode or Shrinkwrap Mode:
Grid Mode: This mode is described here, and creates a projection grid object which is attached to the source object to create the deformation. The grid object is a regular blender object, parented to the source object.
Visibility: The grid object is hidden by default, but can be revealed by clicking the eye icon next to the Deformation Grid section:
Switching on and off Grid visibility.
Tip
If you wish to hide the Grid again after the Conform Object operation is performed and the panel is gone, expand the Source Object in the Outline View to find the grid object:
Selecting the Grid on the Outline View.
Then make sure you have the Disable In Viewports flag ticked in the filters section of the Outline view:
Selecting the Disable in Viewports flag.
You can then hide the grid object completely again by clicking this flag next to the object in the Outliner view:
The grid is hidden again.
Grid options: By expanding the Deformation Grid section, you can change the default parameters of the grid:
Expanded Grid Options section.
Show/Hide Grid: By default, the deformation grid is hidden but it can be displayed if you wish to configure it. This is the same setting as the Eye icon in the Deformation Grid section header.
The deformation grid is revealed!
Grid Smoothing
Applying a Subdivision Surface modifier to the grid for smoothing: Levels 0, 1 and 2 are applied here.
This adds a Subdivision Surface modifier to the grid. This helps smooth the deformation grid over jagged surfaces.
Grid Subdivisions
Subdividing the grid increases the resolution of the deformation.
Not to be confused with grid smoothing, this is the number of vertices in the grid. If you are deforming over particularly smoothed or high resolution meshes, increasing this number can be useful.
Grid X/Y
Grid moved in X direction.
Move the grid’s X/Y position.
Grid Scale X/Y
Scale the influence of the grid.
Scale the grid in the X/Y direction.
Grid Rotation
Grid rotated on surface.
Rotate the grid over the surface.
Interpolation Falloff: Used on the Surface Deform Modifier for the grid. From the Blender documentation: “How much a vertex bound to one face of the target will be affected by the surrounding faces (this setting is unavailable after binding).”
Projection Starting Point
This parameter controls where the beginning of the projection line from the Source Object to the Target Object should be:
Median Point: By default, the start of the projection line will be from the middle point of the Source Object’s geometry.
Origin: Alternatively, you can make the projection line start from the Source Object’s origin point in the 3D scene.
Object Transform

The expanded Object Transform Panel
These parameters control how the Source Object is positioned onto the Target Object during the Conform Object operation.
Surface Offset
This parameter controls how far away the Source Object is offset from the Target Object’s surface.

Source Object being offset.
Local Position
Once the Source Object has been projected, this controls the relative position of the Source Object.

Source Object being repositioned.
Local Rotation
This controls the rotation of the Source Object once it has been projected. This is useful for adjusting the orientation of the object after the initial projection.

Source Object being rotated on the surface.
Object Projection

The Source Object can either be projected onto the surface using its closest part or its center.
Here you can choose which point on the Source Object is used to position it on top of the Target Object’s surface.
Disable Projection: Disable projection entirely. This will stop the Source Object from being moved, which can be useful when trying to manually place the Source Object using the Local Position and Rotation parameters.
Closest Point: By default the closest point on the Source Object to the Target Object will be used to position the Source Object on top of the Target Object’s surface.
Center: The center of the Source Object’s geometry will be used to place it on the surface of the Target Object, so the Source Object will be ‘inside’ the Target Object surface.
Gradient Effect

The expanded Gradient Effect Panel.
The Gradient Effect creates a vertex group which automatically adds weighted values to the vertices at the bottom of the Source Object so the effect is less exaggerated at the top:

The Gradient Effect allows you to control where the Source Object is deformed. In this case, we do not want the threads of the screws to be affected, so we reduce the End parameter so that the effect finishes towards the bottom of the object.
Tip

View the Vertex Groups used by the Gradient Effect whilst using the add-on with this additional feature.
Gradient Type

The type of gradient to apply: Linear (Left), or Constant (Right)
This setting determines which style of gradient effect to apply:
Linear: this will create a gradually decreasing effect between two values.
Constant: this will create a hard falloff from 1 to 0.
Gradient Method
This controls the method used to apply Vertex Group weights in the Gradient Effect:
Standard: By default the weighting will be strongest at the closest points on the Source Object to the Target Object.:
Proximity: The weighting will be strongest for vertices that are nearest the Target Object surface. This is useful when attempted to set up objects that ‘wrap’ more to the Target Object when using Shrinkwrap Mode.
Here the proximity gradient effect is applied, where projection has been disabled and instead the object has been positioned using local controls. Instead of Grid Mode, Shrinkwrap Mode is being used instead. This helps wrap objects more, but may need adjusting manually after the Conform Object operation is performed.
Start/End

Start/End controls
This controls when the gradient effect of the vertices starts and ends.
A value of 0.0 is at the bottom of the object, and a value of 1.0 is at the top.
Lowering the value of the end below 1.0 will stop the deformation towards the bottom of the object, and higher values will extend the weight beyond the top of the object. Increasing the start value will start the weighting higher up the object.

The default vertex group weighting, where the effect is gradually reduced towards the top (Start=0.0, End=1.0)

Vertex group weighting where the start point has been increased so the effect covers the lower part of the object entirely (Start=0.45, End=0.55)

A lower vertex group weighting, where the effect is gradually reduced further towards the bottom (Start=0.0, End=0.1)

A higher vertex group weighting, where the effect is gradually reduced beyond the top of the object (Start=0.0, End=2.0)
Blend Normals

The expanded Blend Normals Panel.
This will blend the normals of the source object with the target object, creating a smoother transition between the two object surfaces:

Some simple ‘horns’ applied using the add-on. They are all separate objects.

Here the normals of the same ‘horn’ objects are blended with the normals of the head. They remain separate objects.
This effect is achieved by using a Data Transfer Modifier on the Source Object, and uses the same Blender Vertex Group weighting to control the effect in the same way as the Gradient Effect above.
Gradient Type (Blend Normals)
As with the Gradient Type controls for the Gradient Effect, this controls which face normals are affected.
Gradient Method (Blend Normals)
As with the Gradient Method controls for the Gradient Effect, this controls which face normals are affected.
Start/End (Blend Normals)
As with the Start/End controls for the Gradient Effect, this controls which face normals are affected.
Blend Whole Object
This will blend all of the object’s normals regardless of the gradient effect.
Other Options
Add Simple Subdivisions
This adds a Subdivision Surface modifier to the source object, set to ‘simple’, in case you wish to quickly subdivide the mesh when conforming the object.
Subdivisions: The number of subdivisions to use in the modifier.
Collapse Modifiers
This will collapse the existing modifiers on the source object if they are interfering with the conform effect.
Deform Modifier Position
This will change the position of the deformation modifier (Either Surface Deformation of ShrinkWrap) on the source object:
Start: At the start of the modifier stack.
Before: This will place the modifier just before a specified modifier. Selecting the option will allow you to specify which modifier.
End: At the start of the modifier stack.
Parent Source Object to Target Object
Assign the Target Object as the parent of the Source Object.
Warning
Parenting the Target Object cannot be automatically undone by the add-on
Undo

Undo the conform operation.
If you wish to undo the operation:
Select the Source Object
Right-click and select the Conform Object context menu.
Select the Undo Conform option.
This will remove all modifiers and vertex groups that may have been created during the operation.
Apply

Apply the conform operation. This will apply the modifiers, remove the vertex groups and the hidden deformation grid.
If you wish to edit the conformed object after it has been deformed, the Apply Conform operation will apply all related modifiers, delete the grid object, and remove the vertex groups all in one click:
Select the Source Object
Right-click and select the Conform Object context menu.
Select the Apply Conform option.
This will remove all modifiers and vertex groups that may have been created during the operation.
Surface Snapping

The Toggle Surface Snapping option automatically enables surface snapping.

Object being snapped to a face while moving.
To align an object to another object’s surface, a common set up in Blender is to enable the relevant snap options in the Snapping menu in the top middle of the viewport. To quickly switch on these settings, an option is provided in the menu that allows you to toggle these settings on and off.
With the add-on installed, you can either:
Expand the Snapping menu at the top of the viewport.
Under Conform Object, Click the Toggler Surface Snapping option to enable or disable it.
Or:
In the viewport, right-click and select the Conform Object context menu.
Select the Toggle Surface Snapping option.
Both these options will automatically enable snapping so that you can align the object to the surface quickly.
Visualize Vertex Weights

The add-on adds an option to the Overlays menu that allows you to visualize vertex weights in Object Mode.
In Blender you do not currently have the option to see Vertex Weights in Object mode, only in Edit Mode. When the add-on is installed, to help you understand the Gradient Effect we have included an extra tool for you to do this.
Strongly weighted vertices will be shown in red, medium weights are shown in green, and zero weighted vertices are shown in blue.
This tool is not tied to Conform Object and can be used to visualize any active Vertex Group on any object.
Warning
Be careful with more complex objects with lots of vertices, as this will slow the viewport down significantly.
To enable the tool:
In Blender’s viewport, go to the Show Overlays menu in the top right:
If the add-on is installed you should see a “Vertex Object Mode Visualization” section:
In this section, tick the box next to “Vertex Group Weights”. Now, any selected object with active Vertex Groups should have their weights displayed:
Tip
If you want to change which Vertex Group is visualized, change the active Vertex Group by selecting another Vertex Group in the Object Data Properties panel:

Tip
Visualise a vertex group in Edit Mode by selecting “Vertex Group Weights” in the overlays panel:

Vertex Visualization Options

The options in Blender’s Viewport Overlays panel.
Vertex Size
The size of each vertex point in the viewport display.
Selection
Which vertex groups to display:
Selected: Only display Vertex Groups on selected objects.
Active: Only display Vertex Groups from the Active object.
All: display Vertex Groups on all objects.
Zero Weights
Control how zero weighted vertices are displayed (useful for more complex objects):
None: Do not display vertices with zero weights.
All: Display all vertices even if they have zero weights (displayed in blue).
How does it work?
The add-on has two modes; Grid Mode (default) and Shrinkwrap Mode.
The manual processed for both has been best described in this video but is also described below.
Grid Mode
Advantages:
More accurate: it positions the source object vertices in the same direction as the faces of the target object.
Disadvantages:
More complex: adds an extra helper grid object to the scene.
If the source object is edited or copied, you will need to re-apply the operation.

The add-on in Grid Mode, with the grid visible.
The add-on automatically creates a deformation grid object which is used to project the object to the surface of another using a Surface Deform Modifier. This grid object is hidden by default and can have its subdivisions configured.
It automates the manual process of:
Creating a deformation grid and aligning it to the base of the object.
Adding a Surface Deform Modifier and associating it with the Grid.
Adding a Shrink Wrap Modifier to the grid and associating it with that object.
Adding a Vertex Group weighting to the object from the bottom to the top to control the influence of the deformation.
The deformation grid is automatically deleted if the source object is deleted.

The default vertex group weighting.
Shrinkwrap Mode
Advantages:
Simpler, only a Shrink Wrap Modifier is added to the target object.
You do not need to re-run the operation when the object is edited.
Disadvantages:
Not as accurate; does not align vertices
It will flatten the lower parts of the object in many cases.

The add-on in Shrinkwrap Mode.
For the shrinkwrap modifier mode, it automatically:
Adds a Shrink Wrap Modifier to the mesh.
Adding a Vertex Group weighting to the object from the bottom to the top to control the influence of the deformation.

The default vertex group weighting.
Tips and Troubleshooting
If you are having any issues do not hesitate to Contact Us
My Source Object has not aligned correctly to the Target Object

A gap is showing where the Source Object is not aligned well to the Target Object.
This happens when the projection of the Source Object is not directly pointed at the Target Object. To fix this, during the Conform Object operation expand the Object Transform section of the left hand side panel. Adjust the Local Rotation parameters until the Source Object is aligned to the Target Object:

The Local Rotation parameters are used to correctly align the Source Object.
Bad Deformations

This can occur for several reasons:
Not enough topology (vertices, faces) on the source of the Target Object.
The tops of the object look best when the effect is not as strong.
The meshes need more subdivision.
There are several things to try:
Enable the Gradient Effect to smooth the deformation at the top of the object.
Increase the resolution of the Target Object by using a subdivision surface modifier.
Increase the Grid Smoothing of the deformation grid in the options panel.

Here, the target sphere object’s resolution was increased using a subdivision surface modifier, and the Gradient Effect was enabled for the screw part to lessen the effect at the top.
When Editing the Object, the Effect is Lost

The effect gets lost when editing the object.
In Grid Mode, the Surface Deform Modifier loses its binding to the surface whenever the underlying mesh is changed.
To fix this, select the Source Object and the Target Object and run the conform operation again. This will re-apply the modifiers and update the binding.
When Copying the Object, the Effect is Lost

The effect gets lost when duplicating the object.
In Grid Mode, because the new object would reference the same deformation grid, the effect is automatically removed by the add-on to prevent this.
To fix this, select the Source Object and the Target Object and run the conform operation again. This will re-apply the modifiers and update the binding.
The Object does not render with the deformation on it.
This can happen when a modifier like the Subdivision Surface modifier on the Source Object does not have the same Render level settings as its Viewport render settings:

Blender uses the Viewport setting to calculate the deformation, so it will not bind at render time if the Render setting is different.
To fix the issue, set the Render level setting to be the same number as the Viewport level setting. This should allow you to render the Source Object with the deformation.
When I Click ‘Apply Conform Object’, the object jumps.
Try applying any modifiers that are above the Conform Deformation modifier using the drop down box on each modifier for the source object, and then for the Conform Deformation modifier use the ‘Apply Conform Object’ operation. If you are still having issues send us a message.
Creating Boolean Cutters

Example of a bad boolean cutter because Conform operation is not applied.
If trying to use the conformed object as a boolean cutter on the Target Object, use the Apply Conform Object operation first which will apply all the modifiers - otherwise, Blender will go into a loop where it is trying to use the object to cut, but then the Source Object itself is trying to deform to the cut shape.

Remember to apply the Conform Object operation to the Source Object before using as a boolean cutter.
My Source Object distorts badly when I change Object Transform Settings
This may be because you need to Apply Object Scale to the object by pressing F3 and searching for Apply Scale. Blender modifiers sometimes do not work well if the object scale is not applied i.e. reset to (1.0, 1.0, 1.0).
When I click off the panel, I lose my settings
This is an unfortunate effect of Blender’s one-time operation that the settings are applied just once, and the panel is easily lost. You can re-run the operation and the modifiers will be replaced, not re-added. Pressing F9 may bring back the panel, but the settings will not be applied again.
Contact
If you have a question, issue, or new feature idea do not hesitate to get in touch via info@configurate.net.