node-toad Posted May 21 Share Posted May 21 Hey everyone, Houdini newb, here. I am after a very specific effect and I'm wondering if anyone could point me in the right direction. I am looking to replicate something like the 2D drawing below but in 3D space. Where concentric ripple circle "lines" (swept geometry?) emanate from a central point to illustrate soundwaves. Of course, this is something I could replicate in Adobe After Effects, etc., but I'm looking to run some simulations and...if these "lines" could bounce off objects like waves hitting the edges of a tank in a fluid simulation, that would be next level. But I'm getting way ahead of myself. Any ideas on how to procedurally create such a diagram is very welcome. Thanks for the help, everyone. Quote Link to comment Share on other sites More sharing options...
Librarian Posted May 21 Share Posted May 21 @node-toad More info Please... you can Find those animation or simulation here its posted long time ago (similar) Bouncing waves of walls ..I just need reference link and name of that Math (physic) correctly named .. 1 Quote Link to comment Share on other sites More sharing options...
node-toad Posted May 21 Author Share Posted May 21 @Librarian Thank you for your offer to help! I am not a math expert so I do not know the exact terminology - but keywords such as 'sound waves', 'acoustic waves', 'reflection', 'refraction', 'reverberation', and 'echo' might be good places to start. I am searching through the archives as well - I haven't found anything yet but I will keep looking. Thank you! Quote Link to comment Share on other sites More sharing options...
Librarian Posted May 21 Share Posted May 21 @node-toad where you have found PIC Quote Link to comment Share on other sites More sharing options...
node-toad Posted May 21 Author Share Posted May 21 (edited) @Librarian Found something very similar to what I am going for here: Of course, this is flat/2d - and I'd like to make it in 3D in Houdini, but keeping it very similar in style to this visualization Also here: Edited May 21 by node-toad Quote Link to comment Share on other sites More sharing options...
Librarian Posted May 22 Share Posted May 22 @node-toad Fun if you mean like this.. I found those ex in dop ex inside pop and dop Scripts C:/Program Files/Side Effects Software/Houdini 20.0.506/houdini/help/examples/nodes/ Quote Link to comment Share on other sites More sharing options...
node-toad Posted May 22 Author Share Posted May 22 You've found it!! that's exactly it, @Librarian. I cannot thank you enough. You have saved me hours of searching and learning. This is so helpful. Best wishes! Quote Link to comment Share on other sites More sharing options...
node-toad Posted May 23 Author Share Posted May 23 @LibrarianCould I bother you of the exact name of the .hip for this example? I can't seem to locate it in the example files. Thanks! Quote Link to comment Share on other sites More sharing options...
Librarian Posted May 23 Share Posted May 23 (edited) @node-toad Here its Link , My ex its Just combination of 5 otl's in that Help folder .. and SOP solver. vector cohesion_dir = normalize(@P); vector cohesion_length = length(@P); cohesion_length = fit(cohesion_length,9,9.5,0.01,1); @v += cohesion_length * cohesion_dir *@TimeInc; //@v += onoise(@P*0.1+0.1*@Time)*vector(0.5*@TimeInc); int near_pt = pcfind(0,"P",@P,1,2)[1]; vector seperate_dir = normalize(@P-point(0,"P",near_pt)); float seperate_length = distance(@P,point(0,"P",near_pt)); seperate_length = fit(seperate_length,0.005,0.1,2,0); vector seperate = seperate_dir*seperate_length; @v +=seperate *@TimeInc; @v = clamp (length(@v),0.0005,1)*normalize(@v); vector s =@v *@TimeInc; vector hit_pos; vector uv; vector hit_N; int prim = intersect(1,@P,s,hit_pos,uv); if(prim<0){ @P += s; }else{ hit_N = prim(1,"N",prim); @v = reflect(@v,hit_N); @P = hit_pos+@v*(length(s)-distance(@P,hit_pos)); } vector noise_v = vector(flownoise(@P*chf("noise_freq"), @TimeInc*.2)); @v += fit01(noise_v, set(-@max_speed, 0, -@max_speed), set(@max_speed,0,@max_speed)); //@v += onoise(@P*0.5)*vector(0.5*@TimeInc); //@v += onoise(@P*0.1+0.1*@Time)*vector(0.5*@TimeInc); here its some accel stuff ,tohave same vel and movement //@v = set(0,0,10); //@P += @v*@TimeInc; //@v = 10*set(0,0,10*rand(@ptnum)); //@P += @v*@TimeInc; //@v = 10*set(0,0,0.5+0.5*rand(@ptnum)); @P += @v*@TimeInc; vector @accel = {0,0,0}; vector @v = {0,0,5}; @v += @accel*@TimeInc; @P += @v*@TimeInc; //vector @accel = {0,0,-1}; /*vector @v = {0,0,10}; @v += @accel*@TimeInc; if(@v.z < 0){ @v.z = 0; } @P += @v*@TimeInc; */ Edited May 23 by Librarian Quote Link to comment Share on other sites More sharing options...
node-toad Posted May 23 Author Share Posted May 23 Tesan, thank you for your kindness and for taking the time to help me out. This is more than I could have ever asked for. I really appreciate it, @Librarian. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.