PistonPusher v6

Released another update lol.

This time I added the ability to unconstrain a piston.

2 more pistons got added and all other pistons have been updated.

I’ve also added all pistons to the kpack.

I should probably add that some pistons in the mx1001 directory are made by me. I don’t want to claim any credit for masterxeon1001’s work and so chose not to mention it until now. Most were made by @masterxeon1001


these renders lookin gud!


Learned from the best!

1 Like

1.5.15 is out!

With another feature this time:

An overlay intended to give a quick overview of how the constrain feature sees things, can be used to quickly troubleshoot issues or catch issues before you constrain a piston:

Also fixed a missing hose on the HEAVY piston type.

For those that didn’t know:

They certainly can be animated! There are limitations however. In a nutshell, by transforming the space a piston is considered to be in( like local space of its parent), you can get around some of them but not all.

And for those worried about performance:
my specs are:
a ryzen 5 4600g
4gb 1650gtx nvidia gpu.

so, pretty low powered when it comes to 3d art.

Pistonpusher 1.5.16 is now available!

(Piston made by Masterxeon1001)

  • Toggle overlay button is only visible if it can be used/ an (unfinished) piston is present.
  • Objects exactly at world origin are now colored white. This change also prevents the color from not updating if a object was set to world origin after the overlay was turned on. It’s still not a live overlay but it will properly update as you toggle it on/off now.
  • Fixed wrongly configured mirror modifier of the glass piston type.
  • Added a user manual.

Uploaded a new demo video!

Youtube seems to have some issues with the thumbnail, I expect it will appear eventually.

Pistonpusher 1.6 is out!

This update changed a lot:

  • Pistonpusher relies on armatures now.
  • Snap modal was replaced with a simpler but more effective alternative. The current implementation is essentially an adaptation of snap selected to active. Allows you to ignore scale/location/rotation. Works with auto constrain and all objects. No name requirements or whatsoever.
  • Select tool was changed as some of its features aren’t needed anymore. It can still select all parts of a piston. Or select the ‘next’ empty. The keybind for it also changed to ctrl + shift + left double mouse button. This change allows you to preserve any selection you had before running the select tool on an empty.
  • Constrain anchors(manual) was removed as it too was not needed anymore.
  • Non piston reselection opt-in was removed. Due to the removal of the snap modal and the changes to the select tool, this opt-in has been removed.
  • Removed clear last selection.
  • Added the ability to easily remove a piston. If you have a part selected, the option will be present in the pop up menu. This will also rename/recount all pistons of that type if needed.
  • Locations of operators in the pop up menu changed.
  • Got rid of ‘primary anchors’ custom properties and other code that wasn’t needed anymore.
  • You do not need to go to pose mode to control the piston!
  • ‘remove constraints’ also works still. it wont remove the constraints from bones but still detaches the piston from their armature and any empties.

All together, this should make animating them a blast!

Pistonpusher 1.6.1 is available now!


  • Added telescopic armature support, it works automatically. They can be stretched too! See release log video for more info.

  • Hook modifiers added by pistonpusher are now moved to the top of the modifier stack.

  • Thumbnails display piston/part name if user tooltips are enabled.

  • Index of a piston type is now omitted.(collection management only)

  • Fixed select tool bug.

  • Set child of constraints feature can now remove child of constraints or ALL constraints on the selected objects.(hold shift/ctrl)

  • Added 2 telescopic pistons. removed old telescopic piston.

  • Added demo scene of the hexapod to the bonus directory.

1 Like

Pistonpusher 1.6.2 is out!

  • Set child of constraints can target bones. hold alt to target armature, if the armature has no pose bones you do not need to hold alt.


  • Fixed snap tool bug. Related to snapping objects that are parented to an armature with constraints, which required different math. You can now properly snap the B empty/anchor of a piston!

1.6.4 is out!

  • Fixed bug with telescopic rods related to the order in which they were added to a scene.

  • Changed bone target drop down menu to a search field (set child of constraint(s)).

  • Child of constraints added by pistonpusher are moved to the top of the constraint stack now.

  • Fixed another snap tool bug related to snapping objects that are parented to an armature.

  • Snap tool will place (new) pistons at the 3d cursor if no object was selected. This also means that the snap tool can snap single objects to the 3d cursor from now on.

Version 1.6.6 is out now! With these changes I hope to deliver a more consistent and intuitive experience for users.


  • Snap selected to active will ignore scale by default from now on, ignore rotation was also changed to alt. This should make the tool feel very similar to the snap feature found in machin3tools.

  • Removed the options and utilities N panel, these features were moved to the pop up menu.

  • Changed the ‘off-set’ value for telescopic pistons to a much smaller value.(This value is responsible for the ‘safe zone’ of each rod and it was set too high for smaller pistons)

  • Fixed a minor issue with the constraints responsible for rotations on telescopic rods.

  • Custom mode defaults to ‘all parts’ instead of ‘mounts’ once started.

  • Changed several checkboxes to buttons.(The ones to show parts outside the creation process and the ones that allow a user to exit the system after an armature was added)

  • Empties that control a control bone are now linked to the main instance collection instead of the empties child collection of its instance.

  • The locations of some UI elements changed a bit.

  • Removed 1 piston rod which was redundant since the introduction of telescopic pistons.

  • You can now specify which type of track-to constraints will be added to your piston.

  • Hiding secondary bones is now optional.

  • Added 1 mount.

  • Added 3 pistons, one is a telescopic piston made by Masterxeon1001.

  • Added another file to the bonus directory, this time its the arm/assembly found on the storepage.

  • Kpack has been updated!

