Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


ThomasPara last won the day on December 2 2019

ThomasPara had the most liked content!

Community Reputation

75 Excellent

1 Follower

About ThomasPara

  • Rank

Contact Methods

  • Website URL

Personal Information

  • Name
  • Location

Recent Profile Visitors

1,098 profile views
  1. Removing Points on corners

    instead you can use a pointwrangle, input your points in the first input, and your cornerpoints in the second. int nearpt = nearpoint(1,@P,0.0001); if(nearpt >= 0){ i@group_corners = 1; }
  2. Removing Points on corners

    Set your sphere to mesh or polygon.
  3. Birthing particles dynamically

    Since you already have a solver, you can set a "active" state there. Particle_Growth_example_fix.hiplc
  4. Propagating point creation with VEX

    Thats because your current_pos always get set to (0,0,0) Since you already have placed your point based on a vector, you dont need to "figure out" that vector again, it will only become the same vector. You can just offset with the same vector over and over again. You can then use the function "sample_direction_cone()" to vary your vector.
  5. Create rotation control for polywire

    The setup breaks if you move it outside of origo. Did some minor changes to it. orient_polywire_sweep_fix.hipnc
  6. Leaves on objects

  7. Propagating point creation with VEX

    You cant import attributes from points that are created in the same wrangle, you will only get values from the wrangle above. And if you want to store attributes to a point you create you need to use the handle you have created. ex: setpointattrib(0,"attrib",newpoint,value,"set"); I think you might have been overthinking this one. vector up = set(0,1,0); vector this_pos = @P; int samples = chi("samples"); for(int i = 0;i<samples;i++){ this_pos += up*chf("lift"); int newpoint = addpoint(0,this_pos); } You can use this as base
  8. You can make new primitives based on the points you already have. Connect them all and then compare if you have duplicates. Sometimes you have to do operations over several wrangles. NoDuplicates_01.hip
  9. Custom Velocity for Fluids - Using Normals

    You can make the particle field yourself and then source that. PaintBlob_fix.hipnc
  10. Poly Carve SOP

    Yes i understand, its not an attack on the solution(s). Its more the idea of cutting a segment several times without adding points. Since both metodes shown here (from my understanding) only can cut once between two points.
  11. Poly Carve SOP

    Did an experiment with subsampling the curve instead of adding extreme amounts of points to get precision. The downside is that you cant predefine the cuts with your own attribute. clip_by_noise.hiplc
  12. What is the difference between npoints() and point()?

    npoints() gives you the number of points the input have. point() can give you an attribute value from a specific point. If you write the function in vex you can put your mouse over the function and hit f1, then a helpcard will tell you what it does.
  13. int primpts[] = primpoints(0,@primnum); matrix3 m = ident(); //here you could use your own base matrix foreach(int index;int i;primpts){ //create direction vector, can be replaced by a predefined vector int forward = 1; if(index == len(primpts)-1){ forward = -1; } vector this_pos = point(0,"P",i); vector next_pos = point(0,"P",primpts[index]+forward); vector dir = normalize(next_pos-this_pos)*forward; setpointattrib(0,"dir",i,dir,"set"); //align matrix vector matrix_z = set(getcomp(m,2,0),getcomp(m,2,1),getcomp(m,2,2)); matrix_z = normalize(matrix_z); float angle = acos(dot(matrix_z,dir)); vector axis = normalize(cross(matrix_z,dir)); rotate(m,angle,axis); //convert to orient vector4 orient = quaternion(m); setpointattrib(0,"orient",i,orient,"set"); } Put this code in a primitive wrangle and you will have parallel transport, you can evolve this into a bigger asset.