Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 05/29/2026 in Posts

  1. vector p = @P; // Center control, optional p -= chv("pivot"); // Scale the cellular pattern p *= chf("scale"); // Rotation controls in degrees float rx = radians(chf("rotate_x")); float ry = radians(chf("rotate_y")); float rz = radians(chf("rotate_z")); matrix3 m = ident(); rotate(m, rx, {1, 0, 0}); rotate(m, ry, {0, 1, 0}); rotate(m, rz, {0, 0, 1}); // Rotate the cellular noise space p *= m; // Directional stretch makes the rotation visible p.x *= chf("stretch_x"); p.y *= chf("stretch_y"); p.z *= chf("stretch_z"); float f1, f2; vector pos1, pos2; vnoise( p, chf("jitter"), chi("seed"), f1, f2, pos1, pos2 ); // Border calculation float edge = f2 - f1; float border = 1.0 - smooth( chf("border_width"), chf("border_width") + chf("softness"), edge ); // Cell color value float cell = rand(pos1 + chi("seed")); // Final result float result = lerp(cell * chf("cell_brightness"), 1.0, border); @Cd = set(result, result, result); f@cell_border = border; f@cell_value = cell; f@cell_result = result;
    1 point
  2. Particles and Anticipation. Have Fun . proc09.h
    1 point
  3. What if to play with cloth, set thickness to knot size and add deformed net later. It might be more flexible and faster to work. football_net_collision_v01.hipnc
    1 point
  4. Simple way to define magnetic side initially, more fun is to find out side on fly by availability, distance etc. magnet_chain_v01.hipnc
    1 point
  5. From what I understand: If you dive into the FLIP solver's Surface Tension feature, you'll find that the key parameter is the scale of curvature. The solver is based on the Navier-Stokes equations. It uses divergence to measure whether particle flow is shrinking or expanding, and then applies pressure to push or pull the fluid, ensuring incompressibility. With surface tension enabled, the solver applies surface pressure based on curvature. This pressure is summed and submitted during the pressure update step (FLIP solve), which then influences particle motion. In FLIP, the surface tension force is defined as: Code F = scale_ST × mean_curvature × surface_normal Where: F is the force density from surface tension FLIP Surface Tension parameter: scale_ST is the surface tension coefficient, typically based on particle separation or voxel size mean_curvature represents how much the surface is expanding, greater expansion leads to higher curvature magnitude surface_normal indicates the direction of the shrinking flow Here’s the link to the article I wrote, which includes a full default HIP file download with extra (paid) solution. It explains in detail why the method works (rock solid), how to use it, and offers various techniques to help you solve problems across different cases. https://medium.com/@vupham_37726/houdini-flip-surface-tension-demystified-f1239da880ce For more background, you might want to check out the paper “Continuum Surface Force Method.” It's important to note that the standard Navier–Stokes equations do not account for surface tension directly, they only solve for inertia, pressure, and viscosity. The Continuum Surface Force model is a technique used in computer graphics (CG) to inject surface tension behavior into fluid simulations. It’s designed for visual realism in animation, not for physically accurate modeling of real-world water materials. The blur radius feature acts as a smoothing filter to reduce volume noise and jitter. It uses a kernel radius to apply the blur. Increasing the blur radius reduces precision, which in turn diminishes fine details such as tendrils and thin films. The higher the scale ST, the stronger the surface tension pushes inward. Small droplets quickly transform into bulk spheres, and tendrils disappear faster. Reducing the scale ST makes films and tendrils harder to hold, causing them to scatter more quickly into floating dots. Maybe someone else could help make it easier to understand from an art direction or VFX perspective, rather than just explaining the dry technical details of the solver. One-day dev for this article and sample files, fueled by years of grind and the smart Houdini gang before me. I'm leaving it here for future reader.
    1 point
  6. there were a few issues. 1) there was no velocity attribute before the rasterize_velocity node 2) pumps are affecting volume velocity so they need to be plugged in the volume velocity input of the Flip solver. 3) the FLIP object doesn't have a pump field by default in H18, you can create one and resize it. FluidPump_V02.hipnc
    1 point
  7. I have a similar desire. My workaround for now has been to to create a label parameter for each parameter I want control over. Perhaps it will soothe your needs too until there's a better solution. For a left-justified label above the float(most easily accomplished) I would do the following: make a string: Strmylabel# -- you can add some kind of default expression to read in whatever you need or let the user adjust this -- if you are setting it yourself then make this parm invisible make a label: mylabel# -- turn off 'Main Label', turn on 'Horizontally Join to Next Parameter', and turn on all 16 labels -- In 'Label 1' put "<additional common words such as 'controls for: ' >`chs('Str' + substr($CH,0,strlen($CH) - 1 ))`<additional common words such as 'controls' or >" (you need '-1' because once you have more than Label 1 turned on the labels get additional #s added to the end so you don't want to get that number also) make a seperator: <doesn't matter> -- this will just help fill in rightspace so your label stays left-justified make a float: myfloat# -- turn off 'Main Label', setup however you want If the string parm is set to "hello3" and Label 1 has "Controls for: `chs('Str' + substr($CH,0,strlen($CH) - 1 ))` Objects" in Label 1 would yield the label: Controls for: hello3 Objects For right-justified labels that look like the normal label in-line with your float you can remove the seperater and move the Label expression to 'Label 16' replacing '-1' with '-2' since 16 is 2 digits long instead of 1 digit long. This method will force everything to the far right of the parameter interface You can do other similar things with attributes being read in using something like the following in the Label: `detailsmap(0,'myAttribute', opdigits( substr($CH,0,strlen($CH) )) )`
    1 point
  8. Solved by Peter Sanitra @ Redshift Render community facebook group. Uploading the updated hip file. So: 1. you have to compute the velocity of points before the boolean, then use a atribute transfer to transfer the velocity from that preboolean to the new boolean geo. 2. go to redshift per object parameters (OBJ level) - Settings - Render and activate Deformation Blur From Velocity Attribute , so you force redshift to compute the motion from your velocity atribute from points. Done! I hope my full morning investigation will be usefull for you guys! Keep growing! mberror_solved.hiplc
    1 point
×
×
  • Create New...