Uploaded a little how to/timelapse on how to make inverted, telescopic pistons with pistonpusher:

1.6.7 is out!

  • You can now define a custom center point for your piston, instead of being forced to use the world origin.(y axis only, visible when the overlay is turned on.)

  • Overlay now shows a plane made of lines which represents this center point.

  • Overlay colors and center plane size can be changed in add-on preferences.

These changes make the overlay more useful. It updates as you change the center location. You still have to update it manually if you moved an object, either by toggling it off/on or changing the center location value. You can change this value if the geometry of the cylinder requires it. Before, you would have to move objects and/or modify meshes for a nice result.

A new mount has been added:

1.6.8 is out.

Fixed a bug with the snap tool when a piston is appended/instanced through the pop up menu.

Uploaded another how to video, this time I show how to make a hip and leg joint:

1 Like

Just updated to version 1.6.9


  • Added: Create linked duplicate radial array, like regular radial arrays but with actual objects. Supports Empties too. Destructive but their radius can be adjusted in the pop up menu.

  • Added: Multi-place, place multiple pistons at the locations of the selected objects. When used with the linked duplicate radial array, you simply select the main empty of a linked duplicate array and pistonpusher will do the rest.

  • Added: Select sides, select all sides of a group of pistons connected to the new radial arrays. A for cap ends, B for rod ends. Will also switch transform pivot point to individual origins. This allows you to easily create all kinds of set ups! Only visible if you have a pistonpusher radial array selected.

  • Various UI changes to the pop up menu.

  • Fixed bug of delete piston feature. It only appeared with the new piston so I doubt users ran into it.

  • Fixed bug with snap selected to active, would throw an error if the auto-constr opt-in is enabled while you snap an object to the 3d cursor.

  • Added a new mount. Note that it can not be used in a straight forward manner currently as it is its own assembly with pistons. It needs to be removed from the mounts collection. It adds an empty called mnt_trimount. This one should be left in the mounts collection. Once the armature is added you can add the objects back to the piston collection.

  • Added hip joint scene to bonus files.

  • Added piston of the hip joint scene. Changes have been made for a more streamlined experience with them. This mainly concerns the cardan joints. It will serve as a demo piston for these situations.(No need to re-snap as the piston is appended anymore, called rob_07, industrial folder)

This video shows the new features:

Pistonpusher 1.7 is available!

I’ve been working on an ‘all viewport/view3d approach’. While the n-panel does its job well, it has come to my attention that some blender users prefer a viewport/view3d approach needing as few menu’s as possible. You may also want to use the n-panel of another add-on instead. Some options have been moved to the right mouse button menu but the majority moved to the pop up menu in an optimized manner. Most changes of this update are related to this. They can disabled. The n-panel can be removed/disabled as well.

Some of the most important:

  • Fixed: If you add a second mount (part) in the custom mode, the last m_snap empty that was added will now be properly selected.

  • Fixed: Gui/hud messages now have proper padding.

  • Fixed: Error check bug of add armature operator.

  • Fixed: Bug with delete instance operator when used on the last instance of a type.

  • Changed: Numerous changes were made to the add-on preferences.

  • Changed: Added a soft_max limit of 16 to create linked duplicate array.

  • Changed: Tri cluster mount/joint moved to connectors. It still should be moved out of the piston collection until an armature was added but this should be easier and less confusing.

  • Changed: Gui/hud notifications now fade out.

  • Changed: Default notification duration changed from 3 to 2 seconds.

  • Added: Ability to change notification (text) size.

  • Added: Ability to change where notifications appear.

  • Added: Opt-in to only show creation features in n-panel, enabling this also removes object mode rmb menu entries.

  • Added: Opt-in to remove n-panel if you prefer the pop up menu.

  • Added: Object collection overlay, quickly identify which objects belong to a certain collection. Always visible in pop up menu. Additionally enables show in front for affected objects. Only collections containing objects of mesh or curve types can be selected.

  • Added: gui warnings for custom mode. Found in rmb menu while in custom mode. Options for size, location and color are available in addon preferences. Automatically toggled on/off at the start and end of the custom creation process.(Only if n panel only is False)

Set N-panel only to True to disable most of these changes if you prefer to use the N panel only for creating pistons/parts.

1 Like

1.7.1 is out!

A really minor update this time:

  • Changed: Custom mode warnings are not shown by default anymore, un-doing out of the custom mode with the warnings on causes a bug, this is a work-around until a better solution has been found. It will still turn off automatically once you add an armature.

  • Added/Fixed: Default names if none are provided while saving parts/templates. For pistons, additional name checks have been implemented to prevent duplicate names among all directories in your pistons folder.

Work on a read the docs has begun as well:


1.7.2 is available!

Changed: Create and save checkboxes changed to show/hide buttons.
Changed/fixed: Some inconsistencies with the pop up menu, creation system and its different modes.
Added: Examples(files that demonstrate how i’d use it).

I uploaded an introduction video!