Kitbash Vein Growth Part 1

comments 3
Free Tutorials

This tutorial shows you how to create a procedural vein, that is composed of small segments that you drawn by hand. This way the overall look of the vein is art-directable.

While creating the vein you learn about concepts like matrix multiplication, quaternions and the primuv() function as well as looping in SOPs. This is the first part of a two part tutorial, that deals with the creation of the vein itself. The second part (that will be released in 2 weeks) extends the setup with branches, hull geo and growth.

Download Start file

Download the Parallel Transport setup file

Watch the Parallel Transport tutorial

Download End file

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


  1. weird… i cannot get the orient visualizer to work. open your start file, build out the scene to the first transform and that works but the vis does not. open your end file copy the “create_orient” vop, paste it into my version and rebuild the orient visualizer… nothing. oh well, the concept is still working.

  2. Hello entagma,
    thanks for the tutorial I enjoyed it very much. I just wanted to mention that there is an easier way to generate the initial frame for the curves.

    The resample node can generate the tangent component for us. Since the initial normal is set to {0,1,0} for all curves we can simply compute the bitangent as the cross product of normal and tangent.

  3. Hello Entagma,

    Thank you for the great tutorial. I am trying to do something different in my case, but still I thought I’d find an answer to my problem in this tutorial and it has to do with orientation and matrices and quaternions. What I am trying to do is to have points scattered on a mesh, and then have UV projection handles aligned to the position of those points (I use `point(“..pathToPointOn Surface”, “P”, ptnum)` for the translation of the handle), but then I have no idea how to align the handle to the reverse of the normals going out of a point on the surface. I’ve tried to tinker with quaternions and matrices, but I don’t know how to extract this information and put it in the rotation of this handle. Even if I do achieve this, it might be a stupid and slow way to achieve what I am trying to do, which is to scatter points oh a character’s face let’s say, instance UV projectors that would stamp displacement maps of pores or bumps or beauty spots and somehow bake this displacement with COPS (the stamps would all add up in a greyscale image) and Redshift in the end. Is this weird, am I doing a totally wrong way to approach this? Sorry for the long and probably irrelevant post

Leave a Reply