SubTools

A scene in SculptForge can hold several separate meshes, called SubTools, just as in ZBrush: a body, eyes, teeth, a helmet and a sword can each live in their own SubTool. This chapter covers the SubTool list, selecting, adding, hiding, reordering, merging and splitting SubTools, and how they travel through files.

How SubTools work#

  • Only the active SubTool is sculpted, painted, masked or changed by a command. The others are drawn slightly darker and greyer so you can see which one you are working on.
  • Each SubTool keeps its own mesh, mask, polypaint, polygroups, hidden faces, UVs and sculpt layers.
  • Each SubTool has its own undo history. Ctrl+Z undoes the last change in the active SubTool, and switching SubTools doesn't lose the history of the others.
  • Adding, deleting, reordering, merging and splitting SubTools are not undoable, as in ZBrush. Merges and deletes ask for confirmation first.
  • The title strip shows the active SubTool and its place in the list, for example SubTool Helmet (2/5).

The SubTool list#

The list is in Tool > SubTool, which is open in the right tray by default.

The SubTool sub-palette with several SubTools, the active one highlighted
The SubTool sub-palette with several SubTools, the active one highlighted

Each row shows the SubTool's name, its triangle count and an eye.

ToDo this
Select a SubToolClick its row, or Alt+click it in the viewport
Rename itDouble-click the row (or right-click > Rename), type, press Enter
Hide or show itClick the eye at the end of the row
Duplicate or delete itRight-click the row > Duplicate or Delete...
See its vertex and triangle countsPoint at the row for a moment

The list shows six rows and scrolls when there are more. Names are kept unique: renaming a SubTool to a name that is already taken adds a number.

Selecting a hidden SubTool shows it again, because you can't sculpt what you can't see.

Select a SubTool in the viewport#

Hold Alt and click another SubTool on the canvas. It becomes the active one and the list scrolls to it.

Alt+click only selects when you click a SubTool other than the active one and release without moving. If you drag instead, Alt keeps its usual meaning: an inverted stroke on the active SubTool, or a pan when you start off the model.

Add a SubTool#

Click Append and choose:

  • Sphere, Cube or Plane: a new primitive placed beside the visible model (to the right, on +X), sized to about a third of the largest visible SubTool.
  • From file...: a model (.obj, .fbx, .glb, .gltf, .ply, .stl, .GoZ, .usda, .usd, .usdz) or a project (.sfproj). A file with several objects adds one SubTool per object.

The new SubTool becomes the active one.

You can also add files as SubTools from elsewhere:

  • Import in the Tool palette header (or File > Import) adds a model file as a new SubTool.
  • In the LightBox Tool tab, Shift+double-click a model, or right-click it and choose Append as SubTool.

Show, hide and solo#

  • The eye on each row shows or hides that SubTool.
  • Solo shows only the active SubTool. Click it again to bring the others back. The Solo button on the right shelf does the same.
  • Unhide all shows every SubTool.

Hidden SubTools aren't drawn, can't be selected with Alt+click, and are left out of exports.

Reorder SubTools#

The up and down arrow buttons under the list move the active SubTool one place up or down. The order matters for Merge down and is the order objects are written to files.

Merge SubTools#

  • Merge down... merges the active SubTool with the one below it.
  • Merge visible... merges every visible SubTool into one new SubTool called Merged. Hidden SubTools stay as they are.

Merging keeps every attribute, gives each original mesh its own polygroups (so you can split them again later) and matches sculpt layers by name. The merged SubTool starts with an empty undo history. A SubTool with subdivision levels is merged (or split) at the level it is on, which becomes the base of the result; the status line names the SubTools that lost their levels.

Painted textures are kept too: the merged SubTool gets new Auto UVs and one texture, the size of the largest, holding each part's paint exactly (texture layers are flattened; parts without a texture are white). On big meshes the Auto UV takes a while. Scripts can skip it with keep_texture=false, which drops the textures.

Split a SubTool#

  • Split groups makes one SubTool per polygroup. It is available when the active SubTool has more than one polygroup.
  • Split parts makes one SubTool per disconnected piece, largest first.

Both replace the active SubTool with the pieces. Because a merge keeps each original mesh in its own polygroup, Split groups undoes a merge.

Delete a SubTool#

Click Delete... (or right-click a row > Delete...) and confirm. The last SubTool can't be deleted, and a delete can't be undone.

SubTools in files#

FormatWhat happens to SubTools
Project (.sfproj)Every SubTool is saved with its name, visibility, attributes, layers and active layer
OBJEach visible SubTool is an o object; on import, o objects become SubTools and g groups become polygroups
glTF / GLBOne node and mesh per visible SubTool, both ways
FBXOne model per visible SubTool (with LODs, an LOD group each), both ways
USDOne Mesh prim per visible SubTool, both ways
GoZEach visible SubTool is sent to ZBrush as its own SubTool
PLY, STL, splat conversionThe visible SubTools are merged into one mesh

Opening a multi-object file replaces the scene with one SubTool per object. See Exporting for the details of each format.

Scripting#

Every SubTool action is a command, so you can use them in the console, scripts, Python and MCP agents. SubTools are addressed by index (0 is the top of the list) or name; without either, the active one is used.

CommandWhat it does
subtool_listList the SubTools
subtool_select index=1Make a SubTool active
subtool_append type=cubeAdd a primitive (sphere, cube, plane); path= adds a file; size= (0.05-2, default 0.35)
subtool_duplicateCopy a SubTool
subtool_delete name=HelmetDelete a SubTool
subtool_rename to=BodyRename a SubTool
subtool_visibility visible=falseShow or hide (toggles when visible is left out)
subtool_solo / subtool_show_allSolo the active SubTool / show every SubTool
subtool_move direction=upMove a SubTool up or down the list
subtool_merge_down / subtool_merge_visibleMerge
subtool_split_groups / subtool_split_partsSplit
subtool_append type=sphere name=EyeL size=0.12; subtool_duplicate; subtool_rename to=EyeR

See also#

Also in the app: Help > User Guide (Shift+F1). Found a mistake? Edit this page on GitHub.