Jump to content


Popular Content

Showing most liked content since 12/26/2020 in all areas

  1. 7 points
    Here is a method to carve mesh surfaces with extrusions, gaps, holes, profiles based on their distance from curves or polygons. Projecting curves or polygons on a primitive. Measuring distance with xyzdist(). Distance rings done with polygon cutting. Carving in various profiles with ramps. profiles_2.hipnc
  2. 4 points
  3. 3 points
    here’s another one without relying on an iterative approach geo_along_curve.hipnc
  4. 3 points
    With this work I tried to do a metalic monster with a inverse pipeline..the model exist from the rig, on this case a single line... that is completly procedural.
  5. 3 points
    Hi folks ! A tutorial about recursive backtracker in vex to create mazes. The idea is simple : You get your adjacent neighbours and check if they are not visited, if not, you randomly choose one and move to it. If no valid neighbours, you backtrack the stack of your previous positions and check if there is a valid neighbour until you find one. If the stack is empty no valid cells are left so the maze is done. recursive_backtracking_001.hiplc
  6. 3 points
    Collections of OSL shaders for Renderman plus some expressions to mimic scanning electron microscope. OslShaderss.hiplc
  7. 3 points
  8. 3 points
    Hey there, I built a tool very similar to the Substance functionality. You can draw a line on a image and it turns it into a ramp parameter. https://richardcthomas.com/image-to-ramp Hope it proves useful!
  9. 2 points
    hey, sorry for my late reply, i didn't check the forum for quite a while … you're right, instead of rotating the prim i did project its points onto the plane given by P (prim centroid) and N (prim normal). this way you don’t have to worry about adjusting size due to the rotation. hth. petz
  10. 2 points
    It's trivial nowadays, thanks to Chain SOP (since 18.5) Have a look at the 18.5 presentation (H18.5 LAUNCH EVENT on Sidefx.com) Proof: books.hipnc
  11. 2 points
    Just a simple rendering / tutorial for my patreons. Simple CC.
  12. 2 points
    - animation Mixer/Sequencer a la XSI/Maya - camera Mixer/Sequencer a la XSI/Maya - parallel rig evaluation like in Maya https://download.autodesk.com/us/company/files/UsingParallelMaya/2020/UsingParallelMaya.pdf - better outliner like in Blender/Maya , with ability to parent, organize, sort, rename all elements in your scene in a Hierarchical way without using the node tree. - nodal context to create GLSL viewport shaders from nodes + glsl wrangle like maya shaderfx or babylon.js editor - ability to export GLSL shading trees to UE/Unity - 2d post process in the OpenGL viewport [ bloom, grain, vignet, CC ] - reflection/light probe + screen space reflection for viewport - ROP openGL that actually work as expected with 100% viewport fidelity - MOPS kind of OTL integrated by default a la gamedevtool , but in the idea to have mographdevtool - COPS on steroid - CHOPS on steroid - do not force USD workflow by default let the choice to use it or not, small boutique might not need USD
  13. 2 points
    You could perhaps do this with chops to get the springy motion you're looking for. Attaching an example chop_srping.hip
  14. 2 points
  15. 2 points
    Multiply your velocity by luminance(@Cd)
  16. 2 points
    pcfilter returns the average value of an attribute on the points found. If you need anything custom, like the max value of an attribute for example, you would use pciterate/pcimport/pcclose This example explains how the pciterate+pcimport are used to re-create pcfilter https://www.sidefx.com/docs/houdini/vex/functions/pcfilter.html also, pcclose is called automatically https://www.sidefx.com/docs/houdini/vex/functions/pcclose.html
  17. 2 points
    The GasDisturb is an HDA so you can see what's going on inside, check the "vex" gasFieldVOP Threshold Range is just a remapping of density to 0-1 values VEX equivalent fit(f@density,thresholdmin,thresholdmax,0,1)
  18. 2 points
    @Aizatulin I found What he posted maybe it can be of some Help for your Coding-bezier clip ------------------> LINK Takuma Miyamoto
  19. 2 points
    Cool(hot) real-life lava reference
  20. 2 points
    Not long ago I was tasked with a simulation of bags of hard candy falling and splitting open on the floor, with the candy of various shapes and sizes spilling out. This turned out to be way harder then I thought. There is really no built in way for vellum and bullet dynamics to interact with each other in Houdini. After searching the internet, I did find one tutorial on kind of faking the interaction, but it seemed overly complicated to me. So after a bit of R&D I came up with this setup. Its very simple and fast, and solves both the vellum and bullet sims in one network at the same time: It basically works by importing the RBD geo into the vellum collision solver, and the vellum geo into the bullet solver. The mass of the RBD has to be faked in somewhat, so it interacts with the cloth in a more realistic way, but that's it! See hip for example: vellum_x_bullet.hip
  21. 2 points
    found the problem, its because when you enable union compressed fluid surface, it uses a union operation in a vdb combine with the surface from the compressed cache and the vdb particle fluid. For some reason the surface was too small on some frames and the union operation. failed. A simple vdb reshape sdf with dilation fixed it
  22. 2 points
    The Thicken SOP, from Labs is great for this, in case anyone stumbles onto this old thread, especially since it the second google result (for me at least) when searching "houdini thickness". if you don't have labs installed you really should there are some neat tools in there that are super useful outside of gamedev.
  23. 2 points
    Hi all ! I did a simple vex scene with particules orbiting an object. The main challenge is to avoid particules to exit their orbit by computing an vector that correct their distance to the surface object from an iso value. Hope you like it. Update : Added the gradient of geodesic distance as axis of rotation for the particules. Usefull if you want to rotate along each element of a geometry, like arms, legs, tentacles, etc. pop_orbit_001_odforce.hiplc
  24. 2 points
    Can't you just port Java snippet to VEX or Python/C++ and free yourself from the burden of inter-process communication? I know tinkering is fun, but can be very frustrating when involves real-time... anything. If that's not possible 1) I would start from asking if those chunks single process will be occupied with have to communicate with each other? Do they have boundary condition set by their in-progress neighbors? Because if not, you can avoid distributed computing all together by slashing Java array into chunks and pipe it down to many Houdini's independent sessions (concurrent, not parallel, which is easier). If that's not possible 2) I would consider trying Houdini's distributed simulation mechanics first. If you setup distributed FLIP, you'll notice that most tricky business is handled with two nodes called: Gas Net (Field) Slice Exchange, and afaik they will happily exchange any given point attribute or volume over the network's attached chunks. They don't ask what sort of computation is taking place, so you could distribute any VEX snippet or C++ operating on points/volumes over nodes (by just distributing something like a POP sim). If that's not possible 3) I would look into Houdini Engine, which is built around Apache Thrift. In the easiest scenario you can run Python process (with hapi module) and connect it with any number of other python sessions. And those will have entire Houdini inside them running. If you insist on using Java as a data server, you could use Thrift on its side to communicate with Houdini Engine. Using Thrift just spares you time as it's already in Houdini. If that's not possible 4) I would consider using one of Houdini's headers like UT_NetMessage or UT_NetStream for raw data transfer. You can even see the example of how the former one is used in VDB slice exchange. In such case you would have to marshal data for network transfer, there are number of options out there, including FlatBuffers, which is funny, because... FlatBuffers has a builtin support for gRPC, so you get both at once, but gRPC, as name implies, was built for Remote Procedure Calls, not transferring loads of data, so it might not operate as good as you wish with many gigabytes of it. Low level network in nice package (like mentioned HDK headers) may work better (or not)... Also something designed entirely to deal with terabytes over the wires like Arrow might be waiting for your call. hope this helps, skk. ps frankly speaking if you would have been really badass, you would stick to OpenMPI
  25. 2 points
    Hi gang ! Here is my latest vellum file, I played around with noises and constraints. My goal was to emulate a membrane tearing, much like a burning film: You can download the hipfile and play around with it tearing_share.hip
  26. 2 points
    Don't know for that .... Here you have something much more better I think https://renderman.pixar.com/from-hick-to-hipster
  27. 1 point
    Yeah, that's tough. Other things you might try are to increase the sub steps in the vellum solver and and then turn on "re-evaluate sops to interpolate geometry" in the static solver. If this is a VDB sequence, you might try using the time warp sop to interpolate the VDB on the subframes. Also make sure that the VDB is fully active on the "inside". You also might try making your VDB a little bigger with the VDB reshape. In the end, vellum just doesn't collide with a volume that well! In that past, i have even tried making my own collision "solver" to resolve this issue. I got t to work mostly, but it was super slow.
  28. 1 point
    Hi, In my opinion, the best way to deal with this kind of scenarios is to retime (slow down in this case) the colliders, or even all the animated elements in the scene, simulate at a rate that matches your scene at the new retime rate and finally speed up everything at the same rate that matches the initial pre-retime rate; This way you dont need to use so much substeps to compensate. Also you can slow down the time scale on the solver to not use many substeps or even to compensate the slowing down of your scene. Regarding time scale on the solver, this is very important when you use the surface tension feature of the FLIP solver, this feature has high subtep hungry, so instead of using many substeps to converge correctly, try to reduce the solver's time scale instead. Ofcourse all of this mainly depends on the scene, the fx, etc, that you are trying to solve. I hope this heps you! Cheers! Alejandro
  29. 1 point
    Like this? This is Add SOP:
  30. 1 point
    Here I attach a quick hiplc ctp normal.hiplc
  31. 1 point
    What you see in the lower image is only a visualisation of the velocity field, not the final geometry. A fluidsource node is usually used to create volumes for fluid sims. If you want to render the trails, you can scatter points in the volume and use a volumetrail sop to create trails which can be rendered.
  32. 1 point
    group the masked area then you could use a wrangle based on your group then manually type @pscale = 0;
  33. 1 point
    attribute create: set Group Type to Points. set Group to which points should receive new value. (This should be setup the same way as the attribute. Such as if attribute "a" is a float, "Type" should be float. If it's a vector, "Type" should be vector) Attribute Wrangle: set Group to points that should receive new value get attribute and define value i@a = (value); Attribute Adjust Integer/Float/Vector: set Group to points that should receive new value Which attribute Set constant value All these have a similar result to this:
  34. 1 point
    @Librarian Maybe I will also write about intersections someday, but not ready yet... If you often deal with curves, AeLib from Nick Taylor would be a great help (in case you missed it). I really got inspired from the toolset and how those were made. https://vimeo.com/204258764 https://github.com/Aeoll/Aelib
  35. 1 point
    @zbugni I think you Forgot to play with Rotation in this Case /flowRotation.. MonNoi.hiplc
  36. 1 point
    Hi, you can use a path deformer on the input geometry for example and apply a volume wrangle to peform a rotation/scale on the density (using an orientation frame on the curve). tornado_path.hipnc
  37. 1 point
  38. 1 point
    you can do this qt for python, e.g. a python panel, but its not a trivial thing Fuzzy search is typically done with a proxy model using QT model/view architecture for larger applications, but you might be able to get away with using a qlistwidget and a qcompleter, which is much simpler to use
  39. 1 point
    @sant0s81 there are some options, probably not exactly what you want, unfortunately: 1) add the "dot" on the line (alt click on the line), then color the dot (btw you can alt click the dot, to make it persistent) or 2) colour the inputs inside the subnetwork
  40. 1 point
    Hi @lobao, Thanks for following up the progress. Regards a paid tutorial, I think a tutorial is not enough, it has to be a Masterclass or something more robust, this method is not a simple one to deal with, also the pipeline is made out of many different stages that has to be explained in a nice way without overwhelming too much the attendants, so I'm trying to find the best way to do this, maybe a Patreon or a a collection of hips on Gumroad. A Patreon is a good idea, I have many techniques and tools to show, so I think that method would be nice, or maybe people is searching for another way to learn. Who knows! Anyway thanks again to be interested! Alejandro
  41. 1 point
    Had the same problem with the same plugin. The liana exports fine but the stems and leaves are handled differently. Use a convert node to turn them into polys and then you'll be able to export them out. Hope that helps.
  42. 1 point
    In case anyone else is looking for this, I just found a very elegant and simple solution: use the @ptnum attribute and @ptnum+1 for the V coordinate !
  43. 1 point
    Few tips and tricks to manipulate gas simulation. 1. Independent resolution grid. E.g. Overriding vel grid size independent to a density grid. 2. Creating additional utilities. E.g. gradient, speed, vorticity and etc which can be used to manipulate forces. 3. Forces via VEX and some example snippets. smokesolver_v1.hipnc P.S. Some of this technique are not Open CL friendly though.
  44. 1 point
    Zombie thread alert. I figured I'd share this solution for folks that come across this thread in the future years later like I did. The Ends SOP node can be used to delete the loop so the curves are open instead of closed. Set the Close U parameter to Open and it should work.
  45. 1 point
    I have a subnet that is comprised of a bunch of RS lights (that have to remain on the OBJ level) and geometry that represents a practical light setup. I need to animate all lights and geo as a single entity, so I've dropped down a null and parented the subnet to it. 'Child compensation' is turned on in the null to get the subnet to move, but for some reason the objects below move in the opposite direction of the null transform, and it appears to be a double translation as well. Has anyone ever seen this? What can I do to get the subnet to cleanly inherit the the transforms of the null? This can be replicated by dropping down a sphere, collapsing it into a subnet, then attaching it to a null. Thanks. -- mC
  46. 1 point
    I found the largest challenge to be cell splitting for which I needed to implement in-order neighbor traversal: https://gist.github.com/provos/4e88a9f13fb7354fa680c7b1d4c907b2 (this may not be the latest code) Let me think about sharing the HIP file. It was a fair bit of work but ultimately nothing particularly special.
  47. 1 point
    As usual, there are many ways of doing this. One would be setting the collisionignore with a wrangle. The collisionignore is a string attribute and works the same way most of Houdinis include/exclude with "*", "* ^except", "only". So for your example, just group the objects you want to ignore the collision and assign the collisionignore attribute with the desired value(for example "*" for ignoring all collisions). If you want to only exlude specific objects you have to use the DOP objects name. Quick example: if (@group_nocollide == 1) { s@collisionignore = "*"; } Take a look at the attached file. There is a simple setup showing what I mean. Hope that helps. Dennis collisionignore_setup_v01.hiplc
  48. 1 point
    Hi All, Just wanted to share my explorations on this theme. This thread has given me the push to explore a couple of coral growth papers I have been interested in for quite a white, particularly this one: http://www.sciencedirect.com/science/article/pii/S0022519304000761 After playing around with some of the setups on this thread I built a solver based that is a bit of a mutant space colonization system - in that the coral grows towards a food source. This means you can drive the simulation to fill objects and makes it controllable from an artistic perspective. I have attached the HIP if anyone wants to play. Dan. HOU_CoralGrowth_v1.hipnc
  49. 1 point
    I know that this thread is much too old, but here is a file which fixes the issue. I have modified /obj/dopnet1/sourcevolume1/source_tempvel so that the vel volume is sourced properly even in a rotated domain. volumeOrientBUG_fix.hip
  50. 1 point
    Yep. Whenever I learn a thing, I have to write it down, otherwise it's gone within a week.