Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 05/26/2025 in all areas

  1. Hi @EdwinFumano, you could calculate a bunch of eikonal distances using attribute fill inside a for loop and remap them as animation: float speed = chf('speed'); float t = @Time * speed; int i = floor(t); float u = frac(t); int n = npointsgroup(0, 'start'); string att = 'dist_' + itoa(i%n); float dist = point(0, att, i@ptnum); float mask = chramp('shape', dist - u + 1.0); float fade = 1.0 - smooth(0.5, 1.0, u); f@mask = mask * fade; setdetailattrib(0, 'active_dist', att, 'set'); infection.hip
    4 points
  2. Here are some ideas using this on curves (if I understood correctly) shift_points_along_curve.hipnc
    3 points
  3. Studio ??? Talk to your manager right away and give these guys a job @hannes603 @konstantin magnus if they need a job.. Find Qiita website . !Advent Houdini 2020! you have Files for Infect and very Nice tricks for making those effects and much more using same Logic . Then(TIP) When you have Full Code that Works in Houdini you can Make anything in chatgpt(reverse and investigete) Now days. Have a nice Day .
    2 points
  4. I think I have found the perfect solution. This seems 100% correct. Takes into account the camera motion as well. screen_space_velocity_2.hiplc
    2 points
  5. This could be due to the internal order of the point group. try shuffling starting points by randomly picking a point number out of the array: int seed = chi('seed'); int pts[] = expandpointgroup(0, 'start'); int iter = detail(1, 'iteration', 0); int pick = pts[int(rand(iter, seed) * len(pts))]; i@group_boundary = i@ptnum == pick; infection_multiple_01.hip
    2 points
  6. This is what I could come up with. Uses 1 qLib node (Camera Plane ql). screen_space_velocity.hiplc
    2 points
  7. You have a vex function called toNDC where you can use your velocity information to transform it to normalized raster coordinates. Even if it says it's only well defined in shading context it seems to work in sop as well.
    2 points
  8. https://forums.odforce.net/topic/52360-heightfields-guided-by-pyro/#comment-238377 you have endless Way to make this .
    2 points
  9. Yeah, but only works on straigth line @Aizatulin's file is awesome!
    2 points
  10. I do not think a discord is the right thing for odforce, as Marc mentioned, the info get lost easily. Even though you can search etc still is not as nice as having it in a forum.
    2 points
  11. Are you interested in creating custom velocity fields and custom forces for your Houdini FLIP, Pyro and Smoke Simulations?? Are you interested in building custom DOP networks and custom solvers? This course on Udemy is for you! Enroll it now from HERE! https://www.udemy.com/course/mastering-houdini-simulation-custom-forces-velocity-fields/?referralCode=374420356510272B5A71 Course Overview: Take your Houdini simulations to the next level by mastering the art of custom velocity fields and forces. This advanced course is designed for artists and technical directors looking to gain full control over their simulations. Through real-world examples, we will explore a variety of techniques to create stunning motion effects using velocity volumes, custom forces, volume VOPs, and point clouds. By the end of this course, you will have the ability to craft complex, Houdini dynamic simulations that behave exactly as you envision. Whether you're working with particles, smoke, FLIP water simulations or other volumetric effects, these techniques will help you stand out in the world of VFX and motion design. What You’ll Learn: How to create custom velocity fields for unique water, particle and smoke effects Techniques for designing an ocean vortex with beautiful banding effect Crafting custom curve forces to guide particle and smoke simulations Utilizing complex geometry to generate unique force interactions Creating a particles-to-word effect using object forces Developing axis-related forces for controlled simulations Applying velocity volumes in various ways, including: POP Advect by Volume Wind forces Directional drag and full drag Advanced techniques with Point Clouds and Volume VOPs for precision control Create a curve force and axis force digital assets that can be used to control smoke and particle simulations Course Breakdown: Module 1: Ocean Vortex Effect Designing a realistic vortex simulation Using velocity banding for artistic control Fine-tuning the look of fluid motion Module 2: Curve-Driven Forces for Smoke & Particles Creating custom curve forces Directing smoke and particles along a path Controlling force strength and falloff Leveraging Point Clouds for volume manipulation Customizing Volume VOP networks for precise effects Debugging and optimizing simulations Module 3: Forces & Complex Geometry Using geometry to influence simulations Crafting intricate force interactions Case study: Real-world examples of geometric forces Module 4: Particles to Word Effect Transforming particles into text shapes Managing object forces for controlled transitions Enhancing readability and motion flow Module 5: Axis-Based Forces for Dynamic Simulations Applying forces relative to an axis Rotational and directional force applications Controlling turbulence and flow behavior Understanding POP Advect by Volume Blending velocity for natural movement Wind, directional drag, and full drag techniques Who This Course is For: Intermediate to advanced Houdini users VFX artists looking to master simulation control Motion designers who want more precision in particle and smoke effects Technical artists eager to dive into advanced Houdini workflows Why Take This Course? Learn industry-standard techniques used in professional VFX studios Gain hands-on experience with practical, project-based lessons Unlock the ability to create your own unique simulations Elevate your skills and portfolio with high-end effects using Houdini Course Requirements: Basic knowledge of Houdini A computer capable of running Houdini simulations Passion for creating stunning, controlled simulations Are you ready to take full control of your simulations? Enroll now and start mastering custom velocity fields and forces today!
    1 point
  12. Find ZengChen on Github and Vimeo @GlennimusPrime
    1 point
  13. I'm working on a personal project starring a pasta monster, I had to create a bolognese sauce for it. I tought it could be fun for others (at least to look around in COPs). Have fun with it! bolognese_cops.hiplc I followed this article and tried to replicate what he did in Substance Designer, but using COPs. Copernicus is indeed amazing!! https://80.lv/articles/making-fusilli-pasta-material-with-substance-3d-designer-houdini The ingredients:
    1 point
  14. How would you calculate the velocity of a moving geometry (consistent topology, static camera) in screen space?
    1 point
  15. Thanks everyone — this thread helped clarify a lot. Just to add for anyone else running into this: yes, even for static objects, if you’re using a VDB Proxy Volume, Houdini still seems to evaluate the proxy each frame unless you explicitly manage when and how it’s updated. Disabling the Collision Guide (as Ryan pointed out) makes a huge difference, especially in viewport playback — it's not just cosmetic, it actually controls whether Houdini recalculates that VDB every frame. Also, diving into the Static Object DOP and checking out the internals is super useful. You can often lock in your VDB or pre-cache it manually if you're hitting perf issues. Highly recommend enabling the Performance Monitor too — it really does help track where the time is going if you're not sure what’s dragging down the sim. TL;DR: It's not a bug, just a gotcha. VDB-based proxy collisions are powerful but require a little setup awareness, even for static colliders.
    1 point
  16. Put the relevant parts of the code inside a loop to offset the time and increment the mask number with each iteration. float speed = chf('speed'); int num = chi('infections'); float t = @Time * speed; int n = npointsgroup(0, 'start'); float mask_collect = 0.0; for(int k = 0; k < num; k++){ t += 1.0 / float(num); int i = floor(t); float u = frac(t); string att = 'dist_' + itoa(i+k%n); float dist = point(0, att, i@ptnum); float mask = chramp('shape', dist - u + 1.0); float fade = 1.0 - smooth(0.5, 1.0, u); mask_collect = max(mask_collect, mask * fade); } f@mask = mask_collect; infection_multiple.hip
    1 point
  17. combine in Solver that setup and this setup. float max_age = chf("infect_lifetime"); float fade_duration = chf("fade_duration"); if (@infect < 1) { string hdapath = "../../../.."; float radius; if ((chi(hdapath + "/useradiusattrib") == 1) && haspointattrib(0, chs(hdapath + "/radiusattrib"))) { radius = point(0, chs(hdapath + "/radiusattrib"), @ptnum); } else { radius = chf(hdapath + "/radius"); } float resist; if ((chi(hdapath + "/useresistattrib") == 1) && haspointattrib(0, chs(hdapath + "/resistattrib"))) { resist = point(0, chs(hdapath + "/resistattrib"), @ptnum); } else { resist = 0; } float strength = chf(hdapath + "/strength"); int npts[] = nearpoints(0, @P, radius); float accum = 0; int cnt = 0; foreach (int npt; npts){ float infection = point(0, "infect", npt); accum += infection * strength; cnt++; } float avginfect = accum / max(cnt, 1); @infect = clamp(@infect + avginfect * (1 - resist), 0, 1); } if (@infect > 0.01) { @infect_age += 1; } else { @infect_age = 0; } if (@infect_age > max_age) { float t = fit(@infect_age, max_age, max_age + fade_duration, 1, 0); @infect = clamp(t, 0, 1); } if (@infect <= 0.01 && @infect_age > max_age + fade_duration) { @infect = 0; @infect_age = 0; if (rand(@ptnum + @Frame) < 0.91) { @infect = 0.1; } }
    1 point
  18. Hey friends, Had a fellow 3d person stop by my youtube channel where I mostly sculpt random Zbrush stuff and ask for this model to be donated to the Houdini community: Which I think is a brilliant idea as I dabble with Houdini myself and love it. So here you go, have fun, would love to see some awesome things created with my humble sculpt Use it for whatever, personal, commercial. A link back to me/my channel always massively appreciated, but no obligations. Cheers! EoL PS hope this is the right section of forum to post this, apologies if not. xportPigHead_v01.fbx xportPigHead_v01.obj
    1 point
  19. Cache out the initial sim then use this cache as an animated collision object in ANOTHER sim? --> yes, this way you can control the primary animated geo more easy
    1 point
  20. @sipi maybe //box ndc vector offset = {0.5, 0.5, 0}; vector cameraScale = set(ch("camera_X"), ch("camera_Y"), 1); if (@group_near) @P = set(@P.x, @P.y, ch("near")*-1); if (!@group_near) @P = set(@P.x, @P.y, ch("far")*-1); vector xformpos = @P * maketransform(0,0, offset,{0,0,0},cameraScale,{0,0,0}); @P = fromNDC(chs("camera_path"), xformpos);
    1 point
  21. Hi Jim, you could integrate text from Copernicus which is also a 2D voxel field. heightfield_text.hip
    1 point
  22. I would like to increase the curviness of a given curve in post. Do you know other methods to this problem? This seems to work nicely, but maybe there are better ways to do it.(?) increase_curvature_in_post.hiplc
    1 point
  23. interesting one, though it doesn't seems to be 100% correct for example here the normals don't follow the curvature properly adjusting the Search Radius can help, but it has to be larger than the length of a segment in the line (this can be problematic if the distribution of points are not uniform in the line (and if you can't apply resample for some reason)) but thanks, it's an interesting and simple approach indeed.
    1 point
  24. Wow that thread is really helpful thank you for sharing that
    1 point
  25. if you mean Those Swirls .its just Texture that its being advected and Rest uv by movement of particles(to volumes) that you can map to -P.y . just volumes . @korbendalas
    1 point
  26. It is cool! I will explore how you solve it, your setup is completly different than mine, your setup is totally different from mine. Could you explain a bit about your workflow?
    1 point
  27. Hi, Here's a hipfile for this: drive_ocean_amplitude.hiplc
    1 point
  28. I'm not proud of this definitely not the best approach, (especially that it doesn't stop at the end ) but maybe can give you ideas. curtain_thingy.hiplc
    1 point
  29. Maybe animate the geo or volume on subframes using simple modulo expression? frozen_motionblur.hiplc (hate to put pighead in such a vulnerable situation)
    1 point
  30. Upskilling. Tried new stuff. Demo in below link!! For More info: https://www.linkedin.com/posts/chandrakanth-santharam-6b8b3527_houdini-template-manger-10-activity-7333552173038845952-0RUG?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAWvTKwBN4lVJ6vJC07NTnwyTd6gViVRL4U Cheers!!
    1 point
  31. The funny thing is that I tried the Target Forward Vector, but somehow failed to have success... This method is really nice, thank you very much @fencer!
    1 point
  32. This is pretty much the same as it always has been: Who's Online 10 Members, 0 Anonymous, 89 Guests However this is a good question, what can we do to generate more excitement on the forums? Is anyone interested in running challenges? Unfortunately I have a studio to run now, which is quite all encompassing, but we're happy to support any good ideas! M
    1 point
  33. So I fixed it. The issue was quite simple. There was no collision shape for this specific bone. I just had to click on it to create a coll shape, I didnt even resized or moved it. All those shapes doesnt look very optimized though, but it works well for what I need. Ragdoll_0102.hip
    1 point
  34. nice. i put everything in a for loop , works for me . Blur_smooth_noise_in_matnet_material_foreach.hip
    1 point
  35. you can do that with pointclouds, it's ideal for averaging out the normal directions which is probably what you want. // wrangle1 // change color by proximity to curve points int handle = pcopen(1,"P",@P,chf("radius"),1); if(pcnumfound(handle)>0){ @Cd = {1,0,1}; } // use blast nodes to separte in 2 geometries // wrangle2 // create normals from average closest points int handle = pcopen(1,"P",@P,chf("radius"),chi("maxpoints")); if(pcnumfound(handle)>0){ vector p = pcfilter(handle,"P"); v@N = p-@P; } normal_to_points.hipnc > using 1 point or 40 points for position lookup
    1 point
  36. Houdini was getting bored doing hours of simulation, so I gave him something to play with. - Done in Houdini, script in VEX, rendered using Karma.
    1 point
  37. Hi @virgile, you could blend positions based on their distance towards the surface: In a point wrangle with first input mesh, second input sphere: float d_min = chf('min_distance'); float d_max = chf('max_distance'); int prim; vector uvw; float d = xyzdist(1, v@P, prim, uvw); vector pos = primuv(1, 'P', prim, uvw); float mask = smooth(d_min, d_max, d); v@P = lerp(pos, v@P, mask); conform_to_surface.hipnc
    1 point
  38. attached is an example of how it could be done. Keep in mind this is intended to be used with lower contrast images, for bump mapping etc and not a fully blown high contrast brick image. but it gets the point across I think. restratio_flipblend.hiplc
    1 point
  39. and I made it work inheritVel_Test_v02.hip
    1 point
  40. During the last 3 weeks, a did some Rnd and published my results on vimeo . Some people asked me to share my files here, so here we are i hope it will help!
    1 point
  41. If you add a Cluster SOP after your Cluster Points SOP, it has a checkbox to output Cluster Centers. -b
    1 point
  42. Hi, You can just average out all the points found in the point cloud lookup where you are coloring them, and either create new points at the computed center or store it as an attribute.
    1 point
  43. couple of things, I focused only at SDf force as that's the way to go: - you are using Isooffset to generate SDF, which is slow and may introduce artifacts, consider using VDB From Polygons - your volumegradient is not sampling the SDF, but the default cube geo, you have to point it to your geo - your volumegradient is sampling using v, it should sample at P position - you are adding P to result of your gradient, while the gradient direction is already parallel to the tube normal, so you shouldn't mess with it more, just negating and normalizing is fine - VOP Force is old and may be slow, in your case when using RBDs consider using POP Force Instead here is the file with all the changes also has both VOP Force and POP Force approach Custom_Gravity_fix.hip
    1 point
  44. If you explicitly cast chramp to a vector first, the 'create spare parameters button' will create a colour ramp. Eg @Cd = vector(chramp('myramp',@P.x));
    1 point
  45. you can specify formatting in Print VOP in similar way as in printf() function, see the example ts_formatted_print_vop.hip
    1 point
  46. First off shifting the vertex order will actually change the way the geometry is constructed. Just so you know. Adding to the post above, you can use the Primitive SOP's Face/Hull tab to reverse the vertex sort (reversing the primitive normals to boot) or shift the vertex number. Any of these shifts will keep the point order intact. If you want to reconstruct the primitive using any vertex sort driven by the point sort order, you can use the Add SOP. First press the toggle to just keep the points. Then in the Polygons Tab choose the Group option. Now your vertex order will match the point order, as messed up as you want it to be. If you have multiple primitives to reconstruct, use the Connectivity SOP to create a partition attribute and use the "By Attribute" option in the Add menu parameter. There are a bunch of other ways to reconstruct primitives from re-sorted vertices but the Add SOP is the easiest to use driven by the point order. playing_with_vertex_order.hip
    1 point
  47. Carve SOP. Fist U : 0 Second U : 1 Breakpoints : Cut At all Internal U Breakpoints
    1 point
  48. i wired a vop shop. it should be what you want ramp1.hipnc
    1 point
×
×
  • Create New...