6
$\begingroup$

I took the following steps in an attempt to wrap a bunch of spheres around a cylinder.

  1. Add a plane mesh
  2. add a number of spheres
  3. join the spheres into one object
  4. parent the plane to the spheres, ie the plane is the parent
  5. select the spheres and a surface deform modifier with the plane as the target
  6. select the plane and add shrink wrap modifier with the cylinder as the target.

I have tried various wrap methods and snap modes but unfortunately the spheres are distorted on the cylinder. I simply want the spheres to retain its shape but is just sitting on the surface of the cylinder. My final objects will not be spheres some other mesh object.

Any tips are welcome.

enter image description here enter image description here

$\endgroup$

2 Answers 2

13
$\begingroup$

You could use Geometry Nodes to distribute instances on the vertices of the cylinder. Better yet, you can create the cylinder inside GN to keep it all procedural if you'd like that:

enter image description here

Here's the full node setup:

enter image description here

And here's the file:

$\endgroup$
9
  • $\begingroup$ cool... that looks great! Unfortunately I get an error stating " file written by newer blender binary (300.43) Expect loss of data". I am using 2.93.1 $\endgroup$ Mar 15 at 15:31
  • 2
    $\begingroup$ @user9106985 Geometry Nodes have undergone quite a drastic change with 3.0, so I don't think it would work with 2.93. Just update to the latest version? Latest stable release is 3.1 and that should be fine since I'm not using any nodes that's not available in 3.1, I think (I'm using 3.2 Alpha). $\endgroup$
    – Kuboå
    Mar 15 at 16:37
  • 1
    $\begingroup$ Many thanks. I had not realized of the new version. Installed and your model works $\endgroup$ Mar 15 at 16:47
  • 1
    $\begingroup$ You're welcome. Feel free to ask further questions if something's not right with the setup for your specific purpose. $\endgroup$
    – Kuboå
    Mar 15 at 16:58
  • 1
    $\begingroup$ I figured the problem. I actually appended my target geometry as an object instead of the usual import stl. Now it works. Thanks for this cool modifier! $\endgroup$ Mar 16 at 20:56
4
$\begingroup$

It won't work as the Shrinkwrap modifier won't project your plane nicely around your cylinder. There are several ways to do it, like Simple Deform, Instancing, Particles, Geometry Nodes...

The easiest is probably to give to your spheres a Simple Deform (Bend mode) modifier. Don't forget to apply the rotation of your sphere object. It will deform the spheres a bit though. If you don't want deformation you could use Instancing instead.

enter image description here

For the Instancing solution, duplicate a part of your cylinder, separate as a new object, subdivide it so that it has as many vertices as you want instances of your sphere:

enter image description here

Keep this object selected and in the Properties panel > Object > Instancing, click on Vertices. You'll be able to hide the object with the visibility options:

enter image description here

Parent the sphere to this object, it will duplicate the sphere along the object shape. Move the sphere object so that it sticks to the cylinder.

enter image description here

The Particle system solution is a bit more tedious, so it's probably better to use one of the two solutions I've explained, or switch to a more flexible like Geometry Nodes as explained by Kuboa.

$\endgroup$
6
  • $\begingroup$ thanks for this! $\endgroup$ Mar 15 at 15:32
  • $\begingroup$ its not clear to me how to reproduce what you have shown? The blender docs states to select an object that defines the origin and axis of deformation. Thus I have selected the cylinder as the target. $\endgroup$ Mar 15 at 16:10
  • 1
    $\begingroup$ if you want to use the Simple Deform modifier you don't need the cylinder, by default the bend axis center will be the origin of the object, just don't forget to apply the rotation in Object mode (Ctrl A > Rotation) $\endgroup$
    – moonboots
    Mar 15 at 16:16
  • 1
    $\begingroup$ Kuboa's solution is Geometry Nodes based, it's a bit more complicated, I can explain instancing though $\endgroup$
    – moonboots
    Mar 15 at 16:30
  • 1
    $\begingroup$ Technically what Geometry Nodes is doing is also instancing, but what moonboots is referring to is an older method of using that duplication method through the Object Properties panel. That can be a simpler and faster way if all you want is placement and not more control like orientation etc. $\endgroup$
    – Kuboå
    Mar 15 at 16:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.