PistonPusher 5.2.2 - Piston Planner Tool

Pistonpusher 3.4.3 is available:

  • Added: Help button with link to docs in the pop up panel.

  • Changed: Creation mode warnings now show and hide when the pop up menu is opened/closed. If you did not close the panel/menu with the ok button, moving the camera/view will update the viewport properly and remove the warnings. You can also open the menu again and press ok to stop warnings from a previous menu call. The size of this panel can be adjusted, note that it is also automatically adjusted by the system ui scale.

  • Changed/added: Track to operator, inherit rotations was replaced with a better system. Which I will introduce as WAT. Weird Align Tool.

WAT comes as a mode of the track to operator. So, the track to operator still offers its old functionality. To use WAT, you simply select a third object. This third object should be the active object for it to work properly.

WAT, simply put, makes the track to operator useful in situations where the pre-defined UP axis is not desired. It’s probably only useful to place pistons for pistonpusher because it can only rotate objects around their local y axis. It uses vector math to calculate the angle between two axes, one axis of the tracked objects and another of the active object. This works because the (local) X and Z axis of the tracked objects already have the correct orientation after they’ve been aimed at each other.

Multiple combinations of match ‘axis’ with ’ axis’ can work for a given situation. I recommend using the combination with the smallest difference.

WAT doc page

How to use the WAT mode:

Pistonpusher 3.4.4 is available!

  • Fixed: Zero user/unlinked objects are now automatically removed when a piston is saved.

  • Fixed: Camera will be re-linked to the scene collection when a piston or part is saved. Hold ALT key to prevent this behavior.

  • Fixed: Correct m_snap empty will now be selected in template mode after a mount was added.

  • Fixed: Check scales/rotations warning now ignore zero user/unlinked objects.

  • Fixed: Save piston/part operator will scan the file for a camera instead of looking for an object named ‘Camera’. The active camera will be used for thumbnail extraction.

  • Fixed: prod_cutter adjusts properly when a rod is placed.

  • Changed: N panel and its relevant add-on preferences have been removed.

  • Changed: ‘Confirm’ rod button polls for a piston rod.

  • Changed: Prepare piston will save an unprepared copy of your file in a new assets library directory, called ‘Unprepared’. It will then save it again as a ‘temp.blend’ file, in that same directory, so that you don’t touch it accidentally.

This ensures template mode piston are saved in a flexible state still, for custom mode this has no real effect other than it being a nice back up.

  • Added: Edit opt-in in the pop up menu. If you check this, whatever you select will be opened in a new blender instance so that you can edit its source file.
  • Added: WAT mode/track to operator has been improved. The track to operator can place empties now and even inherit parent relationships. Additionally, an on/off button for WAT mode and the ability to deselect the active object have been added.

Everything I’ve tested so far works as intended on blender 3.1 beta. I expect a smooth transition.

Be sure to update your assets library for this update and save preferences, even if your preferences do not show the save asterisk!

Pistonpusher version 4.0, which is planned to release once blender 3.1 is released as stable, will feature HAPS. Hose Attachment Points.

These are a geometry node solution to well… Hose attachment points. It allows users to instance extrusions and fittings. It can project/shrinkwrap its cylinder part. Its resolution/geometry density can be changed at will. Elements of the instance can be replaced with mesh objects. It can be kept non destructive, or the geonode can be applied and you can edit it further, add a data transfer and so on.

Pistonpusher 4.0 is available!

  • Fixed: Notifications transparency

  • Changed: Creation mode warnings now only check objects that are part of piston(o) collection.

  • Changed: Rod parts are not available anymore in custom creation mode.(This applies to rotaries as well)

  • Changed: Pop up menu was changed, now making use of popover panels for the tools, save and create sections. The old menu is still available by toggling the ‘old menu’ add-on preference.

  • Added: Support for rotational to linear motion actuators.

  • Added: HAP’s, geometry nodes Hose Attachment Points. Select an object, hit the HAP button in the pop up menu and place a vertex. Once done and in object mode, pistonpusher can apply its modifiers, make a vertex group and set a data transfer modifier up. Works with curved surfaces! See video and/or documentation for moar.

  • Added: Short pipes geometry nodes connector parts. These are a simple way to add pipes and fittings. One version comes with cylinders that you could boolean at a later time. Best used on horizontal/vertically oriented faces.

  • Added: D-mount, geometry nodes version.

Video’s about HAP’s and the new types of actuators that pistonpusher can rig:

PistonPusher 4.0.1 is available!

Fixed: Switch type and cycle subdir (snap modal) issues fixed.

Added: Railgun example file and its piston(with different materials and no decals/assets that are not mine)

Pistonpusher 4.0.2 is available!

A video about HAPS in 4.0.2:

