Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

1 Neutral

About sasbom

  • Rank

Personal Information

  • Name
    Womba Abmow
  • Location
    A swamp somwhere in the netherlands
  1. Writing attributes to image file

    Hello! Since I have not seen a hip file for the solution to this problem yet, I've felt the need to post it. There were a couple of major things missing from localstarfights' file, namely correct addressing of the SOP to read the attributes from. Thanks to the people of this thread for letting me know this was even possible! attribexport.hip
  2. Redefining vellum properties on specific frame

    This works. If you really really really want to do it in DOPs, you can do 2 things. 1. Replicate the way the Solver sop does it, pop wrangle into the second input on the vellum solver (particle forces), or 2. Attach SOP solver to post-solve, and in the SOP solver use a point wrangle on the dop_geometry node. Both do generally the same, but you can do a little more things with the second solution. If you need to modify the geo in any way, then SOP solver is the way to go I reckon.
  3. Yes! I got the MDD's working at least. As for the packed disk sequence, wouldn't that generally be the same as using a alembic cache, in the sense that it's basically "replacement animation"? That's a real shame.. There has to be a way to force it in some way, right? From what I know, video games used to work with pointcache animation.
  4. Hello, I'm threading new ground here, trying to "get" crowd sims. I've done particles, fluids, FEM, and RBD so far and I aspire to orchestrate a whole horde of people running down the I was playing with the set up, but I couldn't find out how to add vertex animation into it. I have 2 fbxs that I prepared, of a simple vellum cloth ball that's been retimed to look like its bouncing and jiggling in place. I'll add them to the post. Now, my main question is about how I'd go about getting that info into the agent. Is it even possible? The whole crowds system seems to be awfully "bone centered". One solution I could think of was to use the game tools skinning converter, but that is absolutely sub optimal, as I'd lose the wrinkles of the ball. I saw this thread: https://forums.odforce.net/topic/32029-crowds-with-marvelous-designer/ In which user ATOM pointed out you can use MDD caches, but if that's the case, how do you generate a .mdd, and integrate it into the sim? I'm really curious as to what you guys have to say. I'm not afraid of VEX so don't hold back on that front haha -- ball_walking.fbx ball_idle.fbx
  5. Vellum and Bullet

    maybe, just maybe you could do it with a vellum cloth -> tetrahedral constraints setup, or even just struts, where you'd increase the struts/tetrahedral constraints stiffness beyond the limits of the universe. Will have to try that. EDIT: was wishful thinking tested it with ol' pig ears and he started flopping his ears even with stiffness set to bagillion worst case, the constraints don't even know what to do anymore at sky high numbers
  6. Houdini 17 Wishlist

    Nice! Allright, that explains why I couldn't find it. What a coincedence! I hope you'll be able to survive yet another brooding, hot summer :| blegh
  7. Houdini 17 Wishlist

    holy guacamoly thanks a million. This is great! Now, and sorry for being a ultra-noob here,where can I see this console? I've tried looking for something like that but I can't find it :c
  8. vops

    Sorry for being late, but have you ever tried pressing F1 in houdini? You'll get a help thing, and it just so happens when you look up the sensor panorama cone or any of the other sensor VOPs, you'll get a example file! I suggest taking a look at that first.
  9. Houdini 17 Wishlist

    I'm not smart or advanced enough to make good suggestions, but I'd really like for there to be a print function for wranglers, in a little error bar I'm used to doing a lot of smoke testing in this way, and I don't like having to make a special parameter dedicated to smoke testing. Also, just having a function to make a simple message pop up would be great. It's the little things ::))
  10. transforming a Vex-built PolyLine

    Hello to all. I solved the math problem, ended up using the qrotate function together with quaternion in vectoraxis mode. I botched it a bit using the normal as the axis, multiplying it slightly, and then correcting the angle based on wether the dot product of the Normal and the up vector was positive or negative. I'm stoked this even works. I love houdini for its "multiple ways to rome" capabilities. I still don't understand nothing about quaternions but this at least gives me a vague ideo on how to use them. Thanks again for the help. I've included what I have now, to share with everybody. -- I did it even more properly now, using the dihedral function. This is WAY less hassle than before. I knew this function existed, but I never saw the use for it until now. the basic structure goes like this: //define original vector (our line "grows" on the Y axis) vector known_vector = set(0,1,0); //compute what kind of rotation it would take to rotate points from the first vector (in our case {0,1,0} since the built line goes up), to the normal vector. vector4 rot_quaternion = dihedral(known_vector,@N); //rotate point position into place position = qrotate(rot_quaternion,position); so easy. so perfect. Math is amazing. I've implemented it and uploaded the file, so take a look if you want. sgamhar_3.hip
  11. transforming a Vex-built PolyLine

    Ah, I finally get what you've been trying to tell me. That part would've gone in the actual "hair grower" part of the algorithm, but the thing is that I can't use that because I have a twirl thing based on some simple goniometric mathematics. I'll be doing more experiments and trying things out. I'll probably end up making every hair a new primitive, and using a primitve wrangle after that to wrangle them in the correct spot.
  12. transforming a Vex-built PolyLine

    Could you explain a little bit more? I don't quite get it... Does the displace by normal take care of origin-based rotation? I guess it'll have to be multiplication then. I'll try it out, at least what I can make of your advice!
  13. Hello to all! I am currently writing a wrangle-thing in which I'm hoping to generate a random "hair" on every point and make it face the normal of said point. The way I planned it is as follows: 1. create the hair w/ random params on 0,0,0 2. rotate the hair to Normal of the point that it's "generated on" w/ rotate(matrix,angle,vertex) function 3. Move the hair to @P I'm not a hero with vector math, otherwise I'd generate the whole hair thing along a normal. I wonder if I somehow can construct a identity matrix, like one would do with the ident() function, and use that to transform the prim. Is there a way to simply rotate a primitive using something simpler than extreme vector math? sgamhar.hip
  14. Thank you so very much. This is a great help! Have a nice day/night/whatever!
  15. Hey! I was going through some tutorials on growth solvers, and I noticed that a lot of them are driven by the "food" group looking to get "infected" if you know what I mean. I wanted to try and make a growth solver that workes differently, looking instead at the points that are already infected and infecting more from their perspective. A very simple summation of what I'm trying to achieve: 1. List the points around me 2. If they are food, they are candidates 3. Infect only 1 of the found candidates rinse and repeat I've put the code underneath in a point wrangle in a solver, but it doesn't work well. I tried running the command on the seperate food and infected groups but that doesn't seem to improve either. What happens when it doesn't go well: 1. nothing 2. Almost every point gets put into the infected group in 1 framespan and then the solver doesn't do anything anymore. //initialiation of radius to search for, and random seed; float radius = 0.2; float seed = 8008135; //stalking prey (finding a list of points to infect); int neighbours[] = nearpoints(0,@P,radius,5); //hopefully grabbing a random one out of the stack of many; float array_length= len(neighbours); //random number between 0 and the length of the list of neighbours; int targetp = rint( rand(seed) * array_length); //looking up point ID in list of neighbours; int point_to_infect = neighbours[targetp]; //actually infect the point, if it is food; if (point(0,"infection",point_to_infect) == 0){ setpointattrib(0,"infection",point_to_infect,1); }; I haven't any clue what's going on, I got no errors other than a little green line under the local variable "targetp" when it gets created. I've attached my .hip! It might be something else I'm doing wrong. I hope you can help me, thanks in advance, Sasbom active infection.hip