TD Essentials: Create a Swept Phyllotaxis Operator in Houdini

Поділитися
Вставка
  • Опубліковано 30 вер 2024

КОМЕНТАРІ • 70

  • @michaelfrederickson951
    @michaelfrederickson951 3 роки тому +25

    One of the great joys of Entagma has been learning how to tell if it'll be a Moritz or Manuel tutorial just from the thumbnail. This is so Manuel

  • @eliaspierre6303
    @eliaspierre6303 10 місяців тому +1

    I spent the last day and a half trying to figure out how to taper the sweep at the ends, and have the organ size and density dynamically adjust to that as you did in the beginning example. If you have any suggestions for that, and the time any clue would be amazing! Thanks for the tutorial though it was super helpful!

  • @xl000
    @xl000 2 роки тому +5

    Fun fact: the "P" you're talking about in the paper, is in fact a small rho (Greek letter)
    Rho is the Greek letter for R, as in Receptacle.
    Example at 28:05
    HTH.
    Note: I studied (Ancient ) Greek in high school.

  • @austin_wendenburg
    @austin_wendenburg 3 роки тому +7

    I looked at this paper back in my early days as a 3d artist when i became obsessed with modelling a pinecone haha, excited for a refresh in houdini vs c4d. Thanks Manuel, glad to see you back!

  • @unkindled_dreg
    @unkindled_dreg 3 роки тому +4

    Every time one of these amazing math-based tutorials drops from Entagma, I need to run over to Khan's academy to refresh myself on the concepts. Fun though.

  • @edcutting
    @edcutting 2 роки тому +1

    Woah, amazing amazing tutorial, thank you!
    At the moment all the copy to point objects are facing the same direction.
    Wondering if there is any easy way to orient the copy to point object to follow the curvature of the curve - like a flower petal would :)

  • @ironscavenger
    @ironscavenger 2 роки тому +1

    Pretty late to the party, but just a few additions to Manu's code here:
    1) The organsize "p" and stepsize "deltas" have to play together. So if you fix "deltas" to say 0.001 but also choose a very small organsize you will get odd results. It then helps to decrease "deltas".
    2) You don't need to use "primuvconvert" if you just divide "s" by "l". Since "s" can be "l" at max, you will always get 0...1 values.*
    3) You can get rid of the count-variable "i" if you just don't reset the matrix "m" all the time. The rotate-function will then just keep rotating "m" from it's last position.
    Nevertheless thanks for another great tutorial and explaining phyllotaxis :)
    Also I hadn't heard of "primuvconvert" before. So although it's not really needed here I'm still happy to know it now :D
    Cheers!
    EDIT: *However if you do employ "primuvconvert" you could probably get rid of the measure-sop and don't care about the actual curve-length altogether, since "primuvconvert" will do all the work for you. But I didn't try that.

  • @ykadam
    @ykadam 2 роки тому +1

    I give it 137.154 degree, and it give me a sweetcorn. This is purely amazing!! I feel like I am in control of nature now! Thank a lot!

  • @aeko
    @aeko 2 роки тому +1

    You guys got to stop naming your variables such meaningless names like r, l, m, etc. This does NOT help with learning or with code readability. I have no clue what's going on if I look at this in the future or even now.

  • @cgforge
    @cgforge 3 роки тому +2

    Amazing tutorial Manuel! That was brilliant 🔥

  • @aboldmule
    @aboldmule 3 роки тому +2

    This is a lesson for applied math and integrals. Kudos

  • @metaturnal
    @metaturnal 2 роки тому +1

    Awesome as always.
    One day I will understand the meaning of the code I'm writing and not just copy yours..
    Is there a way to orient the geometry that is copied (in your case the sphere) perpendicularly to the curve?
    Also how could I make the geometry expand and deform to fill the the gaps in between them?

  • @HanhaloArt
    @HanhaloArt 3 роки тому +3

    Amazing, understanding these papers is straight black magic) can you make something based on mycelium growth?

    • @Entagma
      @Entagma  3 роки тому

      Do you have an example for mycelium growth?

    • @BloomGlare
      @BloomGlare 3 роки тому

      @@Entagma yeah, brb just gonna check the container in the back of my fridge for some inspo. Seriously though, yes - this would be handy instagram.com/p/CKeA2NnhIUV/

    • @Entagma
      @Entagma  3 роки тому

      :-)

    • @danielloo1255
      @danielloo1255 3 роки тому

      @@Entagma if you could review some of Ciphrd's work, an implementation in Houdini or Blender would be fantastic!

  • @chr1st0pher
    @chr1st0pher 3 роки тому +1

    New Manuel houdini tut!!!! Wahoo! Love these TD essentials

  • @massimobaita7178
    @massimobaita7178 3 роки тому +1

    Thank You very much, Manuel!

  • @signorcarota811
    @signorcarota811 Рік тому

    Hi, nice tutorial! Im a beginner but i have a small problem, i don t know how to animate this xD can you give me a little explanation?

  • @nitzantregerman1482
    @nitzantregerman1482 3 роки тому +1

    Absolutely phenomenal!

  • @BOND_BOND_007
    @BOND_BOND_007 7 місяців тому

    awesome tutorial thank you Entagma but how to apply different @pscale through the mesh like in the intro video
    I tried everything with no luck can someone help me out please.

  • @vger2
    @vger2 3 роки тому

    Tweaking the curve a bit, this seems an ideal way to generate the eyeball of a common house fly. Thanks for this tutorial though admittedly, I was mostly just copying the vex code you typed while barely comprehending the math behind it :)

  • @unveil7762
    @unveil7762 Рік тому

    😮

  • @FaddyVFX
    @FaddyVFX 3 роки тому

    Thanks again. I watched it many times

  • @SiccodeVries
    @SiccodeVries 3 роки тому

    You guys are my favorite Nerds..love it.

  • @vladimirchesnokov9351
    @vladimirchesnokov9351 2 роки тому

    I need an intuition explanation for the intuition part

  • @TobiasSchoenke
    @TobiasSchoenke 3 роки тому

    Awesome - Thank You!

  • @plagiats
    @plagiats 2 роки тому

    Thanks for the tutorial. I had better results with a = a-.5; instead of a = a-1; I don't know why otherwise there were still gaps

    • @carminelamorte
      @carminelamorte 6 місяців тому

      When you created your primitive sphere, the default radius was probably set to 0.5 in all axis. This code operates on the idea that the spheres you're packing are all 1 unit in size. You just need to tweak that.

  • @BD__
    @BD__ Рік тому

    amazing tutorial!

  • @CabrioDriving
    @CabrioDriving 2 роки тому

    This looks so satisfying :)

  • @outputmatters2147
    @outputmatters2147 2 роки тому

    I have checked the code so many times and I only get 1 small sphere at 0 0 0 ... The curve is not in the negative however the subdivide doesnt seem to impact curves either.. Any ideas?

    • @AbdulKhan-pt9uw
      @AbdulKhan-pt9uw 2 роки тому

      Is your point wrangle set to ‘detail’ instead of points or prims? That got me

  • @roberthintz4017
    @roberthintz4017 3 роки тому

    Can you do something based on texture deformation or texture rigidity?

    • @Entagma
      @Entagma  3 роки тому

      What exactly do you have in mind?

  • @aaronversiontwo4995
    @aaronversiontwo4995 2 роки тому

    Ugh, it is so frustrating when you can't even get past step 2. Did Houdini change something in the curve node between v18.5 and v19? The curve node icon is different and when I use a subdivide node it doesn't smooth out the curve it just divides the curve between the points in a linear fashion. The most baffling thing of all is that the curve I made has 6 points but the Geometry spreadsheet and Display Point Numbers in the viewport show 15 points overlapping each other. So then I had to use a Clean Node to consolidate the overlapping points and THEN the subdivide worked properly. What a weird thing for the new curve node to do. Typing out all the code it STILL didn't work. Opening up the included project file everything worked and suprise suprise the curve node is COMPLETELY different. It is so weird.

    • @nightshift-lb6hv
      @nightshift-lb6hv 2 роки тому +2

      hey! make sure the curve is set to polygon before you start drawing. then the subdivide works properly. changing it afterwards doesnt seem to work

    • @plagiats
      @plagiats 2 роки тому

      @@nightshift-lb6hv thank you so much

  • @highaspectfoiling
    @highaspectfoiling 2 роки тому

    Hi, has anyone got this working?! Such a fascinating tutorial, any help would be massively appreciated (I'm a Entagma Patreon if that helps haha):
    Here's the code, doesn't work for me (Houdini 18.5):
    float p = ch("organsize");
    float l = prim(1, "perimeter", 0);
    float deltas = 0.1;
    // forward declerations
    float a = 0;
    float s = 0;
    float x = 0;
    float y = 0;
    float phi = radians(137.5);
    vector2 uv = {0,0};
    vector pos = {0,0,0};
    matrix3 m = ident();
    int i = 0;
    while (s

    • @Entagma
      @Entagma  2 роки тому +1

      Hi Ollie,
      in these instances it's great to compare your code to the scene file we provide. Doing so brings up a few things to note:
      - your second while loop's condition should read: while (a

    • @highaspectfoiling
      @highaspectfoiling 2 роки тому

      @@Entagma ah your a star, thank you so much Mo, I just couldn’t spot the error! 🙌

  • @niczoom
    @niczoom 3 роки тому

    It's beautiful!

  • @schulenheimer
    @schulenheimer 3 роки тому

    didn't work for me until i realised i had the curve on the negative x.
    edit: once i got my head around the algorithm i could implement the size change 👍

    • @callumbrown2386
      @callumbrown2386 Рік тому

      Did you manage to vary the size? Looking for a way to increase organ size from the centre outwards

  • @vietchung
    @vietchung 3 роки тому

    amazing work.

  • @mazin3d
    @mazin3d 2 роки тому

    wow

  • @TheDanielConsole
    @TheDanielConsole 3 роки тому

    amazing as always!

  • @andreasclausenclausen1635
    @andreasclausenclausen1635 3 роки тому

    Excellent tutorial!! Quick question to your math :)
    Would you not need to revolve around the y axis before calculating if there is room for a new organ? In my understanding of your logic there, we would calculate and place an organ on a newly available slice, and then go up an entire 2pi, before being able to place a new one. This would leave each slice with only one organ? I understand the core concept and the houdini part, just curious about the logic :) Cheers and thank you!

    • @Entagma
      @Entagma  3 роки тому +2

      The trick here is that the we try to find an area patch that is equivalent to the are of an organ. When we place the first organ it of course extends above and below the slice. If we would continue without rotating the organs around y along the curve, the next organ would again be equivalent to the area we added, but would nonetheless intersect the first one. The principle only works, because rotating by phi makes sure that the organs are distributed without intersection around the circumference of the swept object anyway. That means after placing enough organs at different locations along the circumference that the entire thing approaches a working solution.

    • @andreasclausenclausen1635
      @andreasclausenclausen1635 3 роки тому

      @@Entagma Thank you for answering! That was I was confused about math wise. That either the intersection would occur or we fill one slice up entirely and the rest of the slices wouldn't work. Not confused anymore though. Cheers - Great content!!

  • @mukundkm7129
    @mukundkm7129 2 роки тому

    ❤️

  • @VugarNaib
    @VugarNaib 3 роки тому

    Cool 😎👍

  • @barasaravishal1878
    @barasaravishal1878 3 роки тому

    Can you upload same tutorial using blender

    • @Entagma
      @Entagma  3 роки тому +7

      In Blender I would have to create a python addon to implement this functionality. Maybe I'll cover Python in Blender at some point in the future.

    • @barasaravishal1878
      @barasaravishal1878 3 роки тому

      @@Entagma thanks for replying..

    • @Kemer95
      @Kemer95 3 роки тому

      ​@@Entagma I would buy Entagma Patronite for that!

    • @juannete2873
      @juannete2873 3 роки тому

      ​@@Entagma And in cinema, it's possible to replicate this?

  • @GHOST_001_Bravo
    @GHOST_001_Bravo 3 роки тому

    Anybody knows why I am getting error in
    Uv = primuvconvert(1, uv, 0, 10);

    • @Entagma
      @Entagma  3 роки тому +1

      what error are you getting? Maybe because you have a capital U in Uv?

    • @GHOST_001_Bravo
      @GHOST_001_Bravo 3 роки тому

      @@Entagma ok let me check ..

  • @dreamagery
    @dreamagery 3 роки тому +1

    Intelligent design = God.

    • @alexjenter5003
      @alexjenter5003 3 роки тому +1

      Interesting as a single equals sign is generally used for assignment in most programming languages and not as boolean equality check