Jump to content


Popular Content

Showing most liked content since 10/24/2020 in all areas

  1. 2 points
    I am sure there is something deeply philosophical to this..
  2. 2 points
    Here is a procedurally animated creature using some of the all new rigging tools. Had to brush up my russian skills1 to get this working ; ) 1 H18.5 Rigging Tutorial: https://www.youtube.com/watch?v=-AFJ5j47pwE spider.hipnc
  3. 2 points
    Just Have Fun Now Flower Effects and much more Its Crystal Case mystiqueTransform.rar
  4. 1 point
    Should it not be "Output - sRGB" and not "utility-sRGB-texture"?
  5. 1 point
    Hi Alain I have the great pleasure to tell you that this is working beyond dreams I changed very few things, only the pinning of each ends of the curve; the dynamics were set absolutely right for this type of material. Cooking time is almost insignificant and the animation plays back at 12fps with the polywire This setup would even handle a lot more stress than shown here. I am thinking of doing a spray paint nozzle and have this thing paint stuff or write.. I am still considering the best approach.. attribute transfer, Pyro spread temp attr.. If you wish to join this little project, you are more than welcome Many Thanks Vellum_Helix_03.hipnc
  6. 1 point
    In COPs you can use the OCIO Transform VOP inside a VOP COP2 Filter to convert images from ACEScg to srgb or rec709. The DMNK tools also provide a couple of convenient HDAs to streamline that: https://github.com/DominikLingenover/DMNK-Tools As far as external tools, PYCO is very nice: https://mrlixm.github.io/PYCO/standalone/ColorspaceConvert/home/
  7. 1 point
    sorry download here https://drive.google.com/file/d/1jTh-5wyxctsYMXmUOTvMMZ4d16ut9Hw-/view?usp=sharing
  8. 1 point
  9. 1 point
  10. 1 point
    ACES is always better. Its not just good for color saturation. Also highlight and shadow rolloff is much better. And in general it behaves more natural. You will see it in almost every production for cinema; netflix is using it and many others.
  11. 1 point
    Hi, I don't know any built-in features but I made one
  12. 1 point
    Hi, gather the power of your computer for games and workstations for the intermediate. AMD RYZEN 3950X 128GB 3200MHZ CL16 (Crucial Ballistix Black) MSI MAG X570 TOMAHAWK WIFI RTX 3090 24GB Corsair HX1000 80+ Platinum
  13. 1 point
    It's something with transforms. If you look inside the HeightField File SOP, it samples the COP in the XY Plane and then transforms it to ZX. If you do that too it will work.
  14. 1 point
    Hi, if you create heightfield as usually then collision works as expected. I think something is happening when you are creating heightfield with COPs, but unfortunately i don't know what is cause of this .
  15. 1 point
  16. 1 point
    Just gave the gills a little update.
  17. 1 point
    You are Welcome @kronos1711 have Fun
  18. 1 point
    @vinyvince Abs Right. When someone like you Have so much experience (just wish for you That you Make your own Studio why NOt) what you waiting ..Take the Credit And Have FUn ,give the Job the some Talented Guys and Have Fun ..just mine wishful thinking For YOU..who knows .... FLOWER_MUSHROOM_AND_FUN.hiplc
  19. 1 point
    Here is my take on the schizophyllum commune: Project a distorted grid on a displaced torus. Iterate over remeshing and relaxing the grid. Scatter random points along the outer edges. Find their shortest paths across the mesh. Convert the curves into a signed distance field. Offset the SDF contour based on curve orientation. The gills can be flipped by negating the orientation along the path curves. mushroom.hipnc
  20. 1 point
    Hi Kuvaka, Really nice results you have! Regards the buoyancy direction, you can use an explicit one as the basis, typically as inverted gravity direction. The main idea of the implicit buoyancy model that I worked on was to derive a buoyancy direction using the pressure differences but also to not be 100% implicit because its always nice to have control over something. So the idea is that you can initialize this buoyancy direction to then be mixed with the implicit one that the system will produce. For the implicit direction is all about to use the inverse of pressure differences as a factor for the initialized buoyancy direction, this will give you a direction that will go aligned with gravity (if you use gravity as the the buoyancy direction) for the positive pressure (inverted), and a direction that goes in reverse in relation with gravity for the negative pressure. Because both vectors will converge, you can use this convergence at your advantage to generate a general swirl that will be aligned with the buoyancy vector that you took to initialize the system. You have many options to compute a flow out of two convergent vectors in Houdini. Then you use the temperature as a factor to drive the magnitude of this new implicit flow or swirl to now apply it to the system velocity and to control the general swirl movement of the simulation. I hope all of this is clear! Alejandro
  21. 1 point
    Sebastian Lague's stuff is really cool - you have great taste. His code can be translated pretty much directly into VEX; sqrMagnitude becomes length2(), normalized becomes normalize(), and the equivalent of timeStep is the @TimeInc attribute. The key part is putting it inside a solver so the positions are updated each frame, based on their positions from the previous frame. Here's my attempt: (I'll post the file if you're still having trouble but it's a bit messy)
  22. 1 point
    links to have Fun ( In first link you have Nice ex how to read csv and other formats..(Python))and make visualization..and if you do a searching you can find A Ton of ex on JSON format reading into Houdini... https://github.com/UTSDataArena/examples http://bluevisual.tv/personal/shnops/ https://gist.github.com/olihawkins https://github.com/kristinriebe/solarsystem-workshop.. .. regarding movement mass velocity and other stuff.. https://www.utas.edu.au/__data/assets/pdf_file/0006/415536/BenSimons.pdf ..use chops and you have in the first link how to read(for ex-- bacteria .. Have Fun
  23. 1 point
    Hmm... what you'd probably want to do here is start by creating an incrementing point attribute on your template points that represents what frame in the sequence you want each copy to load from. For this example, let's call it i@frame. Once you have that, you could create a string primitive attribute on your packed primitives (after the copy operation) that would point to the full path of the texture on disk: s@texture_path = sprintf("/path/to/textures/root/texture_%g.png", i@frame); Now that you have this as a primitive attribute, you could leverage material stylesheets to override the emissive texture (or whatever texture) on the material applied to your sparks. Stylesheets are a bit cumbersome to use in Houdini, but they're very powerful and they'll work with any render engine. Once you have a material assigned to your object, go to Inspectors > Data Tree > Material Style Sheets, then create a new stylesheet on the geometry container that your sparks live in. Then right-click the stylesheet in the Data Tree and "Add Style". You can then add a Target of type "Primitive", and then an "Override Script" of type "Material Parameter". Then change the "Override Name" column to the name of the parameter you want to override in your material... if you hover over the name of the material parameter in your shader network, you should see the parameter name. In your case it's probably going to be the emission color texture, which is "emitcolor_texture" in a Principled Shader. The "Override Type" should be "Attribute Binding", because you're using the attribute you created earlier to override the material value. Then set the Override Value to the name of the attribute you created: "texture_path". Your stylesheet should look something like the attached screenshot. Once that's done, if you render (and your material is set to be emissive, emissive textures are enabled, and your emission color is 1.0), you should see a unique texture applied to each spark.
  24. 1 point
    It's little hard to find the problem without looking at the scene and checking FEM parameters, there is few possibilities : 1. crank up substeps in fem solver and also collision passes. 2. check solidobject( model tab) setting in dops, make sure you have some numbers for shape stiffness and volume stiffness. 3. also check collision tab and make sure everything is checked on. 4. Remesh your geometry before converting to solidembed or solidconform.
  25. 1 point
    Hello everyone. I have uploaded a fully procedural (indie lc) setup for the terminal. I have put a few sticky notes, plus you can read the text from a .txt file. Thank you again fencer! terminal_setup.rar
  26. 1 point
    I recorded a little video tutorial about creating a dynamic UI populating a menu with csv data. That might be overkill for what you're looking for though: http://brendandawes.com/blog/creating-houdini-menus Alternatively you can use the Edit Parameter Interface, available from the cog icon top right in a node's UI to simply drop in any interface element you like.
  27. 1 point
    Hey Just something I would do in a wrangle or group expression SOP // running over points: @group_entryPt = neighbourcount(0, @ptnum)==2; // then you just add a group promote, converting it to an edge group (with the checkbox ticked of only include complete entities (or whatever it was called, don't have hou open atm )) Edit: That should at least work for the single extreme edge-entry points. For the doubles and up, you probably have to do a bit more, but generally speaking, using the amount of neigbours of a point and the amount of vertices on a point together should work on "2d" geometry, I think but you may have to create the groups directly in vex, to avoid grouping unintended edges. But to avoid selecting edges on both sides of a corner separately, you would have to add additional logic (as soon as you allow those double-edge entry points) if its only 1 and 2 edges you probably can get away with case-by-case handling, if you want to go up to an arbitrary amount of edges, its just will have to get more complicated I guess
  28. 1 point
    it's because in the old Smoke Solver vel is voxel face sampled and density is voxel center sampled so their actual voxel grids are not only misaligned from each other, but also all 3 grids within vel are misaligned from each other, there was a reason for that historically you can sim vel as center sampled by changing Smoke Object/InitialData/VelocitySampling to Center but new Smoke Object (Sparse), whether you sim sparsely or not has it set to Center by default
  29. 1 point
    May be VDB reshape, eventualy with combine to keep some details ? VDBalls.hipnc
  30. 1 point
    if you pack your bottle before feeding into solver you can add attributes i@computecom=0 to disable automatic computation of COM and v@pivot to adjust where the actual COM will be
  31. 1 point
    To select the end points of a polyline simply count the connected neighbours: neighbourcount(0,@ptnum)==1
  32. 1 point
    Probably you want something like keplers second law. The speed is something like the length of the cross product of the Direction from ellipse point to a focus point and the Derivative (of the ellipse function). I've recently posted some examples using an inverted distribution function, which was defined by a density. Here is a modification of it. kepler.hipnc
  33. 1 point
    Hey folks - long time lurker joining the party with a tutorial showing a workflow for integrating the FLIP and pyro solvers, allowing for bidirectional interactions. I cover a few other tips and tricks along the way, so I hope you find it useful! Hip file attached (and linked through from the video). flippyro_diffusefx.hiplc
  34. 1 point
    This is exactly what I want. Thank U so much Jirko!
  35. 1 point
    Combine and Entagma mentioned this on some WEB SEMINAR. https://particula.org/vex/ https://github.com/deshudiosh/PG.hips#c-isolines
  36. 1 point
    well yes and no, obviously you don't want to keep duplicating your function just to change the type so you can define your functions using pre-processor macros which can be more compact even though a bit ugly #define F(TYPE) \ vector TEST(TYPE geo) { \ vector Ret = point(geo,"ABC",10); \ return Ret; \ } \ F(int) F(string) #undef F
  37. 1 point
    you can overload your function with both possibilities by creating 2 or more functions with the same name but different artument types, amounts or even different return type vector TEST (string geo) { vector Ret = point(geo,"ABC",10); return Ret; } vector TEST (int geo) { vector Ret = point(geo,"ABC",10); return Ret; }
  38. 1 point
    Tidied things up a bit, faster to sim, less substeps, thicker knot and rope. Less popping but still a few issues, will see if its the sim or the point deformer. Any suggestions? Added a little twist to the polyWire to do some actual geo threads. HIM_Vellum_Rope_v014.hipnc
  39. 1 point
    Whats wrong with vellum? Had to go and do it the hard way. Far from perfect, tough to get no stretching without tons of substeps, etc. And Point Deform doesn't seem to be best way to go but a good start. HIM_Vellum_Rope_v007.hipnc
  40. 1 point
    I usually just build my own blendshape node with a simple VEX code using lerp() - just one line. https://hdbp.io/BjGNeLeB Easy to change to what you need: https://hdbp.io/e0iS3H5J I find it easier than Aizatulin approach, since you can control the attribute distribution completely by the nodes you want.
  41. 1 point
    I am not sure how many people will find this useful, but I created a little HDA for kerning typography in Houdini. There are a few more things I might add to it including type alignment. But hopefully someone will find this useful seeing as you cannot manually kern letters in Houdini. The one thing I cannot figure out is how to use addAtrib() to fix the "textindex" on a node being created through a callback function. Right now, all "textindex" values are set to "0" opposed to the proper index value. kern.hdanc
  42. 1 point
    I had a look at your scene - lowering the cloth constraint thickness to 0.001 and raising some of the dampening settings got most of the jittering out.
  43. 1 point
    Here is a better preview of one of the textures.
  44. 1 point
    I put together this rolling cloud generator based upon a snippet from the "Attraction" breakdown on the SideFx website. Shown HERE at time code 15:50. This setup uses an animated noise to generate the fuel volume. Constant velocity pushes it in the positive X direction. A volume wrangle is used to apply a range of damping based upon the distance the smoke has traveled. In my most recent Music Video, using this setup, I created a series of .bgeo.sc files containing a density volume and re-timed them to create even more variation from a single export. You can get even more mileage out of re-timming if you include the vel volume along with density. This effectively quadruples your file size, however. Inside the HIP file there is a note with a URL to an open source HIP file that can re-time a .bgeo.sc volume sequence if the sequence contains a vel volume. Velocity based re-timing is much smoother and offers an extended time range compared to just TimeWarping the .bgeo.sc sequence as I did in the video. ap_fuel_from_noise_033118.hiplc
  45. 1 point
    i'm pretty sure mantra can do very similar color operations to any other renderer. you already discovered color correction. that's it for exposure, gamma, saturation, contrast, hue. for levels, you've got Fit Range VOP and Fit Range Unclamped VOP. Color Mix VOP obvisouly allows you to mix colors by a bias (or alpha). then you've got Hue Shift VOP for, well, shifting hues. Another thing you can do with colors is Blend Regions VOP (it can supposedly blend colors by threshold. I never used it but might be interesting to explore), Ramp VOP (for creating gradients), and then of course you can use any math operations to adjust colors: Add, Mult, Subtract, Divide, Modulo, you name it. I'm sure I forgot mention a few but this is good to get you started. cheers. D.
  46. 1 point
    Hey Cristina, So in regards to your question about masking the turbulence field. I've attached a scene file showing how to mask a turbulence field. In the example I've built there are a few steps to get this working: 1) in dops you can use the 'gas match field' node to create a new field ('turbmask_custom') based on an existing field. In this case I first want to build the field that is going to be used for masking. (this is the initialization of the variable). 2) then I need to put a value inside the voxels of the newly created field, so I am using a source volume for this, but in the sop to dop bindings, the density field will put its value in the 'turbmask_custom' field instead of adding it to density. 3) the next step is to add the gasturbulence node to create a noise field, but in the control field tab we can specify the mask. So that is where I put 'turbmask_custom' and also set the control influence to 1 so 100% of my field is used. In the case of your skull, ultimately you need a fog volume density field that contains those masking values. In the file I've added in a sphere to represent your skull. I first build an SDF from the sphere geo, then dilate the sdf, then turn it into a fog volume, then rename the field so it is not named 'surface' but instead is named 'density' so my sourcing in dops will be able to find the density field. I've also turned on the velocity visualization in the pyro object so you can see what the velocity field is doing (especially visible if you turn on/off the control field on the gas turbulence). You can get much more fancy by using dynamic fields that change over time (like temperature or heat, or some other custom field), but this should provide a good base example of masking a field in dops. Good luck and definitely post back the results of your project when you're done with it! dop_masking_v001.hip
  47. 1 point
    Hah! That is the problem. Thanks : ). The only weird thing is that now, when it saves the file, it names frame 111 frame two because it thinks 110 is frame one. I just changed $SF variable to `$SF+109` and now it correctly saves as frame 111. Again, thanks so much for the solution.
  48. 1 point
    it´s pretty easy to do by using complex numbers. just take a look at the attached file and play with the settings. hth. petz moebius_transformation.hipnc
  49. 1 point
    hi, may be this file can help:) fluid flow color.hipnc
  50. 1 point
    it's all about expressions in filename if your path is path/filename.0.tif - path/filename.100.tif you can use `$F+offset` path/filename.`$F-10`.tif if your path is path/filename.000.tif - path/filename.100.tif you need to pad the frame number so if you want to offset it will be like path/filename.`padzero(3, $F-10)`.tif to hold last frame you can use min(offsetFrame, maximumFrameValue ) function path/filename.`padzero(3, min($F-10,100) )`.tif to hold first frame you can use max() function in the same way to hold both ends you can use clamp(offsettedFrame, minimumFrameValue, maximumFrameValue) path/filename.`padzero(3, clamp($F-10,0,100) )`.tif