Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

3 Neutral

About JKeil

  • Rank

Personal Information

  • Name
    Justin Keil
  1. Hello! Can a point wrangle access sop attribute values not directly connected as inputs? The function in question is the point function. Scenario: I am driving the y position of an object "grid1" by the length attribute of sop "seg_length_height" Right now I am using point("../seg_length_height", 1, "length", 0) and putting this in the translate y scale of a transform sop. I would like to do this in a wrangle So I tried to copy and paste this into a point wrangle with a few modifications and it did not work. @P.y = point("../seg_length_height", "length", 1); If I do the following it of course works @P.y = point(1, "length", 0); provided the "seg_length_height" is hooked into the second input. Is this just the way the wrangle is set up? or am I referencing the oppath incorrectly? Thanks! modeling11_upl.hipnc
  2. Thanks Noobini. Perhaps in part----the issue is I still need manual control over each point position--with a simple p scale rig ch rig added on to your solution, I have some control, but it is not precise. I would need to be able to specify that floor one sits at 25meters, floor 2 at 34 floor 3 at 36. All the way up to 60 floors if need be. It would be a lot easier if the floor heights were consistent, but they are not. Here is the thing--if Im building all these buildings myself, it would be okay really, the majority of the buildings are below ten stories. But I wont have the digital asset setup the way it is requested if I cant generate as many floors, and their differing heights on the fly as is desired.......
  3. Hello! Is it possible to have a digital asset that generates a series of nodes within the subnetwork based on user input, and merges the nodes into the final output? This would be an example asset-- Generate a user specified number of add sops, with one point each, each connected to an attribute wrangle, and then merged into a final output. Within each wrangle would be the following code snippet: @P.y = ch('point_1_ypos'). If there were three add sops, then there would be three wrangles with the following code @P.y = ch('point_1_ypos'). P.y = ch('point_2_ypos'). @P.y = ch('point_3_ypos'). Then they would be merged into an ouput. The channels would be promoted up to the digital asset level for quick access. To do this manually I would just add a series of add nodes, append a point wrangle to each, and then set a quick wrangle up with the following @P.y = ch('point_1_ypos'). @P.y = ch('point_2_ypos'). @P.y = ch('point_3_ypos'). And then do this over and over. Id like automate this a bit if possible. Any suggestions would be awesome! Thank you! -i know in this case the channel name wouldnt matter, but in a digital asset Im pretty sure it would. The goal here if your curious, is being able to quickly dictate the number of floors and their heights for parametric building creation. Ive created a really simple manual setup file for your perusal. Many thanks! Im really inexperienced with digital asset creation, and I understand that this might be a difficult task. Any tips on where to start would be appreciated-- i am a bit familiar with python as well, and know a decent amount of vex. Asset_test.hipnc
  4. Edit-- Noobini realized you posted a loop solution while I was working on it myself.
  5. Many thanks Noobini. I used your partition sop, then a name sop to transfer the groups to an attribute value. Then I looped through this 'polyext' attribute. Ive attached the file and a pick in case it will help anybody else. Modeling5_v002.hipnc
  6. Hello! There are few specific objects on a model I was inspired by that I want to recreate in houdini procedrually (see pic). Im stuck at the moment. I need a way to generate a series of primitive groups on a tube procedurally, and then apply the same poly extrude to each group. Seems like a classic case of looping. One group would be primitives 0-23, next would be 24 to 47, etc ,etc. but I dont know how to generate this groups. My thought is using a rule in the partition sop--but how would I set a rule such that it concatenates and generates pieces for every 23 primitives? This value (23) will change by the way, and is dependent on the number of rows in the circle sop I am sweeping along the curve (see pic). This means I would also need this value 23 to be linked via channel to the circle sop within this procedure. Hopefully this isnt confusing. Please see attached. Many thanks! NOTE: As an aside I did find a bizarre way around this--the setup is in the file. I realized that when Houdini does a poly extrusion, the new polys are added onto the geo before the original primitive (structurally speaking). All this means is if you set your group to say primitives 0-22, and perform an extrusion, you can just duplicate this node multiple times and get a series of organized poly extrusions along the length of your object, without changing that 0-22 value. Bizarre, awesome, but still REALLY redundant, which is why id like to set up a loop structure. Thanks again Modeling5_upl.hipnc
  7. As you just said, I now realize that the problem wasnt as much the approach as the values. The number value I needed was very specific. After the zero value faces were deleted, I needed a number slightly less then the maximum as a filter: too far below the value and I would have no result simply because the areas of the primitives were all fairly close value wise to the maximum). Slightly above the maximum and I would obviously have no primitives left at all! I added a channel to replace the /2. In the future, I will utilize the min or max field set up you have here--and include braces . Many thanks for your help! Ive attached the result and a pic-- I used this setup to then apply a geo setup along the uvs of another geo--inspired by the entagma fabric tutorial Modeling_03_Projection_pul.hipnc
  8. Thanks ikoon-- reinforces the idea of being able to at least delete prim values set to 0. I just dont understand why I cant delete by a range of values more arbitrarily-- why would I have to specify a value that already exists within the attribute? This value might change depending on parameters
  9. Hello all, I am trying to remove prims by an attribute value, here prim attr area. I understand you can do this with a blast, a delete, or a primitive wrangle. I have tried all the methods, decided on the primitive wrangle, and for some reason I cannot delete by the attribute @area (calculated in a measure sop), unless the condition is @area == 0, which is not what I want. Code is really simple, Im just confused as hell as to why it wont actually work. I have a primitive @area attribute then run the following if(@area < .1) removeprim(geoself(), @primnum, 1); What gives? Please check scene file if you can! I have used this setup in the past successfully, it doesnt seem to be working here. Many thanks! Modeling_03_Projection_upl.hipnc
  10. Create Group For Each Point

    Thanks Sepu. I used the partition after the copy sop, converted this to a ppoint group, then skinned the object, and then converted these points to edges prior to beveling. The reason I wanted individual edges groups was so that I could create costume bevels per each edge- and not have the system break if I change the number of points on the line I was copying to. Ive attached the file. One more question though. If I convert a group from Prims to Edges, is there a way to rename the new groups? So Prim0 becomes Edge0, Prim1 becomes Edge1, Prim2 becomes Edge2, etc,etc? Group_per_Point_Upl2.hipnc
  11. Hello! Two things! 1) What is the fastest way to create a separate group per point, while having control over the group name? I have a simple curve I've built, and would like to store each point in its own group. My thought is to create a for loop in a point wrangle, and then generate a group per each loop. I know how to build loops, but I dont how to builds groups with incrementing names within a loop ---as....strings...... Naming conventions could be something like for ptnum 0 - Point0_Group, for ptnum 1 - Point1_Group, for ptnum 2 - Point2_Group. etc etc 2) ! I then would like to convert these groups to Edge Groups down stream, if possible, after making instances of the curve, and sweeping along its length. (See file--itll make more sense) The file is really straightforward, and shows the two things Id like to have in note form. The pic should help as well Many thanks Group_per_Point_Upl.hipnc
  12. Hello! what is the correct syntax for correctly declaring an empty matrix3 in vex? Atypically most people just use matrix3 mat = ident(); Can I decalre a matrix the same way I would a vector or float? (I just want to see all my variables on the spreadsheet while working through some code ) Example @N = {0,1,0); @f = @ptnum; I can see these on the spreadsheet matrix3 mat = ident(): I cannot Also, what are the technical terms for one versus the other? -- local attributes (no @ symbol) versus global variables (@symbol)? Thanks!
  13. Thank you very much f1480187. Im gonna look into dihedral() for my own mathematical purposes, but your alternative solution works perfectly. Many thanks for your help!