Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by Zybrand

  1. Retime Fluid Mesh

    Hi Zinogino, What you are trying to do will never work. The fluid mesh is an arbitrary mesh and the point numbers will be in different and in different places every frame, as far as Houdini is concerned it might as well be completely different shapes so there is nothing to interpolate. That is why you have to transfer velocity from points as well. If you want to retime the simulation you will have to do it before you mesh the fluid. Hope that helps. Z
  2. Collapsing to a material instead of a sub-net did the job thanks
  3. Hey guys, I am having trouble converting a SHOP setup to the MAT network. I am sampling colours from a cached point cloud to change the surface colour and it works as expected in the SHOP network if I promote the pcopen file and pick a sequence. But it doesn't work in the MAT network, if I leave it as a flat network there is no where to promote to and I get the "time dependent warning" and putting the setup in a subnet and promote that still doesn't work. I either get the first frame of the cache sampled or nothing at all. Is it because the MAT network is just a massive VOP? And is there another workaround? thanks, Z
  4. Pop Grain issue! Please help!

    Also grain has a built in speed and acceleration limit you can use. And uping the drift threshold might help with you sim as well.
  5. Mercury spilling using flip

    Have you tried using surface tension?
  6. Why no beer tutorial?

    OK that is fair enough, I thought you were saying that you were researching beer specifically for a long time. I used Realflow before I moved to Houdini haven't used it in a long time though but its SPH liquids are probably better for beer than FLIP. But since this is a Houdini forum I'll stop talking about other software. A good place to start would probably be variable density with using density by attribute in the FLIP solver. Or you could do the foam as a secondary sim after the initial flip sim. simple_beer_zj.hip
  7. Why no beer tutorial?

    If there is almost no info how have you been researching this area for a long time? To answer the why no tutorials question, my best guess it that traditionally the strength of FLIP fluids is in doing large scale water simulations and it is easier to do out of the box. Apart from more viscous small scale simulations large water sims is what more people use it for equaling more large scale sim and more large scale sim tutorials. Surface tension out of the box for example is a new feature so you won't have much tutorials on it. I am not saying you can't do good small scale fluid like a glass of beer, you can for sure. Its just that the main focus of the community has been geared more towards large scale ocean sim.
  8. Hi Phiphat, Sounds like you narrowed down your problem to the "Flatten Geometry" section of the Particle Fluid Surface. You mention that the problem happens at different frames with different particle separation values but does it consistently happen at the same frames at the same resolution? If so that eliminates any sort of ram limit issue. If you dive inside the Particle Fluid Surface you will find a FLATTEN subnet which handles the bounding box and flatten geometry calculations. In there VBDs are being edited and merged together with a VDB combine using SDF difference and another using SDF union. That is most likely with your problem is because it looks like on of those VDBs are being calculated wrong and subtracting the whole fluid surface on those frames. The simplest thing to try first is just to adjust your bounding box size and see if the problem persists.
  9. super stretchy flip

    This might be a good place to start Houdini Tutorial: Elasticity
  10. Granular Sheet - Can't Rip the Mesh

    @Skybar Nice one! getting the attribute as part of the sim handy. And good idea to just use the attribute copy to transform the mesh.
  11. Granular Sheet - Can't Rip the Mesh

    Thanks Johnny, next time I'll grab one of your setups Hi Alvaro, cool I'll glad it works. Yes I think you understand get it, I am setting the initial amount of neighbours before the sim and getting the amount of neighbours after the sim. You have to set the start neighbours before the 2D triangulate because the amount of neighbours changes and I am calculating the the neighbours after the sim to get the new amount. And then the difference node just compares the the values on the geometry you want to tear. You can probably get better results if you work on the attribute promote -> delete prims part of my setup. That was just a quick test to see if it would work but maybe an edge group can get you better tear lines.
  12. Granular Sheet - Can't Rip the Mesh

    A different approach you can try is to compare the sim point neighbours with the initial point neighbours and use the attribute to delete primitives on the mesh. Have a look at my hip file it's just a quick proof of concept but with some work I think you can get good results with it. granular sheet - ripping it ZJ.hiplc
  13. Stacking, python to vex

    Hey Sessionbeer, Slightly different setup but it works on a detail wrangle: //get start point vector new = point(0,"P",0); for (int i = 0; i < @numpt; i++){ if(i == 0) // skip first point continue; vector scale = point(0, "scale", i); vector prev_scale = point(0, "scale", i-1); //get the height fron current and prev_scale combined new.y = new.y + ((scale.y + prev_scale.y)*0.5); setpointattrib(0, "P", i, new); }
  14. thin-walled container in flip simulation

    Someone correct me if I am wrong but the reason for the vdb proxy from sops is because vdb is no currently supported in dops but it still creates a better collision sdf than ray intersect with less errors and faster. Calculating the vdb in sops and converting it in dops is faster and more efficient that calculating the collision volume in dops especially if the vdb is cached as well.
  15. thin-walled container in flip simulation

    Hey Sekow, Here is a working solution but its a bit on the slow side: video test I also changed your collision object to the static object method with volume sample. The way you were doing it directly updates the velocity field and can easily get unstable and error a lot. FLIP really isn't made for very thin colliders but with the changed settings and cranking up the substeps I got it to work. Another simply cheap that would run faster would be to animate an extrusion. So that the collision object only gets thin once the spill happens. Cheers, Zybrand b1_zj.hip
  16. len function not working (vex)

    Hi Blacklisted_Guy The len() function is not the problem it's the array attribute you are calling in the function. You already declared it in the line above so now you just have to write the name: int pointCount = len(curve); Because if you write int curve[] again you are making a new attribute with the same name as the first one that already exists.
  17. Distance on Mesh

    Awesome thanks Petz! I get it now
  18. Distance on Mesh

    I still don't see a difference in vec_v with or without the * mat so does that mean vec_v is already on the plane defined by the normal? But I can see the difference it makes further down where you are calculating sort_val so I can see the results but I don't fully understand it :). What is the matrix you get from outerpoduct of a vector and itself? Is it the normal direction in matrix form and subtracting that from the ident() gives you the plane you want to project the vector too? thanks, Zybrand
  19. Distance on Mesh

    Great example Petz thanks. What is the outerproduct function and matrix multiplication for it the first wrangle node? It does not seem to change any of the attributes when I remove it.
  20. Good to know. Thanks for the heads up Sebkaine
  21. Hey guys, I am using a foreach block in a solver sop but the foreach causes my point orders to changes, if I bypass the the foreach my point order stays intact as the points accumulate. In the foreach I am using a static point attribute that exists on the points before they enter the solver, and in the solver I want to use the attribute to apply different transforms to the points based on geometry with a matching attribute. Everything about the setup works apart from the point orders changing as the point increase messing up my system later down the line. I attached a simple example to illustrate the problem. Any ideas for what I am doing wrong or could do differently? Thanks, Zybrand foreach_point_order.hip
  22. Thanks for the help guys. acey195 thanks for reminding me of the sort sop, so handy but I always forget about it. Your solution is clever but it does not work in my full setup because I am applying forces to the points and I can't have it re-sort in the solver each timestep. F1 the delete sop iteration was a typo on my part in the example file, I see I didn't even write out the expression properly on that one, my bad. Thanks for the explanation on splitting pieces and merging them back that makes sense. I changed my setup to calculate unique point ids for the points when they first enter the solver and I am using a sort sop after the solver to sort the point numbers according to the ids. Attached is my setup with moving points. foreach_point_order_fix.hip
  23. Hi Andrea, Had a look at your scene and I think you can get better result not using the splash tank setup you currently have there. I made an example setup for you with a flat tank and a optional velocity volume if you need waves. Then I made some changes to your collider like adding timeblends so you get the correct sub-frame positions for your collisions. I only ran a very lowres test on a few frames to make sure everything works so you will have to run the sim your self to see if the results are what you are looking for. cheers, Zybrand sub_tests_AL_zy.hip
  24. Don't think surface extrapolation would cause that. The velocity smoothing is high though keep that at default for now. Well particle separation is relative to the size of your domain so you can't just compare 0.065 with 0.15. Igor's domain is a lot bigger so there will be more voxels and particles even with 0.15. You can test it for your self scale your domain up to be double the size but keep the separation the same and see what happens. Any chance of sharing a .hip file? would be easier to find a solution if the setup is clear. Cheers, Zybrand