PistonPusher 5.0.0 is available!


  • Fixed/improved: Linked duplicate radial arrays now have a start and end angle property. The array will now also properly reflect the set angles, this means that the operator increases array count by 1 if the difference between the start and end angle is smaller than 360.0.
  • Fixed: Custom rotary template appearing in template dropdown menu.
  • Fixed: Warnings are updated while the pistonpusher pop up menu is open. Additionally warnings are automatically offset based on HEADER, TOOL HEADER height and viewport gizmo width(I could not find information about the viewport gizmo in the API so an approximation is used, it adjusts if the os UI scale is changed, assuming that this also affects the viewport gizmo as changing monitor resolution does not change the viewport gizmo by itself).
  • Fixed: Warnings and modal info area padding.
  • Fixed: Track to and apply/wat operator, WAT now correctly accounts for negative angles.


  • Changed: Remove constraints now also works with meta and surface objects and will remove animation data and vertex groups.
  • Changed: ‘Old’ menu and its option in add-on preferences have been removed.
  • Changed: Warnings, messages and modal operator info area’s have rounded corners, use a custom font and text shadow has been enabled. Additionally, certain words are highlighted with a configurable color(warnings/modal info area’s only).
  • Changed: Warnings only warn about length anchor location after piston is prepared and only when the ‘no length anchor’ option is false.
  • Changed: Add-on preferences color settings lay-out.
  • Changed: A camera is added when you prepare a piston.
  • Changed: Certain data is now saved in the blendfile when a piston is prepared, this means that you can now save template pistons and finish them at a later time, even after it’s prepared. Additionally, the pop up menu now has a length anchor y location property while in custom mode. You can still set it with the 3d cursor as well. These values are reset each time the creation mode is started.
  • Changed: Piston related tools now only show if a part/object of a piston instance is selected, in the pop up menu itself instead of the tools section.
  • Changed: Other minor changes and fixes.


  • Added: Warning for parent relationships or constraints once a piston is prepared.
  • Added: Warning system will display information about the current configuration if no issues were found.
  • Added: Apply scale/rotation operator for all objects in a piston or actuator original collection(creation mode only). It can also convert objects to mesh and remove relationships like parents, constraints, animation data and vertex groups.
  • Added: Visual indicator of the length anchor y location when the pop up menu is open(prepared pistons in custom mode only).
  • Added: Weird Align tool Modal. Has an add-on preference setting which is set to modal by default.
  • Added: Simple cardan/universal joint rig and a combine joint operator.
  • Added: Reset new instance opt-in(disable when adding instances of pistons with universal joints).
  • Added: Add-on checks for updates again. Result is cached for an hour. Data is retrieved from github this time.
  • Added: New piston(various2 directory).

Where applicable, these changes affect the free version too. Additionally, the track to and apply/WAT operator has been added to the free version.

Lastly, blender has a bug since version 3.1 which messes with vertex locations. This in turn messes with the add armature operator. The bug has been reported but until then you may have to remove some vertices from the vertex groups on objects that stretch.

This update changed the lay-out of the add-on files. Simply replacing the files will leave files behind, as such I recommend using blender to remove the add-on first for this update.

How to model and rig a hexapod:

Fixed: Addon preferences color pickers now have min/max values and use the ‘COLOR_GAMMA’ subtype.

Added: Option to disable update check at blender start up. (Add-on preferences).
Added: Quick Rigs

Changed: Modal operators support industry keymap(alt key passthrough).
Changed: Cardan joint rig and combine operator are now part of the Quick Rig system. The combine joint operator also works with Quick Rig pistons.
Changed: Layout of pop up menu changed slightly.

The free version was updated as well where applicable.

Pistonpusher 5.1.1 is available:

Fixed: Blender 3.2.0 issue with cable/hose quick rigs and its curve resample feature.

Changed: bevel resolution of curves used with cable/hose quick rigs are set to 6(but only if it was higher than 6) as really dense geometry proved to cause issues. Curve resolution can be changed but it’s probably better to use a subd modifier later on.

The documentation was changed to better describe how to use additional objects with Cable/Hoses Quick Rig

1 Like

PistonPusher 5.1.2 is available!


  • Cable/Hose Quick Rigs:
    • Error when Itasc bone ID was set to a number larger than the amount of bones in the chain.
    • Operator will fail and properly warn the user when additional objects were selected whose origins matched the curve endpoints.
    • Added ‘Correct bone roll’ option, will adjust ik target bone roll so that the rig does not twist. Enabled by default.
  • Piston Quick Rigs:
    • Anchors(armature and b empty) maintain equal size when bone scale is changed.
    • Bone scale is automatically adjusted based on distance between cylinder and rod origin. This can be overriden by changing the bone scale value to any other value than 1.0.
  • Set bone as parent modal operator:
    • Hidden bones can be (un)hidden at will.
    • Data layer visibility data was not properly saved per armature.
  • HAPS:
    • Default values have been set lower(Smaller default HAP size).
    • Bevel/Chamfer modifier settings are exposed in and linked with the geometry node modifier(Under Global Scale). Allowing easier edits in general.

