Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


3dome last won the day on August 2

3dome had the most liked content!

Community Reputation

68 Excellent


Personal Information

  • Name
  • Location

Recent Profile Visitors

1,867 profile views
  1. Transferring velocities from particles to RBD pieces

    i made a couple of changes to your scene (see red nodes and comments) BaseFile_ProofofConcept_v2.hipnc
  2. Strange results transforming pieces with primintrinsic

    well it seemed to be a weired bug or something. just tried it again without the promote and the dopnet complained about missing required point attrib 'name' so I didn't see any geo in the dopnet. The same thing happended when I opened your scene back then. Anyway, I disabled the promote and to force the dopnet to evaluate the geo I turned on Solve on Creation Frame and voila it works. Even then turned off that checkbox again and still working. Also transform pieces sop works.
  3. Python in Houdini Question

    have you tried geo.setSelected(1,1)
  4. Script callback on a button

    the callback itself works fine for me. only thing is it always returns "deleted" even if i hit cancel. I usually do stuff like that with python so I can't help you with that, sorry
  5. Disable Hdr reflection

    just a small but important thing to note: the way it works is you choose for example reflection as light contribution but then you actually need to turn off the checkbox so it wiill NOT contribute
  6. Kill Flip particles

    on the flip solver, particle motion tab -> Behaviour there is the Reap Particles option should do the trick Edit: You might need to tick on 'age particles' aswell
  7. Custom attribute in a for each loop

    No. The point number is 0 because the loop runs over each point of the grid, so for each iteration there is only 1 point => ptnum = 0 That point has your effector attribute, which is read by the point()-expression in the transform SOP to modify the box size. Then it gets copied onto the current point's position. Iteration done. Next iteration: same process but new point => different effector value, different position to copy the box to. After the loop has run through all points of the grid, it outputs the merged boxes as the result. You can still use the transform for that. If you have a vector attrib called effector just change the attrib_index in the point expression to 1=y and 2=z In 16.5.536 when I tick on Pack and Instance it keeps the color. Previous version had some "issues" with displaying packed color, apparently SideFX now made some changes. Anyway, if you unpack your stuff later the color attrib should be back.
  8. Custom attribute in a for each loop

    there is no attrib called effector on the detail level, thats why it's not working use point() function and point it to repeat_begin effector_v004.hip
  9. Strange results transforming pieces with primintrinsic

    here you go. the effect for some reason starts around frame 65 Angel_goes_toheaven_cleaned_transformPieces.hipnc
  10. creating noise in glue strength

    f@strength = @Cd.x;
  11. Strange results transforming pieces with primintrinsic

    I tried it with your scene yesterday and all i changed was to promote the name attrib to primitives (keep it on points too) right before sending the pieces into the dopnet. Then transform pieces worked fine for me. If you cant get it to work I can send you the modified file on monday
  12. Strange results transforming pieces with primintrinsic

    is there a reason you don't just use tranform pieces SOP?
  13. Pop Collision Ignore + Grain Solver

    @ParticleSkull tricky question, but I think I found a way. According to the docs the gas collision detect just stores the collision information into attribs instead of manipulating the points. I make use of that by setting those attribs back to 0 for points that are supposed to ignore the collision with a certain collider. I didn't test it with millions of grains, but this hack might be not as efficient as a clean solution (which I didn't figure out yet) since it still computes the collisions for all points. grains_avoid.collision_1.04.hiplc
  14. Pop Collision Ignore + Grain Solver

    To the eye the results may seem the same, but the data tells you that they are not. there is a difference. From a quick investigation the reason it looks the same is because the explicit constraints take over detecting the collisions but even with them turned on you can see a different behaviour in the attached scene (the disabled one has a springy motion to it) [if you disable the constraints AND the final collision test, you dont get any collisions (apart from Internal Collisions) anymore, because now all possible detections are bypassed(gas coll detect) or turned off (constraints & final coll test)] It gets way more noticable if we turn off the explicit contraints (leave final coll test on): (1)- disabling the gas collision detect: you can see that both objects blow up. the cube because it is meant to when hitting the box but also the sphere because it is getting in contact with the cube and the Internal Collisions affect the sphere's particles (2)- modifying the group membership: you can observe that while the cube blows up when hitting the box, the sphere passes through everything untouched (and it of course affects the cube's particles). This is because all those pbd collisions make use of the __pbd_group and in (1) all the particles are in that group while - as said - (2) excludes the sphere's ones @ParticleSkull: so i guess the problem is when 2 grain objects hit each other and you have disabled the gas coll detect you get an unexpected behaviour grains_avoid.collision_1.03.hiplc
  15. Custom VEX function input type

    it's called function overloading. for details see http://www.sidefx.com/docs/houdini/vex/lang.html#functions this is a quick basic example where VEX determines which function to use based on the argument types you feed to the function int func(int a; float b){ return int(a*b); } float func(float a; float b){ return a*b; } printf("value is %d", func(2.0, 2.75)); //change the 2.0 to 2 to see the difference