Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


catchyid last won the day on November 20 2016

catchyid had the most liked content!

Community Reputation

28 Excellent

About catchyid

  • Rank

Personal Information

  • Name
    Khaled Abdelhay
  • Location
    Montreal, QC

Recent Profile Visitors

1,784 profile views
  1. Pyro: Loosing Velocity in sim?

    Hi I have a pyro sim where I add a preroll velocity noise, my goal is to make density move quickly once it's injected in the simulation (i.e. I don't want to wait couple frames before I see density moving, note: density has a velocity field as well, but it takes also couple frames to move the smoke). Anyways, something I've noticed, when I add the pre-roll velocity noise field, it modifies the sim velocity field then quickly die or damped? is this normal? Thanks,
  2. Example for Deformation Wrangle SOP VEX?

    Thanks, I see a sample code. What made me initially curious is: If this node runs vex code on points to deform them, then why cannot just use a normal point wrangler? Also, I need to check the derivatives option because I am not sure how to use it. Okay, I admit, I need to read and test more
  3. Hello, I am doing a mesh deformation and found this SOP node "Deformation Wrangle" which runs VEX code, does anyone has an example on how to use it? I use lots of vex wranglers, but never seen this one before? Thanks,
  4. Hello, I am trying to understand what is the difference between pretranslate and translate (in order to understand the code below which applies points transforms to RBD primitives). Note, in the code below, orient, pivot and P attributes come from the points attributes matrix xform = qconvert(orient); //convert quaternion into 4x4 rotation matrix, checked and 4th column is [0 0 0 1], i.e. no translation pretranslate(xform, -pivot); //what does it mean? maybe xform= -pivot * xform *pivot translate(xform, P); //does it mean xform = xform * P, i.e. just add the translation component to the existing one in the matrix? v@P *= xform; //-- I have a question: I assume Bullet uses center of mass for rotation, hence we have "pivot" attribute? and "P" is just a pure translation in world coordinates? Thanks,
  5. Hi, I did a quick test where I have a guided box that is controlling a car model. Glass (which has glue constraints), works fine with guided box, basically it breaks on collision. However, the car body which has soft-constraints bounces a lot on collision and keeps on oscillation. Is this behavior normal (i.e. guided animation forces soft-constraints to bounce)? The goal is to deform car body, hence I am using soft-constraints... Thanks,
  6. just if someone is interested, I got an answer from SideFX support: matrix xform = qconvert(orient); pretranslate(xform, -pivot); translate(xform, P); If you're applying that to a piece that already has a transform, its new transform would be `piece_xform * xform`;
  7. Organic magical shapes?

    just an update if someone is interested, I am still testing though. In summary, I created velocity fields (e.g. directional + curl noise) and advected particles using the velocity field, convert particles to fog --> this got some organic shapes. I will keep testing but the start looks promising...
  8. Organic magical shapes?

    Hello, I am trying to create an organic animation like the images and youtube link attached, but I am not sure how to create these organic shapes? I am not talking about the smoke sim, I am talking about "head" or the "first" part of the animation (see attached images, yellow arrows), the problem is that these parts have no uniform shapes, sometimes they look particles, sometimes like triangles, sometimes like wispy smoke! Note: parts with green arrows look more like particles which is easy... Any idea would be really appreciated
  9. How to have metaball effect without using metaball?

    Thanks Never used this node before and it's very nice I was going into different direction by scatter points inside meshes, then skin using FLIP skin node with Gaussian filters...but your method is waaaay better, thanks again
  10. Wow, it's simpler than I thought Thanks If somebody has a vex solution it would be a great too... Once more, thanks for your tip
  11. Hi, I have some moving meshes, they don't intersect, but sometimes they get close to each other. Is it possible to automatically have close meshes "combine" or "merge" similar to how metaball merge when the close to each other? Thanks
  12. Hello, Trail sop can be used to replicate a point based on previous positions. However, Is it possible to distinguish replicated points, e.g. having a point attribute that says: I am the "original" point, I am the "second" point, etc.? Attache is a simple file ( my goal is to vary a polywire width such that "first" point is thin and "last" one is thick) Thanks trailTest.hip
  13. Hi Tomas, Yes, I was talking about VOP "Make Instance Transform" (which uses point attributes t,p,r,s and builds a transformation and apply it on primitives). I was able to get the right translation and orientation when I am copying from Bullet simulated Primitives to Packed Primitives as (below is point wrangle, 1st input is packed primitives, 2nd is bullet simulated primitives): //NOTE: code below is not mine, just batching pieces from this forum! matrix pft = primintrinsic(1,'packedfulltransform',@ptnum); //set translation---------------- @P*=pft; //set rotation------------------- vector t,r,s; vector pivot = point(1,"pivot",@ptnum); cracktransform(0,0,pivot,pft,t,r,s); vector e=set(radians(r.x),radians(r.y),radians(r.z)); vector4 q=eulertoquaternion(e,0); matrix3 m3= qconvert(q); setprimintrinsic(0,'transform',@ptnum,m3); //OR another method //matrix3 xform = primintrinsic(1, "transform", @ptnum); //setprimintrinsic(0,'transform',@ptnum,xform); HOWEVER, If I am copying from points which have t,p,r,s to packed primitives, I don't get the translation right (99% bc I am not using the pivot). The code below is for the rotation which runs on a point wrangler and works "correctly". vector4 q=point(1,"orient",@primnum); matrix mat=qconvert(q); matrix3 rot = matrix3(mat); setprimintrinsic(geoself(), "transform", @primnum,rot); But the translation code is buggy: vector _p=point(1,"P",@ptnum); @P=_p; //somehow need to take care of the pivot? I need to use the pivot for the translation but I have not figured it out yet, I would assume the full transformation matrix is : final_transform = s * inverse_pivot * rot * pivot * t Anyways, will test it and see Thanks
  14. Hi, I am doing a RBD simulation, export only points with transforms (p,pivot,r,s) and then I want to apply these transform on the original simulation primitives. My goal is to get the final translation and orientation and adjust them, however I can successfully apply the orient attribute to the primitives (using vex), however I am not sure how to apply translation? I think my problem has to do with the fact that I am ignoring the "pivot", but I don't see any documentation or examples on how to use it correctly? Note: node "Transform Pieces" does a similar effect, but it has a black-box that constructs the full transformation? Attached is the example file that contains the question. Thanks, match_transform_v1.hip
  15. just a quick update if someone is still following , Houdini 18 supports this features out of the box so problem solved...