Since no one reads those comments of mine, I can let me go freely. @13:01 Here is what I think. If we have 3 objects in the collection the result of the max-min node will give us the 3 “length” of the boxes that I name a,b,c respectively. The “Evaluate at index” node has to outputs: Leading and Trailing. If, for instance, the index is 2 Leading outputs a+b+c and Trailing will give a+b. Mixing them with 0.5 factor will result in (a+b+c+a+b)/2 = (2a+2b+c)/2 = a+b+c/2. i.e. length of the first+length of the second+ half the length of the third, which is exactly what is needed. You can make a diagram with 3 boxes to see how it works. A very elegant solution. Bravo.
@johnsmith569206 ай бұрын
The subtract at 16:01 gives us the “length” between the object geometric center and the actual object’s origin. This works because the object’s origin is always at world’s origin (0,0,0). Probably because we are in the Original mode in the “Collection Info” node.
@johnsmith569209 ай бұрын
Thanks for that. Very useful in itself and packed with ... useful tips on how to use nodes that I didn't even know existed. For those who like to understand everything, the "MIX VECTOR" node outputs the barycentre of A and B. Namely the output is (1-fac)*A+fac*B.
@UTubeSuhail2 жыл бұрын
Thanks for this Erin! Yess definitely would love to learn how to rotate instances as well. If it's not too much trouble.
@Hoothis2 жыл бұрын
You're a lifesaver, I am going crazy with my asset library looking like a desktop without grid snap.
@brianhanna347 Жыл бұрын
Just what I was looking for. I'm building a sidewalk with wide and narrow collections of blocks that are random Y depth. I was trying to find exactly this info... how to pack them. The trick of using vector multiply by e.g. 0,1,0 instead of separate, combine is great, I like that. I'm starting to get the feel of instances, transfer, capture attributes, but still a little fuzzy. Great demo, keep it up!
@Erindale Жыл бұрын
Thanks! Good luck with your project!
@marcelmarxer9622 жыл бұрын
i have a "rotate around custom pivot" for each axis, chainable. super handy if you can't / don't want to turn meshes into instances. took some time to set up the nodes, but it comes in handy in certain cases
@miiw Жыл бұрын
That's amazing, thank you for that! I wonder if anyone had any success using the packer on surfaces with a scaterer? Bounding box info could be useful to prevent objects from overlapping.
@CybranM2 жыл бұрын
These tutorials are soo good, great job!
@Erindale2 жыл бұрын
Thanks so much!
@vstreet7583 Жыл бұрын
Great tutorial. Absolutely fascinating. Thank you! Dg
@Erindale Жыл бұрын
Thank you! Definitely getting into some pretty esoteric stuff here
@chrisjames6424 Жыл бұрын
This is great, was able to make it through with my little brain. Currently trying to figure out how to scale instances along the curve and I'm not able to figure it out. I was told I might need to use sample index in 3.4 to achieve it (I'm still in 3.3).
@Erindale Жыл бұрын
If you're scaling along the spline and you still want to pack them then you're going to need to plug something like a vector math scale into the scale socket of the Instance Packer and use the Index node into the float socket of the scale and then you can set the vector as what the scale is multiplied by for each instance. It can't respond to the curve unfortunately with this setup because the position along the spline needs to move per instance size so if it moves, it's a different spline factor, and then different size, and then it'll move again. That's something that would need to solve rather than calculate directly.
@chrisjames6424 Жыл бұрын
@@Erindale this makes sense thank you. It’s a problem that’s far more difficult than I’m capable of handling at the moment. I could perform a rough descending scale along a single curve, but not multiple curves without a bit more effort(and learning😅)
@TheFeto669 ай бұрын
Great tutorial and as always really well explained! Such an inspiration. Can you give some tips on how to pack not only in one direction, but in a multiple? For example to pack randomly rotated objects within XY grid.
@Erindale9 ай бұрын
I’ll have a look into doing it but it’s very not straight forward. UV packing is one of those computational problems that doesn’t have a perfect solution so you have to try and solve for it. Although I wonder if the UV unwrap node would actually solve the problem for you 🤔
@ruslandad365 Жыл бұрын
Great Tutorial Thanks!!!
@yannterrer9 ай бұрын
Thank you so much Sir, very clear and complete tutorial. Looking forward to show you the result of my research after your lesson;)))
@yannterrer9 ай бұрын
trying to do a Beads lace, worked perfectly well in 2D curve but when you move to 3D curve, instances stay horizontal, how to make them following the curve tangent? (Next Tuto maybe)?
@karimsulimanbakheit72943 ай бұрын
Super good tutorial! I'm learning a lot about geo nodes from you already. I'm having trouble with having the next object in the collection starting at the end of the previous instance. Currently its just starting at the origin of the previous instance instead and I can't figure out why its doing that. I'm sure I am missing something significant but I have no idea what I am doing differently. Any help is appreciated!
@CNG48900 Жыл бұрын
Great video Erindale! I'm trying to use a slightly modified version of the instance packer node group to scale instances to fit face size, but I can't seem to figure out how to obtain more than just two values to use to get the scaling factor.
@ykchloet Жыл бұрын
Hey, this is a great tutorial. I've run into a problem though. Even though I have followed the tutorial and done exactly the same things, my instances don't seem to be sitting exactly next to each other like yours. They seem to still be evenly spread out (I have made sure to plug in the collection into the bounding box). I'm not sure what is causing this issue. Also, I am using Blender 3.5 (Not sure if there's a lot of difference?)
@Erindale Жыл бұрын
Hm can you email me your file and I'll take a look 👍
@ykchloet Жыл бұрын
@@Erindale Will do!
@JohnWesleyDavison2 жыл бұрын
Love this, but I'm having some trouble following the cursor. Could you make it larger?
@Erindale2 жыл бұрын
I can literally make it double the size 😂
@jeffreyspinner54372 жыл бұрын
I take his videos into Davinci, add a power window and track his cursor and reduce it 2x and it works for me... the render time isn't so bad. Makes the nodes look weird at times as the pointer rolls over things though... but I suffer for my Art, like everyone should. 😶🌫
@monkmichel9477 Жыл бұрын
I was trying to make a geo node image viewer/arranger and ran into the problem of getting the width/height of every image using a bounding box without manually indexing every image separately, creating a mess inside geo nodes. And what do you know, Erindale has the solution once again, thx man!
@zeloshh11 ай бұрын
Many thanks for this tutorial, is there a way to get the number of the points before setting the position and deleting the geometry based on the compare selection? Just thinking performance wise... How I can get the number of the instances/points at given length before setting the number of the points? I am still fresh in geo nodes and cannot find the way so far...
@Erindale11 ай бұрын
You could set the position after the delete. Ultimately it’s the accumulate length result being compared against the curve length that is setting the number, so just delete and then domain size for the count. You can then do all of the rest of your position etc afterwards.
@zeloshh11 ай бұрын
Thanks, setting the position after deleting helped, now there is no timing/performance impact. When I have 99 or 999999 points at the start, the timing is the same.
@marchjohnmoodyАй бұрын
I can't figure out how to add the temporary viewer to the Group Output as shown at 2:58. I press Shipt + Alt + LMB and get a "Viewer"that is a separate node.
@ErindaleАй бұрын
It’s the same functionality it’s just that the viewer is more adaptable
@AxonMediaSeattleАй бұрын
I followed this tutorial very closely, but with primitive objects. Oddly, I'm still getting object overlap when toruses (torsi?) are involved, but I have no idea why.
@ErindaleАй бұрын
That’s definitely an odd one. Is it specifically toruses… tori that are causing the issue? Does it only affect while a primitive? Do cylinders have the same issue?
@AxonMediaSeattleАй бұрын
@@Erindale It's mostly toruses or any object next to a torus. I'm going to move on to the custom bounding boxes tutorial and hope that fixes it. BTW, love your Geometry Nodes courses on Canopy! The pacing and thorough explanations are just what my programming averse brain needs. I finished the basic one and am moving to the advanced course.
@AdnanRobyn5 ай бұрын
"Field at Index" has been changed to "Evaluate at Index".
@johnsmith569206 ай бұрын
@14:42 Why is it that we use the “Accumulate Field” on the point domain and not on the instance domain? Is it because the input is a vector (therefore very much a point) or is it because the end of the line is plugged into a “Set position” referring to points? On the whole, I don’t think you need to explain the maths (we can find them easily on the internet) but explain a bit more of the Blender innards (after all that’s why we are watching a Blender tutorial) OK, anyway, thanks again.
@Erindale6 ай бұрын
Because the accumulation needs to count up per point, not per instance
@johnsmith569206 ай бұрын
@@Erindale Ok, but why does it works? If I use the instance domain I get 0,0,0. Do we ALWAYS need to plug the accumulate field with a point domain?
@user-ow1bn6qv8q Жыл бұрын
Can this be generalized to 3D volumes?
@Erindale Жыл бұрын
Not really. There are other algorithms you'd want to implement to do that
@shmuelisrl2 жыл бұрын
10:59 I think that the attributes only don't come through when you use the pick instances method
@Erindale2 жыл бұрын
This is true yeah but it does mean you need this long winded workaround when you need instances which is just off the time for my work 😩
@PCgmesforever Жыл бұрын
what?! 20:40 indeces can be negative?
@Erindale Жыл бұрын
Default indices shouldn't be but you might have remapped them for some other operation. In theory I could have set that default value to -1 and most of the time that would be fine but you could break something sometimes. Negative indices work just like in python so they'll cycle through the options in reverse
@ajuelee Жыл бұрын
您好,您课程中的隐藏式字幕可以翻译成其他语言吗,因为我的母语不是英语
@Erindale Жыл бұрын
There are captions in simplified Chinese. They are automatic translations so I can't guarantee the language is perfect but you should be able to follow along with the video.