Jump to content

Leaderboard


Popular Content

Showing most liked content since 10/12/2019 in all areas

  1. 14 points
    I wrote an article that is probably only of interest for the .1% It is a crash introduction to HDK, C++ and the mesh laplacian. https://mbaadsgaard.com/portfolio/laplacian-eigenvector-plugin-for-houdini/ Feedback is, of course, also welcome
  2. 10 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
  3. 7 points
  4. 6 points
    You can generate collision / collisionvel fields from the vellum and copy it back to the smoke solver. DOP_Vellum_Pyro_Feedback_RnD_v002.hipnc
  5. 6 points
    Hi all, As some of you may know I have recently started a youtube channel where I am sharing some techniques, setups and tips. My goal is to first cover some of the fundamental tools/setups and then build more elaborate setups. I wanted to share this with the odforce community too as this community will always have a special place in my heart :). Thank you for watching & have fun learning! The channel: https://www.youtube.com/channel/UCZMPkkgnAFghvffxaTh6CsA My first video:
  6. 6 points
    I learned quite a bit from this tutorial as I have just recently started to learn Houdini. I took it a bit further and also applied the same or similar techniques to other variants. Rendering done in Renderman 22.6 Thanks, Ben P.S. I also could not see sprinkles sunk into the surface on my real world samples Quite the contrary in fact, the coating was reaching upwards by surface tension around the sprinkles by a tiny bit - which is what I tried to replicate on the donut with the pink sugar coating.
  7. 5 points
    I want to start spending an hour everyday to just explore simple stuff in Houdini. This will be areas I probably feel I lack a little understanding, as well as ideas I have had but never really executed. Hopefully some form of render will emerge from every little exercise that I do. Last night I had a quick dive into vellum and played around with some Cloth. Rendered in Redshift.
  8. 4 points
  9. 4 points
    Just surround the chramp() function with vector(), like this: @Cd = vector(chramp("myRamp", a));
  10. 4 points
    OBJ Wrangle https://vimeo.com/286025778 CPP Wrangle https://vimeo.com/171189268
  11. 4 points
  12. 4 points
    Heres a quick and dirty setup of the concept Toad was talking about. scatterbox_01.hiplc
  13. 4 points
    Haven't seen 18 yet so don't know if the code editor was improved, but if not, this still is my ABSOLUTE NR. 1 wish. if(code_editor_improved != true) { Code editing in Houdini Wrangles is - well - crap. It's a total shame we don't even see command parameter lists when typing since even in value fields typing expressions does it and has autocomplete for paths etc. Even only bringing that ability to the VEX editor would be very helpful. Of course it would also make a lot of sense to have other settings and helpers in there, like auto-closing brackets, more clever cursor positioning, offering existing variables and attributes when typing etc. - the Houdini devs should know ALL about that, they probably spend their life in real code editors... The use of external editors could be improved a lot if a.) we wouldn't have to press ALT+E twice for the external editor and wouldn't have to get to the floating editor first each time and b.) if that connection would be "live" like for instance the Pinegrow Web Editor does it with a little plugin for Code and Atom, where you can type in either the internal or external editor and they update each other in realtime. The current system is too clumsy and the 3rd party implementations also aren't really there (no negativity towards the authors intended at all!). Make it native! Make it goooooooood! } else { All is well. Nothing to see here. :-) } Cheers, Tom
  14. 4 points
    I just wish we can select/edit multiple points at a time in Curve Node. It's been so many years, the Curve Tool in Houdini still sucks.
  15. 3 points
    This has come up quite often for me when working with imported static FBX files. Often you will get every little piece of a model inside it's own geo object but you really just want to work with them all as a single mesh. This script will examine your node selection and create a new /obj level object that will object merge in all the nodes selected into a single merge. Then you can just use that single node to represent your model. (i.e fix up normals, detail materials, prepare for simulation, export etc...) import hou THRESHOLD = 0.015 def luminance(pixel): return (0.299 * pixel[0] + 0.587 * pixel[1] + 0.114 * pixel[2]) def is_similar(pixel_a, pixel_b, threshold): return abs(luminance(pixel_a) - luminance(pixel_b)) < threshold lst_user_selection = hou.selectedNodes() if len(lst_user_selection): # Make a geo node that will ObjectMerge in all the nodes in the selection. node_geo = hou.node('/obj').createNode("geo","geo_merge_result") if node_geo: node_geo.moveToGoodPosition() #node_geo.node('file1').destroy() node_merge = node_geo.createNode('merge') node_merge.moveToGoodPosition() # Create a normal to fix up everything after the merge. node_normal = node_geo.createNode("normal","normal1") node_normal.setInput(0, node_merge) # Create a NULL for our output placeholder. node_normal.setDisplayFlag(True) node_normal.setRenderFlag(True) node_normal.moveToGoodPosition() # Create a NULL for our output placeholder. node_null = node_geo.createNode("null","OUT") node_null.setInput(0, node_normal) # Create a NULL for our output placeholder. node_null.setDisplayFlag(True) node_null.setRenderFlag(True) node_null.moveToGoodPosition() for (n,node) in enumerate(lst_user_selection): print node.name() node_temp = node_geo.createNode("object_merge",node.name()) node_temp.parm('objpath1').set(node.path()) node_temp.parm('xformtype').set(1) node_temp.moveToGoodPosition() assign_by_node_color = True if assign_by_node_color: # Use the color of nodes to inherit the same @shop_materialpath. s = "rs_DEFAULT" if is_similar(node.color().rgb(), (0.584,0.776,1.0), THRESHOLD): s = "rs_blue3" if is_similar(node.color().rgb(), (0.6,0.6,0.6), THRESHOLD): s = "rs_grey5" if is_similar(node.color().rgb(), (0.145,0.667,0.557), THRESHOLD): s = "rs_green5" if is_similar(node.color().rgb(), (1.0,0.725,0.0), THRESHOLD): s = "rs_yellow6" if is_similar(node.color().rgb(), (0.996,0.933,0.0), THRESHOLD): s = "rs_yellow5" # Create a wrangle to define our shop_materialpath. node_wrangle = node_geo.createNode("attribwrangle","attribwrangle1") node_wrangle.parm('snippet').set('s@shop_materialpath = "/shop/%s";' % s) node_wrangle.parm('class').set(1) node_wrangle.moveToGoodPosition() node_wrangle.setInput(0, node_temp) # Create a color to match the node color. node_color = node_geo.createNode("color","color1") node_color.parm('colorr').set(node.color().rgb()[0]) node_color.parm('colorg').set(node.color().rgb()[1]) node_color.parm('colorb').set(node.color().rgb()[2]) node_color.moveToGoodPosition() node_color.setInput(0, node_wrangle) node_merge.setInput(n,node_color) else: node_merge.setInput(n,node_temp) In this image the white areas were not part of the selection. The color of the nodes in the selection is forwarded into the object merge as an additional color node. There is also an attribute wrangle added inline to assign the @shop_materialpath based upon the color detected. This can convert objects with same exact material referencing multiple copies of the same material into a single /shop path material. You can adjust to /mat if needed.
  16. 3 points
    Hey everyone, so after my very long thread (https://forums.odforce.net/topic/44053-implement-kernel-maths-in-vex/) I finally found a solution. The setup works great at 0.05 res, you might have to dive inside the solver and change some parameters to get it work at other resolutions (especially to get the droplets). Here are some test : Emission threshold at 60 (depending on the situation, there might be some abusive expansion, like at the end on the rubber toy, but this seems impossible to fix when you want a full thin sheet) Stretch threshold at 0.75 / Surface Tension 0.5 Emission threshold at 15 / Stretch threshold at 1.25 / Surface Tension 1 Houdini default Flip with Surface Tension at 1 Crown test with 50 Emission threshold (problem with infinite expansion with liquid dropping from the collider) If someone has suggestion to improve it, feel free to tell me I'm still working on fixing the infinite expansion issue, but the emission threshold is doing great until 20-30 depending on the situation Cheers, thin_sheet_solver.hipnc
  17. 3 points
    Recent work from Chinese animated feature 哪吒 (NeZha), I was responsible for creating and rendering of the water effects using Houdini flip to build a guided system for water and render in Mantra, final compositing done in Nuke.
  18. 3 points
    Hi tmac, you can move the internal point of a triangle to the border by applying the average position of its two other points to it: // in a primitive wrangle if(primvertexcount(0, i@primnum) == 3){ // make sure it's a triangle int pts[] = primpoints(0, i@primnum); // collect all points of the triangle vector pos = 0.0; // set a initial position value for summing up the other two points positions later int pt_move = -1; // set a initial point number for the yet unknown inner point foreach(int pt; pts){ // run over all points of this triangle if(inpointgroup(0, 'outer', pt) == 1){ // ask whether this point is part of the outer group pos += point(0, 'P', pt); // add its position to the position sum from line 3 } else{ // if the currently processed point is not part of the outer border.. pt_move = pt; // .. define it as the inner point thats supposed to be moved.. } } vector pos_avg = pos / 2.0; // .. to the average position of the other two points. setpointattrib(0, 'P', pt_move, pos_avg, 'set'); // apply the new position to the inner point. } Rising the roof can be done without promoting the polyframe`s egdedist attribute, simply by calling the vertex attribute within a point wrangle: v@P.y += vertex(0, 'edgedist', i@vtxnum); roof.hipnc
  19. 3 points
    Just to show the blender heads how it's done ; ) I have created a tutorial on modeling a procedural donut and chose this place for posting the (updated) hip file. donut.hipnc
  20. 3 points
    import hou import numpy as np geo = hou.node('/obj/geo1/torus').geometry() # Read the attributes into numpy arrays pos_array = np.frombuffer(geo.primFloatAttribValuesAsString('pos'), dtype=np.float32) dir_array = np.frombuffer(geo.primFloatAttribValuesAsString('dir'), dtype=np.float32) # Split the array by 3 pos_array = np.array_split(pos_array, pos_array.size/3) dir_array = np.array_split(dir_array, dir_array.size/3) # Stack the arrays (similar to python zip()) stack = np.column_stack((pos_array, dir_array)) # Make a single continuios array of form pos.x pos.y pos.z dir.x dir.y dir.z final = stack.flatten() # Save to a file with float precision = 3 np.savetxt('c:/temp/foo.txt', final, fmt='%.3f', newline=' ') If you need speeeeeeeed
  21. 3 points
    Binding of mouse buttons for hot keys and what not Some mouses have multiple buttons that currently are unused. For example the back and forward buttons. These could be used to dive in and out of a node. Ability to intersect console messages using python that are send by vex (printf). For example this would allow for the creation of a python panel that intersects the console messages sort and colour codes them.Making it more useful as a debug tool for vex codes A better option for the Houdini console window. Currently it's just popping up and always in the way. If this would be a proper panel it could be doct like any other panel.
  22. 3 points
    Hi Ahmet, just to confuse you a little bit more, here is the definite answer ; ) use addpoint(), prim_normal(), setpointattrib() and removeprim() in a primitive wrangle: int pt = addpoint(0, v@P); vector nml = prim_normal(0, i@primnum, vector(0.0)); setpointattrib(0, 'N', pt, nml, 'set'); removeprim(0, i@primnum, 1); Out of curiosity: Hasn't this already been solved in your old threads? Another thing: You keep posting in the wrong forum section: 'Education' is for posting tutorials and learning resources. Your questions belong to 'Modeling'.
  23. 3 points
    Ok, I'll play. I'd love to see a 3D Camera Tracker/Solver as well as proper support for playback of Quicktime and DNxHD files right into the viewport. Blender has it, C4D has it, shouldn't Houdini have it too? I know that this is the type of specialized tool that is typically done by a 3rd party app like SynthEyes or PFTrack, but having a way to track basic video right into Houdini would be a time saver, particularly for not overly challenging situations. Anyway, I want it...so there!
  24. 3 points
    There are so many nice example files on this website that I am often searching for. I wanted to use this page as a link page to other posts that I find useful, hopefully you will too. Displaced UV Mapped Tubes Particles Break Fracture Glue Bonds Render Colorized Smoke With OpenGL Rop Moon DEM Data Creates Model Python Script Make A Belly Bounce Helicopter Dust Effect Conform Design To Surface Benjamin Button Intro Sequence UV Style Mapping UV Box and Multiple Projection Styles Ping Pong Frame Expression Instance vs. Copy (Instance Is Faster) Particle Bug Swarm Over Vertical and Horizontal Geometry Rolling Cube Rounded Plexus Style Effect Pyro Smoke UpRes Smoke Trails From Debris Align Object Along Path Fading Trail From Moving Point Swiss Cheese VDB To Polygons Get Rid Of Mushroom Shape In Pyro Sim A Tornado Ball Of Yarn Particles Erode Surface Unroll Paper Burrow Under Brick Road Non Overlapping Copies Build Wall Brick-By-Brick FLIP Fluid Thin Sheets Smoke Colored Like Image Volumetric Spotlight Moving Geometry Using VEX Matt's Galaxy Diego's Vortex Cloud Loopable Flag In Wind Eetu's Lab <--Must See! Wolverine's Claws (Fracture By Impact) Houdini To Clarisse OBJ Exporter Skrinkwrap One Mesh Over Another Differential Growth Over Surface [PYTHON]Post Process OBJ Re-Write Upon Export Rolling Clouds Ramen Noodles Basic Fracture Extrude Match Primitive Number To Point Number Grains Activate In Chunks Fracture Wooden Planks Merge Two Geometry Via Modulus Fill Font With Fluid DNA Over Model Surface VDB Morph From One Shape To Another Bend Font Along Curve Ripple Obstacle Across 3D Surface Arnold Style Light Blocker Sphere Dripping Water (cool) Exploded View Via Name Attribute VEX Get Obj Matrix Parts eetu's inflate cloth Ice Grows Over Fire Flying Bird As Particles DEM Image To Modeled Terrain Pyro Temperature Ignition Extrude Like Blender's Bevel Profile Particles Flock To And Around Obstacles BVH Carnegie Mellon Mocap Tweaker (python script) Rolling FLIP Cube Crowd Agents Follow Paths Keep Particles On Deforming Surface Particle Beam Effect Bendy Mograph Text Font Flay Technique Curly Abstract Geometry Melt Based Upon Temperature Large Ship FLIP Wake (geo driven velocity pumps) Create Holes In Geo At Point Locations Cloth Blown Apart By Wind Cloth Based Paper Confetti Denim Stitching For Fonts Model A Raspberry Crumple Piece Of Paper Instanced Forest Floor Scene FLIP pushes FEM Object Animated Crack Colorize Maya nParticles inside an Alembic Path Grows Inside Shape Steam Train Smoke From Chimney Using Buoyancy Field On RBDs In FLIP Fluid Fracture Along A Path COP Based Comet Trail eetu's Raidal FLIP Pump Drip Down Sides A Simple Tornado Point Cloud Dual Colored Smoke Grenades Particles Generate Pyro Fuel Stick RBDs To Transforming Object Convert Noise To Lines Cloth Weighs Down Wire (with snap back) Create Up Vector For Twisting Curve (i.e. loop-d-loop) VDB Gowth Effect Space Colonization Zombie L-System Vine Growth Over Trunk FLIP Fluid Erosion Of GEO Surface Vein Growth And Space Colonization Force Only Affects Particle Inside Masked Area Water Ball External Velocity Field Changes POP particle direction Bullet-Help Small Pieces Come To A Stop Lightning Around Object Effect Lightning Lies Upon Surface Of Object Fracture Reveals Object Inside Nike Triangle Shoe Effect Smoke Upres Example Julien's 2011 Volcano Rolling Pyroclastic FLIP Fluid Shape Morph (with overshoot) Object Moves Through Snow Or Mud Scene As Python Code Ramp Scale Over Time Tiggered By Effector Lattice Deforms Volume Continuous Geometric Trail Gas Enforce Boundary Mantra 2D And 3D Velocity Pass Monte Carlo Scatter Fill A Shape Crowd Seek Goal Then Stop A Bunch Of Worms Potential Field Lines Around Postive and Negative Charges Earthquake Wall Fracture Instance Animated Geometry (multiple techniques) Flip Fluid Attracted To Geometry Shape Wrap Geo Like Wrap3 Polywire or Curve Taper Number Of Points From Second Input (VEX) Bullet Custom Deformable Metal Constraint Torn Paper Edge Deflate Cube Rotate, Orient and Alignment Examples 3D Lines From 2D Image (designy) Make Curves In VEX Avalanche Smoke Effect Instant Meshes (Auto-Retopo) Duplicate Objects With VEX Polywire Lightning VEX Rotate Instances Along Curved Geometry Dual Wind RBD Leaf Blowing Automatic UV Cubic Projection (works on most shapes) RBD Scatter Over Deforming Person Mesh FLIP Through Outer Barrier To Inner Collider (collision weights) [REDSHIFT] Ground Cover Instancing Setup [REDSHIFT] Volumetric Image Based Spotlight [REDSHIFT] VEX/VOP Noise Attribute Planet [REDSHIFT] Blood Cell Blood Vessel Blood Stream [REDSHIFT] Light Volume By Material Emission Only [REDSHIFT] Python Script Images As Planes (works for Mantra Too!) [REDSHIFT] MTL To Redshift Material [REDSHIFT] Access CHOPs In Volume Material [REDSHIFT] Mesh Light Inherits Color [REDSHIFT] Color Smoke [REDSHIFT] FBX Import Helper [REDSHIFT] Terrain Instancer Height Field By Feature Dragon Smashes Complex Fractured House (wood, bricks, plaster) Controlling Animated Instances Road Through Height Field Based Terrain Tire Tread Creator For Wheels Make A Cloth Card/Sheet Follow A NULL Eye Veins Material Matt Explains Orientation Along A Curve Mesh Based Maelstrom Vortex Spiral Emit Multiple FEM Objects Over Time Pushing FEM With Pyro Spiral Motion For Wrangle Emit Dynamic Strands Pop Grains Slope, Peak and Flat Groups For Terrains Install Carnegie Mellon University BVH Mocap Into MocapBiped1 Ramp Based Taper Line Fast Velocity Smoke Emitter Flip Fill Cup Ice Cubes Float [PYTHON]Export Houdini Particles To Blender .bphys Cache Format Collision Deform Without Solver or Simulation Mograph Lines Around Geometry Waffle Cornetto Ice Cream Cone Ice Cream Cone Top Unroll Road Or Carpet Burning Fuse Ignites Fuel or Painted Fuel Ignition Painted Fuel Combustion Small Dent Impact Deformation Particle Impact Erosion or Denting Of A Surface Helicopter Landing Smoke And Particles Radial Fracture Pieces Explode Outwards Along Normal Tangent Based Rocket Launch Rolling Smoke Field Tear/Rip FLIP (H12 still works in H16) Rain Flows Over Surface Rains Water Drip Surface Splash Smoke Solver Tips & Tricks Folding Smoke Sim VEX Generated Curve For Curling Hair Copy and Align One Shape Or Object To The Primitives Of Another Object (cool setup) A Better Pop Follow Curve Setup FEM Sea Cucumber Moves Through Barrier Fracture Cloth Smoke Confinement Setup Merge multiple .OBJ directly Into A Python Node Blood In Water Smoke Dissipates When Near Collision Object Whirlpool Mesh Surface Whirlpool Velocity Motion For FLIP Simple Bacteria Single Point Falling Dust Stream Flames Flow Outside Windows Gas Blend Density Example Localized Pyro Drag (smoke comes to a stop) Granular Sheet Ripping Post Process An Export (Post Write ROP Event) Corridor Ice Spread or Growth Set Velocity On Pieces When Glue Bonds Break Water Drops Along Surface Condensation Bottle Grains Snow or Wet Sand Starter Scene A Nice Little Dissolver Turn An Image Into Smoke Fading Ripples Grid Example Stranger Things Wall Effect Face Through Rubber Wall [PYTHON]Create Nurbs Hull Shelf Tool [PYTHON] Ramp Parameter Select Outside Points Of Mesh, Honor Interior Holes Sparks Along Fuse With Smoke Umbrella Rig Melt FLIP UVs Tire Burn Out Smoke Sim Flip or Pyro Voxel Estimate Expression Motorcycle or Dirt Bike Kicks Up Sand Particles Push Points Out Of A Volume [PYTHON]Cellular Automata Cave Generator Punch Dent Impact Ripple Wrinkle VEX Rotate Packed Primitive Via Intrinsic Kohuei Nakama's Effect FLIP Fluid Inside Moving Container Particles Avoid Metaball Forces FLIP Divergence Setup FLIP Transfer Color Through Simulation To Surface Morph Between Two Static Shapes As Pyro Emits Constraint Based Car Suspension Pyro Smoke Gas Disturbs Velocity Wire Solver Random Size Self Colliding Cables Fast Cheap Simple Collision Deform CHOP Based Wobble For Animated Character Slow Motion FLIP Whaitewater Avoid Stepping In Fast Pyro Emission Fast Car Tires Smoke FLIP Fluid Fills Object Epic Share Of Softbody/Grain Setups (Must see!) Balloon, Pizza, Sail, Upres Shirt, Paint Brush Create Pop Grain Geometry On-The-Fly In A DOPs Solver Varying Length Trails VEX Based Geometry Transform Determine Volume Minimum and Maximum Values Grain Upres Example Animated pintoanimation For Cloth Sims Batch Render Folder Of OBJ files Vellum Weaving Cloth Fibers Knitting Kaleidoscopic Geometry UV Image Map To Points Or Hair Color Particles Like Trapcode Particular Flat Tank Boat Track With Whitewater Orthographic Angle Font Shadow Select Every Other Primitive or Face? Printer Spits Out Roll Of Paper Unroll Paper, Map, Plans, Scroll Simple Vellum L-System Plant Basic Cancer Cell 2D Vellum Solution Vellum Animated Zero Out Stiffness To Emulate Collapse Whitewater On Pre Deformed Wave [PYTHON] Menu Callback Change Node Color Extruded Voronoi With Scale Effector Multi Material RBD Building Fracture House Collapse Spin Vellum Cloth Whirlpool Vortex Trippy Organic Line Bend Design Logo Based Domino Layout Delete Outer Fracture Pieces, Keeping Inside Pieces UV Mapped Displaced Along Length Curly Curves Slow Particle Image Advection Nebula Saw Through VDB Like Butter Fuel Based Rocket Launch With Smoke Deform Pyro Along Path Bend Pyro Gas Repeat Solver With RBD Collision Use Google To Discover Attached HIP Files Useful Websites: Tokeru Houdini Houdini Vex Houdini Python FX Thinking iHoudini Qiita Ryoji Video Tutorials: Peter Quint Rohan Dalvi Ben Watts Design Yancy Lindquist Contained Liquids Moving Fem Thing Dent By Rigid Bodies Animating Font Profiles Guillaume Fradin's Mocap Crowd Series(no longer available) Swirly Trails Over Surface http://forums.odforce.net/topic/24861-atoms-video-tutorials/ http://forums.odforce.net/topic/17105-short-and-sweet-op-centric-lessons/page-5#entry127846 Entagma SideFX Go Procedural
  25. 2 points
    The End is Nigh! Houdini 18 is COMING!!! Kicking this wish list off as by all trending and statistical estimated Houdini 18 should be arriving in the Halloween time period of old. My first wish is a call to ARMs! Seriously speaking maybe one day Python 3 inline with the Visual Effects Society guidelines for 2020, but long term a lot of hardware profiles are switching to ye-old ARM based architecture something as old as SideFX itself and installed on over a 100 Billion devices. The catch is these are the IOT, Mobile, and XR hardware of the world which to be fair is still behind server racks. However the phone has drastic computing potential that if Intel would stop fighting it due to licensing issues ARM and RISC would have taken over the market. I really hope COPs has a second a life. It's easier to use SOPs and VEX for processing images and HEIGHTFIELDS than with COPs with far less bottle necks and crashing. The amount of nodes and stability in COPs is falling far behind all other contexts including every ones darling wrangle node. I would almost wish for COPs to be fully integrated into SOPs or MATs. Streamline the support into two heavily invested areas already. Gaining several debugging abilities that are just not implemented in COPs like the Geometry Spreadsheet. There are 151 nodes in COPs in which a lot of them could become quickly redundant if ported to either SOPs or MATs. If converted to MATs we would then have a Substance equivalent, especially if they gave the node UI a little love to show per node images. The biggest risk is overloading another context, but to be fair COPs is so severely under loaded it falls into the second tier of networks, so porting those tools would be a mere blip on the radar of total node count. My most realistic wish currently if for subnets and managers to have the flatten ability like foreach loops with the ability to collapse and dive into them. This would maintain networks for those of you who fear the combined context, but also allow to flatten simple networks so you can easily trace and debug all dependencies. As always this is a non-official wish list. So please submit BUGs, RFEs, and Questions to support. Also for anecdotal questions and rants branch them to another thread people will more likely help you for dedicated issues. -Ben
  26. 2 points
    Hi, I am specialized in Houdini FX, Simulations (flip, pyro, RBD Bullet), VEX and Python scripting also a good experience in lighting and compositing. Currently based in Shenzhen, China. you can checkout my vimeo for my work and contact me on LinkedIn. Thanks, Mahesh MS. vimeo: https://vimeo.com/maxcolor/ LinkedIn: https://www.linkedin.com/in/maxcolor/
  27. 2 points
    In case you wanted truly horizontal greeble, you could put a clip SOP into loops on all primitives. Keeps you UVs intact, too. horizontal_greeble.hipnc
  28. 2 points
    I'd recommend against using parameter paths that point different nodes in VEX like Roznick said, create all UI you need on your wrangle and just channel reference those parameters to external parameters, this way Houdini will be able to track dependencies and if you rename your line1 node everything will still work
  29. 2 points
    The Guide Process SOP in Bend mode works for this. You just have to define a prim attr that you can use as a bend axis... for this it'd be crossing N and up (the "forward" axis of the curves). Check the attached file. xoxo bend_curves_out_toadstorm.hip
  30. 2 points
    Thanks Noobini !! So here's just a new test after some new vex trials : I'm pretty happy with the result but it only works at the resolution 0.05, and with the minimum insertion threshold set at 0.25... And I didn't manage to fix the infinite expansion of the fluid (as you can see below, he seems to be taking a shower with water coming from nowhere...) Still have a lot of work... Cheeeers, thin_sheet_test.hipnc
  31. 2 points
    great attitude, thanks for sharing rather than ask lots of questions then go into hiding...Grrrrrr!!!
  32. 2 points
    v@force and v@v in POPs are very close to force and velocity in physics, so if you read more about force and velocity in physics in general, you'll get better idea about what you are dealing with there is many ways to describe them, so for example you can think of them like this v@v is the current velocity per second, or in other words change of position per second v@force is change of momentum per second, in simple case if @mass is 1 then v@force is the same as acceleration which is change of velocity per second, but more generally v@force describes change of velocity per second proportional to mass so in other words, they are not the same, and in similar way to how velocity affects position, force affects velocity
  33. 2 points
    small coconut spot I made entirely in houdini
  34. 2 points
    A hacky way to do this would be to load up your packed Alembics so you have 200 packed Alembic primitives or whatever, then blast all but piece`$F` over the course of 200 frames, then unpack and write this out as a sequence, so that you have 200 frames written out with a single piece in each frame. Then load this back in as a packed disk sequence. You could then copy that packed disk sequence to each instance point, and then use `setprimintrinsic()` to set the `index` primitive intrinsic of each copy to be whatever frame/piece you want.
  35. 2 points
    This does not seem right. Most of the time forces are distributed pretty uneven based on the stress of the constraint system. I modified your scene a bit, to illustrate my point - as you can see all constrains are using the same break threshold (with the exception of both sides - I made them stronger on purpose, as they are most likely to fail), but only some of them are broken - where the forces are much stronger than the rest of the constraint network. You can expand on this and add different types of constraint breaks based on force, torque or distance between the pieces. Snap_Constraints_Example_2_MOD.hipnc
  36. 2 points
    @evilRainbow Hey sorry I didn't reply sooner. I'm posting an updated file that goes into a little bit more depth as to how orientations are computed by the Copy SOP, and then how to modify those rotations one axis at a time, all using quaternions. Basically the Copy SOP is going to try to do whatever it can to figure out how to orient your copies if you don't provide enough information in the form of template point attributes. An orientation requires a minimum of two vectors: the third can be automatically calculated by finding the cross product of the other two. Once you have three vectors, you have a 3x3 transform matrix, and so you know which way each axis (X,Y,Z) should be facing. If all you do is provide N, which is typically the case when you're just starting with any old geometry, Houdini is going to guess at an "up" axis by figuring out the matrix that would rotate world N (the +Z axis) to the current surface normal, and then multiply that same matrix by world up (the +Y axis). This "guess" in VEX is the dihedral() function. Then it will cross N and up to find the implicit third axis, and that's your final orientation. I'm doing that manually inside the VOP network "determine_initial_orient" here, converting it to a quaternion, and then binding the result to "orient". Quaternions and 3x3 matrices are interchangeable when you're just talking about orientations (matrices can also describe scale and shear but we won't get into that here). Next, the extra rotations... a quaternion can be described as an axis to rotate around and a number of radians to rotate around that axis. In the second VOP "twisting_manual", first we decompose the orient attribute back into N and up vectors by multiplying +Z and +Y by the orient quaternion... this effectively recreates the original orientation we did in the previous VOP, but now it's relative to a specific axis. Now we can just create a new quaternion out of that axis, and any angle we like; this will create a "twist" around whatever axis. Finally, all these new twists are combined by multiplying the quaternions together, and then multiplying the combined rotations by the original orient quaternion. You can try dragging the "twist" parameters around on that second VOPnet to see the sprinkles twisting around. You could easily modify this VOP to generate random values for the "angle" of both axes rather than using a parameter. Sorry this is so wordy but quaternions and orientation in general is a pretty complicated thing and I still only really understand half of it. There's more notes inside the HIP file... it's probably easier to just look for yourself and play with the settings. manual_rot_around_axis_toadstorm.hiplc
  37. 2 points
  38. 2 points
    Hi Janis, I assume that @fid is an integer. You can run this in a prim wrangle: string group_name = "fid" + itoa(i@fid); setprimgroup(0, group_name, @primnum, 1, "set");
  39. 2 points
  40. 2 points
    The exterior band voxels are not only important for the collisions, but also for the sticking. You should add more resolution, increase the exterior band voxels and tweak the sticking settings. Stick_Fluid_odforce.hipnc
  41. 2 points
    Without seeing your hip file I can only take a guess. That plateau looks like you've multiplied up the density of what would have otherwise been a very thin or empty voxel. If this is the case you're sending density values greater than 1 into your shader which is often going to make your shading experience a bad one. The image below from left to right is. 1. The original simulation, with a density of 1 and a shader render density of 1. This is the sim's natural look. 2. This has a post multiplication of 10 before and a shader render density of 1. This is what I believe you've done and why you see the plateau. 3. This is the same volume, with a density of 1 and a shader render density of 50. This is the correct way to make a thin simulation render more dense without lifting the empty voxels. Either you need to lift the density emitted in your sim to begin with or make sure that you're working with the shader to change the look of the sim, not the actual density values Edit: This sim has an upward velocity of about 20-30. The leading edge is curved but when rendered incorrectly will look flat because the curve is very subtle. Cranking the density values before it gets to the shader erases the variance responsible for the curve. .
  42. 2 points
    I have this in my scripts/456.py file, maybe it works for you?: hou.setSimulationEnabled(False)
  43. 2 points
    Short video catering more towards beginners. Let me know what you think.
  44. 2 points
    more fun and adjustments. Combine with first file
  45. 2 points
    You can cluster per piece by making sure copy numbers are matching between primitives and cluster points. // primitive wrangle int pts[] = nearpoints(1, v@P, 1.0); i@cluster = -1; foreach(int pt; pts){ if(point(1, 'copynum', pt) == i@copynum){ i@cluster = pt; break; } } voronoi_per_piece.hipnc
  46. 2 points
    also if you have bones that you don't want to deform, just want them to deform muscles you can add them as external colliders to detangle penetration_removal_detangle2.hip
  47. 2 points
    None of the above are smaller wishes. I wouldn't worry. These wishlist have been around for well over a decade for each major version. Plus as noted this is non-official, for actual BUGs, RFEs, and Question they need to be submitted to support in order to be considered. SideFX staff may be lurking on Odforce, but they do not actually monitor outside SideFX.com forums. Mostly these threads are for ranting, venting, and once in a while a collaborate group hive mind for features that should exist. Also a lot of re-directions for features that do exist, but are obscure in the Houdini lexicon of terminology like the past and thankfully dead Cookie Sop...
  48. 2 points
    Guys, why are you adding wishes without an actual release? This is not ethical
  49. 1 point
    Trying to recreate Scott Draves' algorithm in Houdini with VEX:
  50. 1 point
    There is config file for colors (.wb for dark scheme, .bw for light scheme): c:\Program Files\Side Effects Software\Houdini 13.*.*\houdini\config\3DSceneColors.wb Copy this file into your %HOME% directory eg: c:\Users\user\Documents\houdini13.0\config\3DSceneColors.wb And then look for this row in this file: ViewMaskOverlayColor: 1.00 1.00 1.00 # view mask overlay You can change colors there. It will be applied after Houdini restart.
×