Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


rayman last won the day on February 19

rayman had the most liked content!

Community Reputation

406 Excellent

About rayman

  • Rank

Personal Information

  • Name
  • Location
    Sofia, Bulgaria
  1. pyro vortex going out of bounds

    You can add single Gas Field Wrangle into the velocity update plug and try something like this: float minrad = 1; float maxrad = 1.5; float velmult = 1.0; vector center = set(0,0,0); vector dir = center-v@P; float dist = length(dir); float mult = fit(dist,minrad,maxrad,0,1)*velmult; v@vel += normalize(dir)*mult;
  2. Sop solver with multiple Bulllet object

    You can add empty data to the object you want to emit in, name that data , then add enable solver after the sop solver and type the same name to the Enable Data parameter.
  3. Happy 10th Birthday Od[force]

  4. Go to geometry wrangle and change Input2 Dop data from 'second' to '$OBJNAME/second'.
  5. Hi, Tim! I'm not very familiar with chops, but there is a quick vex solution to avoid flipping artefacts. All you have to do is to check the dot product between the two quaternion vectors and based on the result to invert one of the vectors before slerp-ing them. Check the attached file - it's kind of a library for proper matrix interpolation I created for my personal projects, and it uses the exact same method. Cheers! Pavel slerpmx.vfl
  6. Hello! I think what we observing here is just wrong matrix interpolation error. I'm not sure if I posted the last version of this setup here, but I switched from computing restP on the fly from pieces matrix to simple pre-computed restP as the results are much more predictable. Fortunately all you have to do is to find these lines: restP = ptransform("space:current", "space:world", @P); restP *= mxinv; and replace them with: restP = v@rest_p; and you should be ready to go. Cheers! Pavel
  7. More collision problems with cloth

    Try to turn off volume based collisions.
  8. FEM - Simulate with Static but Embed Animated

    use point deform after simulation - then you can deform using embeded or simulated geometry. Cheers! Fem Animated Embbed.hipnc
  9. rocket launch

    As far as I know in case of space shuttle there is a very dense pipe system inside them, filled with their own fuel which keeps them cool.
  10. Scaling packed Objects with VEX

    Thanks, man! Good to know!
  11. Scaling packed Objects with VEX

    I gave this a try, as this was something I missed as a feature for a long time and found a really simple solution: just delete the id attribute when scaling to force bullet to update the collision geometry. Not sure if this is the most elegant solution but it looks that it works fine even with sims with constraints. i@id=-1 also works, so you can update it faster using Geometry wrangle instead of SOP solver + wrangle nodes. float sc = 1.01; vector scale = set(sc,sc,sc); matrix3 trn = primintrinsic(0, "transform", @primnum); matrix scalem = maketransform(0, 0, {0,0,0}, {0,0,0}, scale, @P); trn *= matrix3(scalem); setprimintrinsic(0, "transform", @primnum, trn); int pts[] = primpoints(0,i@primnum); setpointattrib(0,"id",pts[0],-1); Cheers!
  12. Modify Constraint Attributes with SOP Solver

    Your confusion comes from not understanding the order of execution. What comes inside SOP solver is the values from previous iteration, they are then passed to Bullet solver and modified by it - thats why values inside do not match the values from DOP network - they are just not shown in the same timestep. Also, keep in mind that "angle" is just a feedback attribute - even if you change it (as far as I know)- it won't affect simulation at all. You need to create vector4 "orient" or vector "r" and set it manually. It is a little tricky but not impossible. Check the docs for more info.
  13. RBD to FLIP, delete piece after feeding it to FLIP

    Nice work, Johnny!
  14. One workaround I found is to create detail string attribute called for example "at" with value set to "@"; Then in wrangle node you can use detail(0,"at") to return @ as string without messing with the attributes. In your case : string grp = detail(0,"at")+"Cd<1.0"; int nearest[] = nearpoints(0, grp, @P, 1); I usually use it to check for closest pieces different from current one: string grp = detail(0,"at")+"name!="+s@name; int near = nearpoint(0,grp,v@P); If it works without @, like Yunus said, then silly me D:
  15. RBD to FLIP, delete piece after feeding it to FLIP

    Well,if you play a bit more with DOPS you'll find that it's not that complicated. Data is usually processed left to right,top to bottom and if there are multiple multi solvers/merge nodes , you have to dive inside assets to find the order of execution. I think they messed it up a bit with "new" POPs, making it a bit more confusing, but if you check inside pop nodes there is usually merge node inside them, so data is still flowing the same way. In this particular case I'm attaching SOP data to flip object and it is computed only once in DOPS ,when the object is created. I'm importing it from SOPs instead of leaving it completely empty, only because I want the "name" attribute to be present at the begining. Thats the whole reason for piecesData->OUT_PCDATA nodes - they are here only for initialization and are not used during the simulation. I think you can also uncheck Use External SOP and put the piecesData->OUT_PCDATA nodes inside InitPiecesData node. Then after new points/pieces are added to flip I check this data (PiecesData) and if new piece is added to sim and not previously present , I add new point with the name of the new piece (updatePiecesData node) to PiecesData . So during the next iteration if some pieces are previously sourced inside flip, I delete them before merge them to the flip sim (/obj/FLIP_SIM/sopsolver1/attribwrangle2). As you can see its not that complex, still second file is much more easier to understand as it is basically the same thing, but instead of creating new data to store the pieces I just use the default Geometry data.