Packing The Torus

comments 29
Free Tutorials

Dense packings of objects onto surfaces always look stunning. There are many analytical algorithms out there to compute such a packing. In this video we’ll explore a simulation based approach to achieve a dense packing of particles with varying radius. This is more versatile and easily allows for a nice packing animation.

We’ll quickly review the concepts of “signed distance fields” and “the gradient” to project particles onto a surface along the way. Then we’ll explore the intersect VOP to sample attributes from a foreign surface.

Download Project File (.hip)

Liked it? Take a second to support Manuel on Patreon!
Become a patron at Patreon!


  1. john brown

    I’ve been wanting to know how to do this for a long time, brilliant clear tutorial thanks.

  2. Really stunning work guys. Thanks for sharing your insights.

  3. Christopher P Rahaim

    Great Tutorial! Thank You for producing this!

  4. This is officially my favourite website since I discovered it a few months ago.
    Absolutely fantastic tutorials guys, with great explanations along the way.
    Love it !!!

  5. Hi, thank you for the tutorial 🙂 I think you can stack the particles to the surface in a easier way using a relax node with the surface to stack on in the second input!

    • Sure. There are always many ways to achieve the same result. This could work using a SOP-Solver. But I don’t think it is easier, only different. Try it and post it here! Would be interested in comparing the solutions.

      • A little late to the party, but here’s a solver version I put together that felt a little more intuitive for me (‘toruspacking.hipnc’ at Not really any easier, as Manuel notes, but I did find it fixed an issue I was having with the approach in the video where the relax step kept forcing points off the surface.

        Really great video, though. I’m learning a ton from watching these!

  6. Wolf-Dieter Grabner

    Very nice and interesting tutorial and also thumbs up for the tasteful website theme.

  7. Wow. Such a wonderful tutorial. Even a less-experienced person like me can easily understand. The theory parts are really great. Teaches us how to solve. Amazed by the power of Houdini.

  8. Thank you very much for the tutorial and for the clear and precise explanations. It make it look simpler!

    I tried myself to do it but I couldn´t control the velocity. Everything was fine until the attribute wrangle to set velocity to cero. Could you please upload the file to see where was the error?

  9. Hi, in my attempts the POP VOP needs to be after the Merge inside the POP NET. Is this right?

  10. Swan Vestas

    Great, tutorial! Just an advice please use “mousepose” like key viewer. It can be more clear expression.

  11. Hi, is the sample file available for download? thanks.

  12. Pingback: Controlled Circle Packing with Processing - CodePlastic

  13. Hey, how would you export smth like this to Unity?
    I’ve created an assed & loaded it but it just does not do anything over in unity. thx

    • I’m sorry, but I cannot help you here. No clue about unity whatsoever.

  14. Wow, LOVED this one!
    Very well explained, although it’s still a bit too complex for my knowledge level.

    Thanks so much!

  15. vincent thomas

    Very nice but no Hipfile for this one ?

    Could you ask your houdini expertise one question please?

    What about if i have not one objets but a full complex CG environement. Could i convert/approximate this a point cloud or so, or pack all the input mesh into one and use this technique?

    Most example are based on one surface, im just starting Houdini despite being in the industry for a decade, im wondering what would be the best approach to do FX not one only on one obj but a full complex scene env, where i could have all kind of geo, topology i mean, from high to low…

    Thanks, looking forward your email and advise!


  16. Hi guys,

    Loved the tutorial.

    When I add my copy to points node at the end, I loose the colors on the spheres and its all greyscale, any ideas? Im just using a copy node as im using 15.5, or should i use another node?


  17. Hi, I am new to houdini, 10 year C4D MoGraph veteran and blown away by the capability of this software. So big thanks for this tut, all your stuff is excellent and much appreciated. I have been working specifically with this torus packing and after a good process and learnings I wanted to apply it to some geo I have. I imported an OBJ and now after the boolean operation I cannot get the normals to follow the OBJ surface. I wondered if there was an operation I would have to do in order to get the normals from the emitter booleans to follow that OBJ surface? My setup works with a Torus 1`00% but as soon as I change to an OBJ the normals face away from the geo.

  18. Dmitry Levitsky

    Thanks for the awesome tut!

    I’m trying to replicate this on 17.5 and i get particles starting to fly off the surface somewhere in the middle of the sim… i’m opening your file and everything’s ok, clicked throw, side to side, everything is the same, but your project works, and mine doesn’t…
    i’m kinda new to Houdini, maybe i’m missing out something… could you be so kind and point me in the right direction? what am i doing wrong?
    here’s my file:

    Once again, thanks for the awesome tutorials! You guys encouraged me to start learning Houdini!

Leave a Reply