Jump to content


Popular Content

Showing most liked content since 01/25/2021 in all areas

  1. 7 points
    Two rather short tutorials showing a simple approach on covering mesh surfaces with scales: Houdini file and discussion here:
  2. 6 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.
  3. 5 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
  4. 5 points
    One of the things I have loved about odforce for years is how very generous so many talented artists are on here, but this thread really underscores the downside of that when people abuse that spirit. I'm amazed that multiple artists who have generously and repeatedly provided advice and source files for various methods are simply being given repeated requests for additional free work as thanks for their time. Presumably you are being paid for your work generated with such specific requirements, yet at no point in this entire thread have you indicated any thanks or gratitude to those who have posted solutions to help you, simply demanded more work from theim for free in a rude manner. Perhaps consider making an effort with some of the various methods already offered, and post a .hip file showing you've put any work whatsoever into resolving your request rather than continuing to demand that others simply hand you fully-formed solutions for you to profit off of.
  5. 5 points
    using Arnold's Nested Dielectrics feature.
  6. 4 points
    Hello, great work! Seem it is the FLAM fever again as so many people recently implementing it! I just finished an implementation of The Fractal Flame Algorithm too! Not sure how you did yours but I did mine entirely in CVEX. If anyone is curious you can check the results and download the tool here: FLAM3 for SideFX Houdini Its free and the HDA is unlocked so you can extend it if you like. ( the CVEX code is pre compiled tho because it was so much code that was the only way to keep it manageable ) The 3D version of the variations ar what they are, some work better than other and some are really hard to port into 3D so the 3D option is really there just for fun but consider it a 2D tool and you should use it that way. Cheers, Alessandro
  7. 4 points
    You could look into displacing a high-resolution mesh with voronoise in a point VOP. For the time being, here is a way to populate a surface with real scales. scales.hiplc
  8. 3 points
    Sometimes Support is a bit tricky to be convinced that something is a bug. In this case you are both wrong - this has nothing to do with the constraints - in fact if you remove the constraints from the emission you'll still see the same problem. At the same time it cannot be considered as a bug, as the object is not set up correctly. Vellum sometimes need specific attributes to behave like expected. So the solution here is to add mass attribute and you are good to go. Just change Mass from "Unchanged" to "Set Uniform" for example and it should work.
  9. 3 points
    I wrote a custom render engine in COPs today. While 'engine' is probably a bit far fetched, it's a little ray tracer experimentally supporting: Meshes with UV coordinates Shading on diffuse textures Multiple point lights (including color, intensity, size) Area shadows and light attenuation Ambient occlusion Specular highlights Reflections with varying roughness The snippet basically transforms the pixel canvas to the camera position and shoots rays around using VEX functions like intersect() and primuv(). The rendering process only takes a few seconds. I still have to figure the licensing fees, though COP_render.hipnc
  10. 3 points
    yes .. here it is a 10-years-old thread usage description there sounds long but usage is easy . just drop the otl . turn on points .. helpThatCurve_001_py.otl should be easy . hope that helps .cheers
  11. 3 points
    You can either use a pop spin or pop torque here is an example. particleRot.hip
  12. 3 points
    random angular Velocity... Maybe Angular.hiplc
  13. 3 points
    Make beautify patterns with arrays int dim = chi("dim"); int prim; int pt; int npt = chi("npt")*dim; int pts[]; int randn; int randpt; for(int i;i<dim;i++){ addprim(0,"polyline"); } vector2 uniform_num; for(int i;i<npt;i++){ uniform_num = set(i%dim,i/dim); pt = addpoint(0,uniform_num); prim = uniform_num.x;; addvertex(0,prim,pt); if(prim == 0){ pts = array(i+1,i+1+dim,i+1-dim); }else if (prim == dim-1){ pts =array(i-1,i-1+dim,i-1-dim); }else if (uniform_num.y==0){ pts = array(i+dim,i+dim+1,i+dim-1); }else if (uniform_num.y == chi("npp")-1){ pts = array(i-dim,i-dim+1,i-dim-1); }else{ pts =array(i-1,i+1,i+dim+1,i+dim-1,i-dim+1,i-dim+1); } if(i == 0){ pts =array(i+dim,i+1,i+dim+1); } if (i == dim-1){ pts = array ( i+dim,i-1,i+dim-1); } if (i == npt -dim){ pts = array ( i-dim,i+1,i-dim+1); } if (i == npt -1){ pts = array ( i-dim,i-1,i-dim-1); } int pts_no[]; foreach(int ptn;pts){ if(ptn<i){ append(pts_no,ptn); } } setpointattrib(0,"pts",pt,pts); setpointattrib(0,"pts_no",pt,pts_no); randn = floor(len(pts_no)*rand(i)); randpt = pts_no[randn]; setpointattrib(0,"randpt",i,randpt); }
  14. 2 points
    Hello Guys! I´m having a little trouble with a scene and was hoping you guys could help me figure it out. I´m trying to recreate this tire burnout effect. not the classical, lots of smoke everywhere, but this simple and detailed smoke. https://therealmarky.onfabrik.com/portfolio/audi-r8-spin at the moment I´m emitting some particles at the tire contact with the ground, and using them as an emitter for the smoke. The real problem comes with the slow motion. I´ve tried retiming the sim, but it wont match the animated car. I´ve tried doing the sim at the origin. smoke looks better, but its noticeable how it is moving across the scene. I´ve tried taking the time scale down to 0.5, 0.1, 0.05, 0.025. the sim slows down, but it obviously looses all the details from the microsolvers. My question is, how would you guys attack this kind of slow-motion shots? am I in the right track with the pops and timescale? Thanks a lot in advance!
  15. 2 points
    you can do something like this for example: import toolutils as tu view = tu.sceneViewer().curViewport() view_xform = view.viewTransform() view_position = view_xform.extractTranslates()
  16. 2 points
    Thanks for your response I think I figured out a great solution: - Dropping a partition sop - find the attribute name you want, which in my case is named "agentshapesname" - for the rule say `@agentshapesname' and boom groups. thank you for helping!
  17. 2 points
    You can try to combinate some nodes like polyextrude, fuse, polyreduce and subdivide on a voronoi pattern. Here is a simple example ... voronoi_scales_simple.hipnc
  18. 2 points
    This we gonna use For CNC tooling on Balsa and making "Schablone" for Wood Components . Donne
  19. 2 points
    In case you need an example for the Houdini wrapper...
  20. 2 points
    Maybe this will help https://www.toadstorm.com/blog/?p=722 P.S. It might be much easier to write a wrapper script for launching Houdini, instead of struggling with .env and packages
  21. 2 points
    for alembic: - copy any packed prim to your points (you can also assign path attribute per prim if you are building hierarchy from path, but even without it you will get object per packed prim) - on the ROP alembic output node change Geometry/Packed Transform to Transform Geometry - and you can uncheck Create Shape nodes if you don't care about the geo, just want locators with transform data USD may also be an option
  22. 2 points
    Just eat the same thing every morning, and it'll be a tdous breakfast.
  23. 2 points
    In your case you can make all much simply cogs_automation_problem_fix.hipnc
  24. 2 points
    Hi Matt, I can relate to that. The only way to even top this, might be finding your own postings really interesting and new after a few years ; )
  25. 2 points
    Hi Librarian, Not...I just used Lines, VOps, Wrangles creating and admnistrating attributes to manipulate PolyWires, Polyextrudes, Carves parameters etc This model looks complex, but it´s quite simple.
  26. 2 points
    A more elaborate example for cutting roads through height fields: Identifies flat areas for settling locations Connects them to a road network Bends and resamples paths into avoiding slopes Smoothes out height variations and blends them into the terrain. heightfield_roads.hiplc
  27. 2 points
    Hi, for these kind of tasks you can use attributes, which can be stored in the geometry. The sort sop has the option "primitive sort" -> "by attribute". The result strongly depends on the attributes you set. In your case you can probably combine two attributes. The prim distance to the center prim (by point and not edge incidence) and the direction from the center. Here is an example using two different methods, to get the distance from the center (probably there are better ways), the other attribute uses the xyzdist() function to a circle. Once you have the attributes you can combine them by just adding them. Since the direction ist between 0 and 1, the distance attribute which is a count (0,1,2,...) will dominate. prim_sort_spiral.hipnc
  28. 2 points
    Why not use Bifrost, don't you like Maya? Seriously though, SideFX adds so many amazing features in every half release that I would excuse them for not spending much time on an MPM solver. From the little I know about MPM, it's very slow. Also, most FX tasks are not snow or gooey simulations that would require MPM.
  29. 2 points
    you can use Find Shortest Path SOP and make it prioritize convex curvature areas since it's a bit ambiguous where should the ridges start and end you will need to provide a hint like start and end positions here is an example of specifying start and end positions using simple curves and it will try to find the best path following ridges, if it doesn't you can always define long paths by multiple shorter ones ts_mountain_find_ridges.hip
  30. 2 points
    Did you try the "preserve quads" option on the polyreduce..?
  31. 2 points
    The simplest answer I can think of is to rebuild the input curve and turn it into a single curve node (very easy to do with python). From there, do whatever you want. node = hou.node('/obj/geo1/alembic_curves_unpacked') parent = node.parent() pos = node.position() geo = node.geometry() prims = geo.prims() for prim in prims : crvnode = parent.createNode("curve") pts = prim.points() tmppos = "" for pt in pts : tmppos += ",".join([str(x) for x in pt.position()]) + " " crvnode.parm("coords").set(tmppos) crvnode.setPosition(pos) crvnode.move([0,-1]) pos = crvnode.position()
  32. 2 points
    In houdini.env: HOUDINI_PATH=$HFS/houdini:/path/to/my_tools where my_tools is a directory that has a structure which houdini recognises (i.e otls, scripts folders etc )
  33. 2 points
    Another option can be the 3d skeleton extraction tool from labs. sample_skeleton_orientation.hipnc
  34. 2 points
    @yujiyuji Play with this setup , in resample SOP ,adjust only steps that You Like ,or I think its Best to Just Explain in Words What Type of Effect or Installation (model) You planning to do. Houdini have million approaches to handle some "problems" I think . Have Fun sampleFix.hiplc
  35. 2 points
    Hi, in Mantra you can sidestep the problem with stylesheets and cvex for primitives. E.g.: Data Binding to intrinsic:indexorder In this example, I'm targeting packed primitives themselves. If I would add subtarget: Primitive I could target individual polygons on a rubber toy. You can find some examples in the crowd section of the documentation. packed_target.hipnc
  36. 2 points
    here’s another one without relying on an iterative approach geo_along_curve.hipnc
  37. 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
  38. 2 points
    I created this as a camera lock indicator:
  39. 2 points
    Here are a few more links relates to tires. https://www.sidefx.com/forum/topic/67731/?page=1#post-287800
  40. 2 points
    look inside of Vellum Object DOP/guides node and then all the nodes between CONSTRAINTS node and switch12 node, those are responsible to compute the data on your constraint geometry, so you can get them from there and include in your setup
  41. 1 point
    Librarian By the way, the first example was to make a curve follow a ray. It doesn't work well on curves. An alternative might be to match the curve to the polygon deformation. For example, Lattice Deformation But anyway, I'm glad that Soft Selection has become easier. FallOff_SoftSelectionCurveRAY_v001.001.hipnc
  42. 1 point
    Maybe you can reference the incoming point's position in the pivot parameter
  43. 1 point
    Just a simple rendering / tutorial for my patreons. Simple CC.
  44. 1 point
    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
  45. 1 point
    Amin, you can also dive inside and see, what exactly happens before pre-solve, after post-solve, and between them. I have attached a picture. For example, you can see, when the @pprevious attribute gets written, it is in between the Pre-Solve and Post-Solve inputs (in the node named "stash_current_pos"). So, if a new particle is sourced in the current timestep (usually in the post-solve input), its "has_pprevious" attribute is 0.
  46. 1 point
    Just need to find Adjust and with Chops and Colors endless patterns absolutely Strange What waves Do..
  47. 1 point
    vector pos_tex = set(X, Y, 0.0); vector geo_clr = uvsample(geo, 'Cd', 'uv', pos_tex); assign(R, G, B, geo_color); konstantin magnus thanks a bunch!
  48. 1 point
    Hi Davide, for strings and arrays, you can use the array[start:stop:step] syntax: a[start:stop] // items start through stop-1 a[start:] // items start through the rest of the array a[:stop] // items from the beginning through stop-1 a[:] // a copy of the whole array For your case, this is the syntax: int coord = 6; // I changed the coord from 5 to 6 string s = "0123456789"; s@s_1 = s[:coord]; // "012345" s@s_5 = s[coord:]; // "6789" More examples and explanation here: https://stackoverflow.com/questions/509211/understanding-slice-notation a[-1] // last item in the array a[-2:] // last two items in the array a[:-2] // everything except the last two items //There is also the step value, which can be used with any of the above: a[start:stop:step] // start through not past stop, by step
  49. 1 point
    this sorta thing? scatter_density_relax_pscale.hip
  50. 1 point
    or volumesample() on a vdb sdf. maybe not the most straight forward solution, but one that is pretty handy. and I believe faster on high point counts.