Moving a Golf-Ball through a Garden-Hose

I am trying to create a setup that will let me send meshes along a path deforming a mesh that surrounds that same path. Pretty much like in a cartoon fluids travel on the inside of a strawer, bulging the strawer or garden hose or whatever object outward in the process.

I have found a video that illustrates the concept, but it is a setup for 3DS and I cannot replicate that in Blender.


So far, I have tried using the warp modifier, but that does not take the objects shape into consideration.

Is there a way to move one object through the other and displacing the outer object's vertices by those of the inner one?

Cast Shape Demo Cast Modifier Ignoring Shape, Using only Origin Point Poke-Through with Excentric Shapes


2 Answers 2


The cast modifier should let you do exactly what is in the video, with only a couple of steps.

To set it up, you will need a hose object with fairly dense geometry, and an object to pass through the hose.

To set up the system, you will need to have the object (I'm going to use a sphere as an example since that was the object in the video) positioned at one end of the hose, and animated to move through it. I would think a curve would be the best way to animate the object, and you could also use the same curve to bend the hose.

Once you have the animation set up, simply add a cast modifier to the hose, select the sphere in the control object box and then adjust the radius until the hose completely covers the object.

enter image description here

  • 2
    $\begingroup$ This works really well and does not give the "sticky points" artifacts that the shrink-wrap method occasinally produces. Additionally, the shape of the control object does not really matter, the deformation is controlled by the cast type. I would recommend using some type of empty as a control object, since those have no mesh parts that can poke through the cast object in tight corners. $\endgroup$
    – Ben
    Dec 11, 2017 at 22:10
  • $\begingroup$ Thanks for adding those points. For consistency's sake I would still recommend using the original object and not an empty to ensure the deformation from the cast modifier is always big enough for the object and the deformed 'lump' never changes size (although it would definitely be subtle). $\endgroup$
    – Brenticus
    Dec 11, 2017 at 22:51
  • $\begingroup$ Is there a method to ensure the controller does not penetrate the hose? I had some success with the Radius Parameter, but that is not 100% reliable. !Test Setup, Several Primitives and an Empty !Irregular Shape Penetrates !Radius Increased, Still a Bit Wonky $\endgroup$
    – Ben
    Dec 12, 2017 at 13:19
  • $\begingroup$ There are numerous ways to go about it, you could simply hide the controller as soon as it enters the hose, or you could try adding a shrinkwrap modifier to the hose as well. $\endgroup$
    – Brenticus
    Dec 12, 2017 at 16:43

There are some results you can archive with the shrinkwarp modifier.

important is to set the mode of the shrinkwrap to project.

what I did in my test scene:

I created path with a circle as bevel object to create the tube. I also but a follow path constraint on the bulge object to deform and follow the tube at the same time.

With standard settings of the shrinkwrap there can be glitches.


but after some tweaking of the shrinkwrap limit it works fine.

I found out that you have to make a change in the blendfiles timeline to see the deformation. it looks like blender gets confused when using the tubes curve as constraint target of the bulge object.

But after reading the most upvoted post I also would recommend to use the cast modifier.

  • 2
    $\begingroup$ Could you provide more detailed answer? Maybe some image/animation examples of final result and overview for the steps? $\endgroup$
    – cgslav
    Dec 11, 2017 at 16:00
  • $\begingroup$ Yes sorry I weren't able to find a way to upload my blendfile. But I admit, that the cast solution gives a way better result. $\endgroup$
    – monatsend
    Dec 12, 2017 at 9:07
  • 2
    $\begingroup$ You can use both! Place the cast after the shrink-wrap to ease the distortion in on both sides. $\endgroup$
    – 3pointedit
    Dec 12, 2017 at 11:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .