Jump to content

John Svensson

Members
  • Posts

    34
  • Joined

  • Last visited

1 Follower

About John Svensson

  • Birthday 09/25/1987

Contact Methods

  • Website URL
    http://johnsvensson.se

Personal Information

  • Name
    John
  • Location
    Stockholm

Recent Profile Visitors

3,611 profile views

John Svensson's Achievements

Newbie

Newbie (1/14)

3

Reputation

  1. Hi. If it's the actual geometry you want to change color & not the smoke. Then you probably are better of doing it post sim in a wrangle or vop node using the volumesample or volumesamplev function to lookup the color/density/velocity of the smoke at the geometry points position.
  2. Thanks for your reply. Didn't know that you could use pop forces with the wire solver. Thought they where only valid for pop and bullet. That alone probably solved my problem, then I can do all kind of filtering with the "use VEXpression". What I don't understand is when I try to use a wind force instead of the pop force that has the group expression, with the same group expression, it doesn't work. Why is that group expression only valid for a pop force and not a wind force? I guess DOP groups are different then SOP prim & point groups... And, it feels like I'm missing something. Thanks anyway, you solved my problem. / John
  3. I'm working on a setup where a couple of polygon curves simulated and breaking apart using a wiresolver and a sopsolver. I've only one wire object and would like to group the wires in that object that are broken so I can apply a force to them. I'm using a group DOP node and in the Group 0 Expression I've this expression prim("..:wireobject1/Geometry", $OBJ, "broken", 0) == 1 The setup works so far so that when prim 0 "broken" attribute evaluates to 1 all the wires belongs to the group and get the force. So I guess it's the $OBJ I'm using incorrectly. It evaluates to 0 because the wireobject1 is the only object in the DOP network. So how do I access each primitives primnum in DOP? If it's even possible to group primitives belonging to one object like this? Is there another way to create DOP groups? Would like to have something like a Geometry Wrangle with a create setprimgroup expression. Thanks! / John
  4. You can solve the rotation of the grains with a PointWrangle in a separate SopSolver float dist = distance( @P, v@P_last ); v@P_last = @P; vector axis = cross( {0, 1, 0}, normalize(v@v)); vector4 rotate = quaternion( dist / f@pscale, axis ); p@orient = qmultiply( p@orient, rotate ); Maybe one step closer to what you're after
  5. Nice ref I would say that if you take a cube, convert it to a volume, scatter a bunch of points in it, connect adjacent points with lines using the connect adjacent pieces HDA or custom vopsop/vex setup. create random with for each line and scatter point on the lines, offset the points from the lines with some random noise multiplied by the width of the lines. Should be a pretty good starting point. Creating volumes out of the lines using VDB could also be worth trying Good luck
  6. I get that now and then in the viewport with volumes and fog VDB's. Try to do a simple test render with Mantra to see if it's a viewport thing.
  7. Try a geometry wrangle connected to the 2nd input in the flip solver f@pscale *= 0.99;
  8. Changed my approach. Simulated each box with several smaller plates constrained together, to get some sort of organic/squishy feel to them. More flexible solution. Still curios about interaction between FEM and RBD though. Read in the help about affectors, but didn't find an example file where they are used.
  9. Do you mean that instead of RBD/Bullet objects I replace them with "hard" FEM object? That would work, but it wouldn't give me the speed increase I'm after.
  10. Hi I've been searching the forum on this topic but didn't find much. Is there a way to get a somewhat correct collision behavior between the cloth solver and the RBD solver running parallel in the same DOP network? I've a bunch of cardboard boxes that's suppose to stack on each other. I'd an idea that the cloth boxes that had come to rest would switch over to be a RBD objects instead, to optimize the sim. But first I got to get the solvers to interact. Any ideas? A simple test scene with the setup is attached (without the switching stuff). Thanks / John Edit: Ops double post :/
  11. Hi Has anyone played around with a animated time scale on the flip solver recently? I'm on Houdini 15.5 and I've run into some problems with this. For me everything works by default when I animate the time scale on the flip solver. I take it from 1 on frame 20 to 0.05 on frame 30, and after a while I start to get some weird results in some areas that should be pretty static. Seems to have something to do with velocity building up over time on certain points. I've tried to follow Atoms Vimeo video, but first of the flip solver has changed some from version 13. And when I look at the rest of the nodes on that level, many more of them also has a time scale parameter. It's expression linked in some cases here and there, some with Update Always and some not at all. Feel like I don't know at all what I'm doing there. Is the time scale on the flip solver suppose to work with animation? Is there another way to get the same effect without doing any retime post sim? Thanks / John
  12. One suggestion that comes to mind is to make sure that your collision geometry is a good representation of the fractured cube, and that you have proper velocity vectors on the fractures
  13. Hi, I've been playing around with the ocean fx shelf tools a bit and have a couple of questions regarding usual workflow. I want to create a boat traveling over a static grid with waves, so combining the ocean spectrum / evaluate sop with flip sims seems like a good idéa, and it seems that this is what many of the shelf tools is doing. I found this in the documentation http://www.sidefx.com/docs/houdini15.0/shelf/ocean_differences and from that it seems that the wave layer tank is what I want. I tried to implement it in a little to advanced project for me and wasn't happy with the result I was getting. So now did a quick test scene with a static grid and a object traveling trough it and I still get some weird result. For example to water doesn't seem to close the space behind the "boat". So I started to think if the whole wave layer tank was mostly for being able to get white water on top of the sop geometry from the ocean evaluate node. I don't know, I'm a bit confused. A saw this nice rnd example from Vladimir and from what I can see he seams to use flat tanks and maybe wave tank. I want those continues waves from the ocean spectrum. Do people use some custom setup to continuously advect the flip sim to add velocity to the waves. Or is it possible to combine something like a flat tank to get the ocean / boat interaction and then do some trick to add that on top of procedural ocean geometry? I've attached my simple test with the weird gap behind my test geo boat. Any thoughts or tips is appreciated. Thanks / John WaveLayerTank_BadResultExample_V01_01.hipnc
  14. Thanks for your answer edward. I did a fast google on your suggestion but it seemed a bit more complicated than I thought it would be. I attached a screen grab over how my node looks in it current state. I may be off track here but, what I think would solve everything is if I could get a function (cook) from img (3) to call a function in img (2). I get this error message when I try. Traceback (most recent call last): File "<stdin>", line 1, in <module> File "opdef:/Sop/AttribIO_HToM_Writer?PythonModule", line 24, in cook NameError: global name 'error_test' is not defined It really feels like it's some detail I'm missing because there something about these modules I don't understand to how they relate to each other. Is there something like global functions or can I call the function some other way? Thanks again! / John
  15. Hi again! So I started to write my tool as a DA node instead of shelf script, and I have a few questions about the "anatomy" of a python node. I started to write my code as I've done before in the Code section of the Edit Operator Type Properties window. The first bump I hit was that I have a "Write" button in my UI that allows the user to run the tool, the node doesn't do anything without it. I found that to be able to call a function from the button I had to create a python module event handler in the script part of the window. Now I can call my "start" function with this callback script on the button kwargs['node'].hdaModule().cook() The script checks a few user parameters and have 2 outcomes (for now), "Invalid parameter settings" or call the "write" function. What I got stuck on was, that I want to raise a error if the parameters aren't valid. What I understand is that there are a few different way to do this in the UI. What I'm after is the regular black & yellow stroke, node error where you can middle mouse button click on the node and there are some description there. This is the code I believe. raise hou.NodeError("Invalid parameter settings") But when I run it from my python module, what I get is a pop up window displaying the error, if I instead run it from the code section, it works fine. Can python functions from the code & the script section talk to each other? I think it's something about the whole module thing I don't quite grasp. (I found this thread with the exact same question, unanswered) https://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&p=182284&sid=40be76ecbcde29c17d0f2eb50434536f Thanks / John
×
×
  • Create New...