Free version:
- Forgot to propagate changes for industry standard keymap support (modal operators) to the free version.
- Set bone as parent modal operator updated.

PistonPusher 5.1.3 is available!


  • HAPS:

    • Improved ‘Set up HAP data transfer’. Scale does not matter anymore, instead of a distance, users can specify the amount of mesh rows(per instance) that should be added to the data transfer vertex group. The mesh rows are weighted based on the amount of rows.
    • Added ‘Instance offset’ parameter/attribute that can be used to prevent clipping.
    • Added ability to override face normal align. Allowing for preciser placement when used in combination with edge snap.
  • Set child of constraint:

    • Fixed an issue that caused an error in console during mouse over on operator button.

PistonPusher 5.1.4 is available!


  • Select Piston (Parts)/next empty operator(ctrl+shift+dbl lmb):

    • Fixed error related to message/warning system.
  • Pop up menu:

    • Added ‘Options’ popover panel, layout was adjusted for a more consistent look.
    • Pop up menu shows the type of tracking constraints used by the selected piston instance.
    • Added ability to change the type of tracking constraints used the by selected instance and their settings. Changing their settings however is best reserved for quick rig pistons.
  • Quick Rig Pistons:

    • Bones are now placed along a vector instead of armature Y axis.
    • Armature can be aligned to the cylinder/active object, which can fix bone roll issues of pistons placed at ‘off-axis’ orientations.
  • Added a new piston (Latest quick rig compact design, converted to a stretchy piston, mounting pieces not included)

Short vid about the different types of track constraints in blender:

1 Like

PistonPusher 5.2.0 is available!


  • Issue that prevented piston instance tools/operators from appearing after a piston was rigged (creation mode).
  • Issue when trying to append a creation mode/asset piston when a quick rig piston was already in the scene.


  • Snap modal supports any kind of piston with an ‘arm-piston’ armature and a ‘B’ empty.
  • Button to change track constraints is only visible when a part of a quick rig piston was selected/active.
  • View is set to camera if needed when a thumbnail is saved.
  • piston sub directory drop down menu shows how many types a directory has on mouseover.
  • Rig hose (quick rigs) now determines the correct direction automatically when only 1 other object was selected.
  • Rig hose (quick rigs) will change curve preview resolution if its too high. This is mainly noticeable on longer curves.
  • Itasc hose rigs ik_param settings have been adjusted resulting in much more stable simulations.


  • Cycle sub directory and type (snap modal) have been disabled as the current implementation has issues that I wasn’t able to fix.


  • Ability to add more rods to quick rig pistons, allowing users to create telescopic pistons outside the template/custom creation mode. Reverse extension order and inverted rods are supported as well. Feature is found under quick rigs. Requires that an armature and rod object are selected (armature should be the active object).

Free version is also updated.

1 Like

PistonPusher 5.2.1 is available!

Improved: WAT Modal axis highlight accuracy
Added: Mirror collection tool

This tool can be found in the quick rig menu. As the name implies, it can mirror a collection.

Objects are expected to be parented, do not use child of constraints. Objects that are parented using child of constraints are seen as (part of) sub armatures. It’s not a hard requirement that the collection contains an armature at all.

Basically, it’ll only mirror objects at root level, so, objects without any parent relationship. You can still force a local mirror on subarmatures if needed. So, to use this tool properly, the rig should be almost completely set up but the root armature should not be connected to/a child of another armature just yet.

In certain cases you may want to provide the tool with more information. This is really easy:

To do this, you use ‘tags’ and add them to (usually) armature names. If an armature is named ‘armature’ it becomes ‘armature_RST’. Tags may be combined, their order does NOT matter.

  • _ITASC - Use when rig has an IK chain while using itasc ik solver
  • _RST - Use when posebone child of constraints must be set to inverse after mirror operation (if the mirror operation failed on a specific armature, go to pose mode, find a child of constraint and hit set inverse, if this fixes it, you should use this tag)
  • _OBLCL - Mirror every child of this armature. May require that rotations are applied
  • _LCL - Use to mirror this object locally

Note that this will result in armatures/objects with negative scale but this matters little, when an armature uses the itasc IK solver, it will apply scale and rotation and correct any objects because this ik solver cannot deal with negatively scaled armatures. The standard IK solver however, can. The scale and/or rotation of objects is never applied, but this should not really matter either. However, if someone presents a good case this could be changed.

It may affect drivers that rely on object level world space transformation data (loc/rot/scale) but this should be easy to correct if needed.

PistonPusher 5.2.2 is available!


  • Piston Planner Tool: A tool that’ll allow you to establish a working plane based on two locations and a ‘tangent’ vector.

How to use:

This tool can get locations from objects and geometry(Assuming its a mesh object). You’ll mainly control it by using the left or right mouse button.