Jump to content


Popular Content

Showing most liked content since 09/22/2021 in all areas

  1. 6 points
    Transferring curl noise curves into volumes along with displacements based on principal curvature is another way to shape organic sculptures. sculpture_2.hiplc
  2. 6 points
    Hi @caskal, you could push curves in the opposite direction of the underlying surface normals and use them as a collider for a vellum simulation. asphyxiate.hiplc
  3. 5 points
    How to procedurally punch scattered holes into a quad mesh using scatter and circle from edges-node.
  4. 4 points
    I just worked my way through Dave's whirlwind tutorial on how to get better creasing out of vellum. ap_ds_vellum_advanced_crumple_wrinkle_101421.hiplc
  5. 3 points
    I think the problem is that the groups and attributes you define for each bounding box carry over to the next frame. For example with your setup, once a particle was inside group1 it will always have the 'mygroup1=1' attribute from that point on even if it is not in the bounding box of group1 anymore. That means that the field used to scale the surface tension with is not limited to its bounding box. So once particles reach f.e. group3 their surface tension is still under the influence of the surface tension node from group1, since the according field hangs still around even after it leaves group1. (you can see this from your scalar visualisation nodes. They dont have the specified colors but their colors mix once they overlap with another colored field.) Made some minor changes to your hipfile. Pretty much only had to copy & your popgroup nodes into a sopsolver and delete the incoming 'mygroup1,2 and 3' attributes so they can be calculated from scratch and dont cary over to the next bounding box. SurfaceTension_recovered.hipnc
  6. 3 points
    Statistically improbable until you factor in a pandemic! Houdini 19 is coming out this Halloween season! TM data analysis says it should have been here this summer based on years of old... I have to say I awoke from a long slumber for this release. So I am looking forward to seeing what good offerings there are in this issue. My only wish is for SideFX to still keep on being independent and carving its own path. Trying to get folks to understand the heart of Houdini is no small feat. As always, this is a non-official wish list. So please submit BUGs, RFEs, and Questions directly to support. Also for anecdotal questions and rants branch them to another thread. People will more likely help you in a dedicated thread. -Cera
  7. 3 points
    Particle based RBDs ap_egj_particles_to_rbd_101421.hiplc
  8. 3 points
    inside the Sheeter sop, where you get the particles from the flip solver and apply the filling process, you can do VDBfromParticles, then use VdbSmoothSDF to smooth a bit the surface, and then use a Group SOP where you group only the particles that are inside the smoothed surface, AND THEN apply the filling process only on that group. This causes the Hole Filling to be applied only on areas that are the "body" of the simulation and not the egdes.
  9. 3 points
    Here's a simple example. You need to use a Vellum constraint type that supports orientation, which generally means you want to use hair. Once the sim is done, convert the orient attribute to the KineFX-supported 3x3 transform matrix like this: 3@transform = qconvert(p@orient); Then input to a Bone Deform and you're done. vellum_kinefx_toadstorm.hip
  10. 3 points
    attached is an example of how it could be done. Keep in mind this is intended to be used with lower contrast images, for bump mapping etc and not a fully blown high contrast brick image. but it gets the point across I think. restratio_flipblend.hiplc
  11. 3 points
    In the "Asset Manager" window, set the "Asset Bar" to "Display Menu of All Definitions" https://www.sidefx.com/docs/houdini/ref/windows/optypemanager.html#configuration-tab Operator Type Bar Controls the visibility of the Operator Type Bar that appears at the top of Parameter dialogs. This bar shows the path to the HDA file that defines the node pointed to by the Parameter dialog. The Operator Type Bar can be hidden completely, or it can be in a read-only mode where it simply displays the HDA path, or it can be in a mode where it presents a menu listing all HDAs that contain a definition for the asset. You can then revert back to the previous definition of the sweep node if needed.
  12. 3 points
    Thank you, that helps a lot. I discovered that if I leave the bend value as 1220 and animate the x-axis of the Capture Origin, that I get a nice rollup. ap_rs_roll_up_grid_portion_100921.hiplc
  13. 3 points
    Overlay network editor would be nice to have built-in in H19 or 20 I have been using it for more than 2 years in production, so the video I initially uploaded is severely outdated. Will update once H19 is released.
  14. 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. This list was started years ago, so some of the solutions may be dated. 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 [PYTHON] OP UNHIDE ALL (opunhide) 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 [PYTHON] On Copy OF HDA or Node 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 Fuel Based Rocket Launch With Smoke [upres] Deform Pyro Along Path Bend Pyro Gas Repeat Solver With RBD Collision Raining Fuel Fire Bomb City Video Tutorial Pyro Cluster Setup (Animated Moving Fuel Source) [PYTHON] Mantra .MTL File Reader (creates new materials) Pyro Dampen By Distance FLIP Fluid Sweeps Away Crowd Ragdoll Gas Repeat Solver X-Men Mystique Feather Effect Camera Frustum Geometry Culling Vellum Extrude Shape Into Cloth Wire Web Constraint Setup Pyro Smoke Font Dissolve "Up In Smoke" Helicopter Landing With Vellum Grass and Dust or Smoke Another Thin Sheet Fluid Setup Color Rain Drops Over Surface Dual Smoke Object Wand Battle Custom GasDisturb node (easy to use) Hair Driven Grass Example File Pyro Smoke With Masked Turbulence Align High Resolution Mesh With Low Resolution RBD Simulation Streaky Portal Effect Height From Luma Cracking Glass Dome, Fracture VEX Noise Types FLIP Waterwheel Fracture Brick Wall Using UVs Vellum Stacked Torn Membranes Terrain Topographical Line Curves Prepare RBD Fracture For Unreal Alembic Export Growing Ivy Solver Fix For Intermittent FLIP Surfacing Issue Extensive RBD Fracturing Thread With HIP Files Peter Quint's Pop Streams Particle Example Fracture Geometry To Release Flip Fluid Inside Procedurally Reverse Normals Vellum Culling Voronoi Shape To Shape Transition Animated Scattering Accessing Parametric UVs On A Surface Organic Hallways/Corridors Through A Mesh Smoke Particle Dissolve Along One Axis Expanding Vellum Rings That Collide With One Another Read, Fetch, or Get SOP Attribute Inside Of DOPS Broad Splash When Object Enters Water Blendshape Crowd Example [PYTHON] Replace Packed Intrinsic Geometry From Another Source Rip/Tear Part Of Paper To Reveal And Roll Up Use Google To Discover Attached HIP Files Useful Websites: Tokeru Houdini Houdini Vex Houdini Python Houdini Blueprints FX Thinking Rich Lord HIP Files iHoudini Qiita Ryoji Toadstorm Blog Eetu's HIP Of The Day Video Tutorials: Peter Quint Rohan Dalvi Ben Watts Design Yancy Lindquist Contained Liquids Moving Fem Thing Dent By Rigid Bodies Animating Font Profiles 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 Johhny Farmfield Vimeo SideFX Go Procedural
  15. 3 points
    Another try. The previous one work sometime but sometime not. Embrace F2.hiplc
  16. 3 points
    attached is a file with all sorts of curvature computation for vdbs ... hth. petz vdb_curvature.hipnc
  17. 2 points
    Tommy got auto-rigged and turned into a drunk Alien. Sliceman's still confused about all this. dancing_skeleton.hiplc
  18. 2 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
  19. 2 points
    I'm guessing you probably have the Nvidia 496 driver installed. If you do, rollback to a version < 495 or no shader program that uses a geometry shader will compile (and Houdini uses them a lot - it'll be unusable with 496). We contacted Nvidia earlier last week about this and they're looking at it.
  20. 2 points
    It's not much different from using single rest fields, just in addition of that you have to consider the interpolation between the two rest fields and their resets. To interpolate two details attribute are created by the solver. They are called rest_ratio and rest2_ratio, which are basically values that describe how much the noise advected by rest1 and the noise advected by rest2 should be visible at a certain frame. About that, I think it's better you use higher values on "Frames between resets" on the Rest tab of the flip solver. Since usually it has to move slowly, you don't want to see any fast changing noise on the shader.
  21. 2 points
    FLIP comes with built-in options for dual rest fields now... they've been there for a few years. My post is really old, but the concept behind dual rest fields hasn't changed... it's actually pretty similar to how flow map shaders work, if you're into shaders. You can find the options under Particle Motion > Rest on the FLIP Solver DOP.
  22. 2 points
    I would say dual rest is quite useful. as stated previously by Atom a lot of the details you want will come from good shading and texturing. Dual rest will help you maintain a crisp look of your bump/ displacement on the surface
  23. 2 points
    Hi Natiq, there is a trigonometry lesson by the same author: https://www.youtube.com/watch?v=gLOd_FFL58Y Also unity developer Freya Holmér explains maths for computer graphics. Part 3 is about trigonometry: https://www.youtube.com/watch?v=MOYiVLEnhrw&list=PLImQaTpSAdsD88wprTConznD1OY1EfK_V
  24. 2 points
    A simpler and more efficient solution Inspired by Konstantin 's last post (one more time :)) but this time transfering distance to displacement. Embrace F3.hiplc
  25. 2 points
    This is a fun one to play around with. Redshift doesn't support code snippets, like Mantra, but I was able to leverage texture maps for displacement.
  26. 2 points
    So, I did get this to finally work. DOP Import with Transform Pieces did the trick. I've attached the scene here, and here's a quick overview of the setup, it's actually quite simple (once you know how): rbd test.hiplc
  27. 2 points
    Very nice, thanks for that little secret @Atom! Makes extruding both sides of a mesh a lot easier, especially being able to dissolve the middle edge. This thickens everything all together rather than just the thin objects, but in finding this Labs Thicken SOP, I also saw the Labs Calculate Thickness SOP. I managed to combine the power of both to first calculate the thickness of each model part, then only thicken the pieces that weren't enclosed shapes. If anyone wants to see the process, the file is attached. Extrude_Only_Thin_Polys.hip
  28. 2 points
    Hi @eunchae, @ssh has already implemented the Kelvin Wake pattern in Houdini:
  29. 2 points
    Sorta dodging your question really, but I found you can cheat this by getting 3 samples ($F, $F-0.5, $F-1) and feeding them to a sequence blend shape with cubic interpolation enabled. interpolate_transforms_via_blendshape.hiplc
  30. 2 points
    The blur node supports weighting eg. coming from an attribute remap node. weight_blur.hiplc
  31. 2 points
    First post here for feedback and direction, this mostly a test render for my first big pyro simulation. It's being driven by a pop system that's firing particles downwards and using that to drive a pyro simulation. The collisions for the simulation are pretty broken, please ignore those. One thing that I'm having trouble with is getting the outside plumes of smokes to rise higher, anyone got suggestions? Sequence_1_v01_-_converted_with_Clipchamp.mp4
  32. 2 points
    I guess my point is that lava doesn't have to be a heavy sim. The example file on Houdini Blue print simulates fairly quickly. https://hdbp.io/fK0FtieT The detail in a lava shot is going to lean more on the materials rather than the surface generation.
  33. 2 points
    Alternatively remap and average out directions and distances to points across a height field: float scale = chf('scale'); float range = chf('range'); float disps[] = {}; int pts[] = nearpoints(1, v@P, range * 4.0); foreach(int pt_near; pts){ vector pos = point(1, 'P', pt_near); vector nml = point(1, 'N', pt_near); float pscale = point(1, 'pscale', pt_near); vector dir = normalize(pos - v@P); float angle = fit11(dot(nml, dir), 0.0, 1.0); float dist = distance(pos, v@P); float shape = chramp('shape', angle); float dist_mod = dist * shape * pscale; float mask = 1.0 - smooth(0.0, range, dist); float wave = sin(dist_mod * 0.02); float height = 1.0 - chramp('height', angle); float disp = height * mask * scale * wave; append(disps, disp); } f@height = avg(disps); boat_waves_VEX.hiplc
  34. 2 points
    Animation and rigging toolset to rival Maya so I can dump Autodesk for good!
  35. 2 points
    Ok, I think I finished this. If anyone is interested, the hip file is available below. I hope it could be instructive for beginners. I added leaves, they can have a general motion (breeze), and you can add another wind based on the tree motion (length of averaged velocity). I discovered that Bone Deform is way faster than Point Deform (it was realtime for this tree), but Point Deform is more accurate. My setup includes both, I use Bone Deform for previewing, you can just switch. The wire sim is realtime as well, and cooking everything with leaves and with little branches was around 3 fps on my shy laptop without any pre-caching. (I think it's not that bad.) Actually the leaves part could be better, for example right now leaves don't orient themselfs according to the direction of the wind... so some controlling features like this still would be nice to have. Well, feel free to improve it I would say, theoreatically this setup should work with any tree, bush, plant, etc. created by the Labs Tree tools. The hipfile includes some notes as well, I tried to explain why am I doing what I'm doing. Also, I started an attempt to create a non-simulated tree motion, what I saw in nirfse3D's videos about his Simple Tree Tools. Not really impressive right now... I have no idea how he did it, this approach is getting really slow with more branches Anyway. Best wishes! tree_16.hiplc
  36. 2 points
    Nice Stuff.----s
  37. 2 points
    It's hard to say exactly what's going wrong without seeing a file, but my guess is that you're not properly applying the orientations of your vellum sim back to the transforms of your skeleton. When you run the Vellum simulation, assuming you're using a constraint type like "String" that supports orientation, the p@orient value of your input points needs to match the KineFX joints. You can do this pretty quickly by converting your 3@transform attribute (this is in world space and common to all KineFX joints): p@orient = qconvert(3@transform); Then feed this into your Vellum String configuration and simulate. I'm using Pins to keep some of the original joints attached to their animation. The p@orient attribute will update during the simulation. To turn these results into something useful post-sim, we have to take this computed orientation and convert it back into the 3@transform attribute. You start with a default matrix, make sure its scale matches that of the original, then rotate it to match the orientation of your simulated points: // convert world space orient quaternion (from vellum) back to transform matrix vector scale = cracktransform(0, 0, 2, 0, 3@transform); matrix3 xform = ident(); scale(xform, scale); matrix3 rot = qconvert(p@orient); 3@transform = xform * rot; Now that that's done, you can connect your skeleton into the Bone Deform SOP and it ought to work. I'm attaching an example HIP file... you'll have to load your own FBX, define a clip name and pick new pin numbers on the Vellum Constraint. vellumcat.hip
  38. 2 points
    Hi Carlos, As far as I remember this geometrical model assumes infinite waves. However, for practical reasons it's good to have it disappearing. I've made updated version, check "Max Distance" parameter. ssh_kelvin_wake_v02.hipnc
  39. 2 points
    Great stuff, Nicolas. This is starting to look Giger-like already! You don't necessarily need to create UVs in SOPs, though. To project textures on those VDB meshes it's arguably more efficient to do in a shader: 1) Transform position to world space. 2) Curve IDs shown as random colors. 3) U value from curves in HSV colors. 4) Direction to nearest curve position. 5) Tangents from curves set to absolute. 6) Direction to curve oriented along tangents. 7) V coordinate enclosing each wire. 8) UV coordinates in red and green. 9) UV mapping an image texture. 10) Texture based displacement along curves or at least what happens when mandrills do the job ; ) The material snippet: string geo = 'op:/obj/curves/OUT'; P = ptransform('space:current', 'space:world', P); int prim = -1; vector uvw = vector(0.0); float dist = xyzdist(geo, P, prim, uvw); vector pos = primuv(geo, 'P', prim, uvw); float u = primuv(geo, 'u', prim, uvw); vector tangent = primuv(geo, 'tangentu', prim, uvw); matrix3 rot = dihedral(tangent, {0,1,0}); vector dir = normalize(P - pos); vector dir_mod = dir * rot; float v = fit( atan2(dir_mod.z, dir_mod.x), -M_PI, M_PI, 0.0, 1.0 ); P = set(u, v, 0.0); curly_curves_shader.hipnc
  40. 2 points
    Here is one way to add UVs to those lines. It does not convert to VDB, it uses a sweep to loft the mesh along the line. If you need VDB output, you can do that at the end and use an AttributeInterpolate to transfer the UVs to your final mesh. This setup drops in an attribute VOP to add a secondary displacement map along the length of each spline. This means mesh displacement is happening prior to render, but you can still add more normal maps or bump maps to the surface when you get to adding materials. ap_uv_curly_curves_081819.hiplc
  41. 2 points
    You can fit-range an attribute with setdetailattrib() set to "min" and "max". 1st pointwrangle: setdetailattrib(0, 'height_min', @height, "min"); setdetailattrib(0, 'height_max', @height, "max"); 2nd pointwrangle: float min = detail(0, "height_min", 0); float max = detail(0, "height_max", 0); @Cd.g = fit(@height, min, max, 0.0, 1.0); fit_range_VEX.hiplc
  42. 2 points
    Assuming you would want the circles not to intersect, we can solve this in a VOP network with only a few nodes. First we make sure the geometry we want the circles copied to has normals (if we want this to work with any input). We scatter points, and append them to a point VOP. Inside the VOP (which loops over the points), we want to evaluate the closest point and the point itself, subtract their positions to measure that distance and divide it in half, since we are looking for the largest radius each circle copied to those points could have. pcopen (original P to P, OpInput1 to file) > 2x pcimportbyidx (handle to handle, first has index 1, second has index 0) > subtract > length > multconst (0.5) > bind export (pscale) Also, make sure to adjust the search radius on the pcopen accordingly. A large enough number will suffice. After that we only have to copy circles to those points. I can provide a file later. All of this could also be solved with wrangles, obviously. I might give that a try too. Hope it helps, cheers! edit: well, the same principle in vex is actually simpler than I thought. Put this in a wrangle after scatter and copy the circles to points. int pcloud = pcopen(0, "P", @P, 10, 2); vector found = pcimportbyidxv(pcloud, "P", 1); @pscale = length(found - @P)*.5;
  43. 1 point
    Hello guys I buit a process to build airship from a sphere, all procedural. For the decal I didn't used the labs tools as there was too many missing things indeed. How could I render the decal properly in Arnold and Redshift? Does anyone know please please please? ________________________________________________________________ Vincent Thomas (VFX and Art since 1998) Senior Env and Lighting artist & Houdini generalist & Creative Concepts http://fr.linkedin.com/in/vincentthomas
  44. 1 point
    This code should work, you can make a new shelf tool by right clicking in any empty shelf space and then choose 'New Tool...' You can paste this in the 'Script' tab: if hou.ui.curDesktop().paneTabOfType(hou.paneTabType.SceneViewer).curViewport().settings().particleDisplayType() == hou.viewportParticleDisplay.Points: hou.ui.curDesktop().paneTabOfType(hou.paneTabType.SceneViewer).curViewport().settings().particleDisplayType(hou.viewportParticleDisplay.Discs) else: hou.ui.curDesktop().paneTabOfType(hou.paneTabType.SceneViewer).curViewport().settings().particleDisplayType(hou.viewportParticleDisplay.Points)
  45. 1 point
    And some polyextrude trick ? Thanks to librarian for the ivy solver and Konstantin for the isocurve polycut trick. Embrace F.hiplc
  46. 1 point
    Hey man, I made an example of that in the scene attached below. Just run the code on the python node and it will generate the folders/subfolders/parameters on the null. PY_Layered Folders.hipnc
  47. 1 point
    I am not sure if anyone has run into this but I thought I would quickly share this. I am using a pop sim to source vellum grain. The pop uses 2 sub-steps and for various reasons, particles get sourced on non-integer frames, e.g. 6.5. I noticed that when I am using vellum, the grains never appeared even though the vellum sim was set to 2 sub-steps as well. To make it work I had to change the time step to 0.5 in the vellum source sop solver enable solver node. Here is a screenshot: Someone else might find this useful at some point, I hope, or perhaps I am just doing something totally silly :-)
  48. 1 point
    I know this is more than a year later, but if anyone is still wondering how to do this, I don't believe that it is directly possible to get a node's position OnCreated. However, you can get your cursor's position at the time of creation, which is usually close enough. # python code inside an OnCreated script # get current network pane net_editor = hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor) # create your node myNode = hou.node(".").createNode("null", "my_node", 0, 0) # get cursor position position = net_editor.cursorPosition() # set position of node to cursor position myNode.setPosition(position) I use this to create nodes and connect outputs as desired. (Note that the position vector can be modified to set the node location to a position relative to your cursor location instead of directly on it.) import numpy as np # reference the created node createdNode = kwargs["node"] # get current network pane net_editor = hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor) # create a child node of the created node # can just use createOutputNode if you only have 1 output and 1 input #childNode = createdNode.createOutputNode("null", "child_node") childNode = hou.node(".").createNode("null", "child_node", 0, 0) # for nodes with multiple inputs/outputs use setInputs # assign the 2nd output of the created node to the first input of the childNode childNode.setInput(0, createdNode, 1) # set position equal to cursor position minus a small amount # offset position down and to the right of cursor position position = np.subtract(net_editor.cursorPosition(), [-0.5,1]) # set childNode position childNode.setPosition(position)
  49. 1 point
    You can also just pack them first, that will give you the pivots. Use assemble. Or connectivity. If you use connectivity you need to assign the name on the primitives yourself. //primitive wrangle with class as primitive attribute s@name = "piece"+itoa(i@class); Then pack by name attribute. Now you can rotate the packed primitives //pointwrangle matrix3 m = primintrinsic(0,"transform",@ptnum); vector axis_y = set(0,1,0); //if you want axis to be aligned with packed transform axis_y *= m; float angle = radians(rand(@ptnum)*360); rotate(m,angle,axis_y); setprimintrinsic(0,"transform",@ptnum,m,"set");
  50. 1 point
    if you expect nice, radial pattern, you'll need more nicely distributed points compared to randomly scattered ones ts_radial_voronoi_pattern.hip