Jump to content

Leaderboard


Popular Content

Showing most liked content since 11/16/2018 in all areas

  1. 6 points
    Hello everyone! My name is Daniele, I'm new to Odforce. This is my first post, nice to meet you! I've been a character animator for a few years but recently I started learning Houdini. I'm learning using resources I find online, including some super useful posts from this forum. I would love to use this post to keep track of my progress and share my results with you. My first project is a procedural building, hip is attached. Cheers! Daniele procedural_house_01.hipnc
  2. 6 points
    anyone interested in the h17 pyro custom velocity.. normal_tools.hiplc
  3. 5 points
    Hi, Just posting some of my recent art. Most of it is houdini. Some is a mix of Houdini, Daz and Marvelous Designer. If you see a character, that's definitely from Daz. Everything is rendered in Octane. regards Rohan
  4. 5 points
    Here are two simple clipping tools using python SOP verbs: Bricker and Radial. Unlike the divide SOP it´s cutting always right through the center. python_cutting.hip
  5. 4 points
    Use boolean union and dissolve inner edges found by 'max edge angle' in group node. only_outer_edges.hiplc
  6. 4 points
    I pared the scene right back and rebuilt it using stuff I learned at the start of the year, its behaving as expected now I think. constrain_to_animated_anchors_matts_soft_rotation.hipnc
  7. 4 points
    "Folded Paper Flow" Before heading for London (see above post) I went to a local art shop and found a book about the paper-art of Richard Sweeney. I was totally fascinated by the flow and forms he creates just from folded paper. Today I finally got to do some initial experiments with similar approaches in Houdini: Created in Houdini 17, rendered in Redshift (Brute Force GI this time) and post in Luminar 2018. Cheers, Tom
  8. 4 points
    I started this thread on September 22, 2016, which was basically when I finally got into Houdini after doing 3D for more than 20 years with other software. Yesterday I returned from London, where I gave my first ever Houdini Workshop at "The Bartlett School of Architecture" to a group of 8 students from all over the world. They had started using Houdini only a couple of weeks before and none of them had done any real programming ever. Over the course of last week, I introduced them to many aspects of Houdini and VEX, the central design topic was the Shortest Path algorithm and truncated Octahedrons. My main goal was, to give them an introduction to programming and generative design and take away their fear of code as something "hard and alien". (I actually used ordering beer in a pub for explaining the command structure of VEX, if, else, for and for each loops etc. ;-) ). This worked out very well, they all catched on fast and created their own beautiful results based on my examples. Richard, my host at the UCL was very supportive and the whole thing was a lot of fun and very rewarding. I can see Houdini being used in design more and more, since software like Rhinos Grasshopper doesn't really cut it for complex work. So after SideFX being originally mostly used in movie SFX, then Motion Graphics, then recently going into Games, now this could become another mainstay for their business since Computational Design is growing more and more important and nobody does generative and complexity better. Thanks to the whole Houdini community, without you I couldn't have catched up as fast! Cheers, Tom
  9. 4 points
    We've made a ton of small updates, just posting here to recap everything since v0.1.9. We're at v0.1.16 Experimental now, with an improved Spread Falloff tool for easy "growth" effects. Patched a bug in MOPs Spring Falloff that broke the channel references driving the spring attributes (K, M, D). The "Do Falloff" checkbox in the Spring Falloff now correctly applies spring forces to the mops_falloff channel itself. Audio Falloff ramp presets now function normally. Patched a bug in the Audio Falloff that created an unprocessed band as the first band of any new node. MOPs Explode now properly adds an id attribute to the created packed primitives. MOPs Randomize will now add an id attribute in case one is missing. Modified Falloff Preview to ignore packed fragment scales. MOPs Explode no longer inverts the up vector if "Invert Normal" is selected. MOPs Extract Attributes now extracts correct N and up if mops_orient is in use. MOPs Transform now makes more consistent use of mops_orient if it exists. MOPs Reorient now normalizes N/up after transferring, and before converting to an orient quaternion. Patched a bug in the Instancer that prevented Alembic sequences from properly setting their sequence index frame. Added support for sequences in MOPs Flocking Modifier. MOPs Preview Falloff now leaves normal meshes intact instead of turning them into sprites/points. The MOPs Instancer now properly sets consistent pivot points regardless of input type (SOP, Alembic, Packed Sequence). MOPs Spread Falloff v1.1 released. Now includes documentation, simpler controls, and much better spread propagation. Patched MOPs Spread Falloff to work correctly on disconnected points with no id attribute. The download for the latest release is here: https://github.com/toadstorm/MOPS/releases/tag/v0.1.16e Or, if you have a more recent version installed, you can use the Updater shelf tool to automatically update to v0.1.16 Experimental.
  10. 3 points
    Hi roberttt! I did that specific fracture before the Houdini 16+ booleans were available, using a custom voronoi cutters technique. Basically, I used boolean-style cutter geometry to guide a voronoi fracture. 1) Scattered lots of points on the cutter geo, point-jitter them for width, and create cluster attributes on those points to create small clumps 2) Create a band of voronoi points a bit further from the cutter geometry, to define the large chunks. These points all get the same cluster value, and make sure that cluster value isn't used in the small-chunks clusters. 3) Run the fracture with clustering.... although the new H17 voronoi fracture doesn't seem to have clustering built in. So I believe you need to do the clustering post-fracture in H17, which unfortunately doesn't have an option to remove the unnecessary internal faces, so the geom can be a bit heavy with the new workflow. (Unless I'm missing something obvious!) I don't think I've used this voronoi fracture workflow at all since the H16+ booleans were released, and I've removed that technique from my CGMA destruction class. Nowadays I would handle this in one of these ways: - Running a primary boolean fracture to define the main chunks, and then running a secondary pass where I generate additional fragments on the edges of the main pieces. There are various ways to generate those secondary boolean edge cuts, and it's always a bit experimental. - Fracture everything at once into lots of small pieces, and use noise or geometry-grouping to define the larger shapes from the smaller fracture. Then once those large chunks are defined, use constraints or the name attribute or double-packing to get them to behave as individual large pieces. Hope this helps! :-)
  11. 3 points
    did this on a job recently. here's the process more or less: split your cache about in half and timeshift / timewarp each half so that the first half becomes the second half, and vice versa. this means that the first and last frames are now identical and will loop. now you just have to blend the middle part. overlap each half of the cache in time so that you have some room to blend. keyframe a blendshape or the equivalent so that the caches blend from one to the other during this overlap period. to make this less jarring, you can animate a "blend" point attribute that wipes across the mesh from 0 to 1. then use a wrangle to blend your point positions from the retimed cache to the blend shaped positions: @P = lerp(@P, blended_P, @blendAttr); this works best if the wipe moves in the same direction as the prevailing ripples in the cloth. you might need to do a detangle afterwards, or do a secondary vellum sim during the blend shape animation in order to detangle parts that end up interpenetrating during the blend. totally depends on your original sim.
  12. 3 points
    here's another one which might be faster by avoiding the foreachLoop. hth. petz isolines.hipnc
  13. 3 points
    Hey OdForce! Lately I've been doing weekly quick-tips that I'd like to share with you all. Be sure to follow me on youtube & vimeo for new videos. Also, keep an eye out for my new course - Houdini For the Artist - Modeling I which I'll be finishing up shortly. Cheers,
  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. 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 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 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
  15. 3 points
  16. 3 points
    I've wanted to tackle mushroom caps in pyro sims for a while. Might as well start here... Three things that contribute greatly to the mushroom caps: coarse sub-steps, temperature field and divergence field. All of these together will comb your velocity field pretty much straight out and up. Turning on the velocity visualization trails will show this very clearly. If you see vel combed straight out, you are guaranteed to get mushrooms in that area. If you are visualizing the velocity, best to adjust the visualization range by going forward a couple frames and adjusting the max value until you barely see red. That's your approximate max velocity value. Off the shelf pyro explosion on a hollow fuel source sphere at frame 6 will be about 16 Houdini units per second and the max velocity coincides with the leading edge of the divergence filed (if you turn it on for display, you'll see that). So Divergence is driving the expansion, which in turn pushes the velocity field and forms a pressure front ahead of the explosion because of the Project Non-Divergent step that assumes the gas is incompressible across the timestep, that is where where divergence is 0. I'm going to get the resize field thingy out of the way first as that is minor to the issue but necessary to understand. Resizing Fields Yes, if you have a huge explosion with massive velocities driven by a rapidly expanding divergence field, you could have velocities of 40 Houdini units per second or higher! Turning off the Gas Resize will force the entire container to evaluate which is slow but may be necessary in some rare cases, but I don't buy that. What you can do is, while watching your vel and divergence fields in the viewport, adjust the Padding parameter in the Bounds field high enough to keep ahead of the velocity front as that is where you hope for some nice disturbance, turbulence and confinement to stir around the leading edge of the explosion. or... Use several fields to help drive the resizing of the containers. Repeat: Use multiple fields to control the resizing of your sim containers. Yep, even though it says "Reference Field" and the docs say "Fluid field..", you can list as many fields in this parameter field that you want to help in the resizing. In case you didn't know. Diving in to the Resize Container DOP, there is a SOP Solver that contains the resizing logic that constructs a temporary field called "ResizeField", importing the fields (by expanded string name from the simulation object which is why vector fields work) with a ForEach SOP, each field in turn, then does a volume bound with the Volume Bounds SOP on all the fields together using the Field Cutoff parameter. Yes there is a bit of an overhead in evaluating these fields for resizing, but it is minor compared to having no resizing at all, at least for the first few frames where all the action and sub-stepping needs to happen. Default is density and why not, it's good for slower moving sims. Try using density and vel: "density vel". You need both as density will ensure that the container will at least bound your sources when they are added. Then vel will very quickly take over the resizing logic as it expands far more rapidly than any other field in the sim. Then use the Field Cutoff parameter to control the extent of the container. The default here is 0.005. This works for density as this field is really a glorified mask: either 0 or 1 and not often above 1. Once you bring the velocity field in to the mix, you need to adjust the Field Cutoff. Now that you have vel defined along side density, this Field Cutoff reads as 0.005 Houdini units per second wrt the vel field. Adjust Field Cutoff to suit. Start out at 0.01 and then go up or down. Larger values give you smaller, tighter containers. Lower values give you larger padding around the action. All depends on your sim, scale and velocities present. Just beware that if you start juicing the ambient shredding velocity with no Control Field (defaults to temperature with it's own threshold parameter so leave there) to values above the Field Cutoff threshold, your container will zip to full size and if you have Max Bounds off, you will promptly fill up your memory and after a few minutes of swapping death, Houdini will run out of memory and terminate. Just one of the things to keep in mind if you use vel as a resizing field. Not that I've personally done that... The Resolution Scale is useful to save on memory for very large simulations, which means you will be adjusting this for large simulations. The Gas Resize Field DOP creates a temporary field called ResizeBounds and the resolution scale sets this containers resolution compared to the reference fields. Remember from above that this parameter is driving the Volume Bound SOP's Bounding Value. Coarser values leads to blurred edges but that is usually a good thing here. Hope that clears things up with the container resizing thing. Try other fields for sims if they make sense but remember there is an overhead to process. For Pyro explosions, density and vel work ok. For combustion sims like fire, try density and temperature where buoyancy contributes a lot to the motion.
  17. 2 points
    Hi everyone, At this link you'll find three new color schemes: Ash-Smoke-Soot.zip They are meant to be flatter and a bit more subtle compared to the standard themes. Smoke has similar values to the Houdini Dark theme, Soot is a bit darker and more desaturated, and Ash is a replacement for the Houdini Pro theme. Please let me know if you discover any usability issues or ugliness and I will do my best to update the file above. I'm 100% certain that I've overlooked some things... quite possibly obvious things. Edit 12/15/18 - Updated Ash theme to fix audio waveform visibility in playbar and visibility issues with node wires and node secondary text.
  18. 2 points
    Those modules exist in $HFS/houdini/python2.7libs/ So if your on a mac you can do open -t $HFS/houdini/python2.7libs/objecttoolutils.py in the shell to check out what's going on with the customStateTool function.
  19. 2 points
    Thanks Magneto. Kinda hard to give you a correct awser. Process, workflow and idea processing are always differents for each one. Anyway you 're kinda right most of the time i think to seamless looping in a very early stage but it's not always the case. But i don't have any general planification or something. Most of the time i'm messing into Houdini and a idea pops when i'm working on a complete different subject. For the last serie, the steel marbles one : At the very beginning i was asking myself how to make an efficient asset in order to create things like construction game, rollercoaster, tracks, pipe etc. My goal was to have something you just CTRL+C CTRL+V with a type selector parameter, an orientation parameter and some auto snapping features. The idea was to have an asset who will be efficient enough to be faster than doing it in real life with a contruction game, electric toy car track etc... After all this background work it took me something like 1 hour to create this 2 lanes track from a blank scene. The looping was not so much a problem in this scenario. Only 2 marbles are simulated. One for the Yellow lane, one for the blue lane. i've simulated 6000 frames (very close to real time). Then i just copystamp a point representation with a stamped time sop to loop this. At the end i just have a 6 frame endless motion setup where i can freely put any camera.
  20. 2 points
    This isn't exactly the same but couldn't you create your own parameter, edit the range, then copy the relative reference to the other parameter?
  21. 2 points
    "Distant Thunder" Yesterday I wrote my first Python-node ever. With the help of this page: https://github.com/mgeier/python-audio/blob/master/audio-files/audio-files-with-wave.ipynb I managed to load a 24 bit stereo wav file (of distant thunder, which I recorded this summer at our cottage in the woods) and create geometry from it. Makes for a great desktop background, so I uploaded it as 24 bit png... :-) Created in Houdini Core 16.5, rendered in Redshift and post treatment in Luminar 2018. Cheers, Tom
  22. 2 points
  23. 2 points
    With the help of both the Redshift community and resources here, I finally figured out the proper workflow for dealing with Redshift proxies in Houdini. Quick summary: Out of the box, Mantra does a fantastic job automagically dealing with instanced packed primitives, carrying all the wonderful Houdini efficiencies right into the render. If you use the same workflow with Redshift, though, RS unpacks all of the primitives, consumes all your VRAM, blows out of core, devours your CPU RAM, and causes a star in nearby galaxy to supernova, annihilating several inhabited planets in the process. Okay, maybe not that last one, but you can't prove me wrong so it stays. The trick is to use RS proxies instead of Houdini instances that are in turn driven by the Houdini instances. A lot of this was based on Michael Buckley's post. I wanted to share an annotated file with some additional tweaks to make it easier for others to get up to speed quickly with RS proxies. Trust me; it's absolutely worth it. The speed compared to Mantra is just crazy. A few notes: Keep the workflow procedural by flagging Compute Number of Points in the Points Generate SOP instead of hard-coding a number Use paths that reference the Houdini $HIP and/or $JOB variables. For some reason the RS proxy calls fail if absolute paths are used Do not use the SOP Instance node in Houdini; instead use the instancefile attribute in a wrangle. This was confusing as it doesn’t match the typical Houdini workflow for instancing. There are a lot of posts on RS proxies that mention you always need to set the proxy geo at the world origin before caching them. That was not the case here, but I left the bypassed transform nodes in the network in case your mileage varies The newest version of Redshift for Houdini has a Instance SOP Level Packed Primitives flag on the OBJ node under the Instancing tab. This is designed to basically automatically do the same thing that Mantra does. It works for some scenarios but not all; it didn't work for this simple wall fracturing example. You might want to take that option for a spin before trying this workflow. If anyone just needs the Attribute Wrangle VEX code to copy, here it is: v@pivot = primintrinsic(1, “pivot”, @ptnum); 3@transform = primintrinsic(1, “transform”, @ptnum); s@name = point(1, “name_orig”, @ptnum); v@pos = point(1, “P”, @ptnum); v@v = point(1, “v”, @ptnum); Hope someone finds this useful. -- mC Proxy_Example_Final.hiplc
  24. 2 points
    if you go to Edit > preferences > hip file options, you can check if your units are set to 1 meter and 1 kg. (this is standard for houdini). Then IF you modelled to real world scale you will get accurate values in meters as described above by LaidlawFX
  25. 2 points
    All of the light presets have the "uber" ASAD Lights shader bind to them by default. You can find ASAD Light in the SHOP context. If you right-click the ASAD node and select "Type Properties" and open the Code tab you'll find the lights shader code for all the standard lights in one shader. You can override this shader by attaching the "shop_lightpath" rendering property to a standard light object and set it to point to your own light shader. You can create light shaders with Light Shader builder in SHOP for example. Remember that light and shadow shaders are two separate things and sometimes you need to create the both. In this case you'd also attach the "shop_shadowpath" rendering property and set you shadow shader as well.
  26. 2 points
    Hi everyone, just rhought I'd share my first article for my company! Super stoked. http://rewind.co/news/building-better-workflows-houdini/
  27. 2 points
  28. 2 points
    Quick tut about it. Cheers
  29. 2 points
    At geometry level, some way to find which node(s) created the point / primitive / something you clicked in the viewport. I know this concept is not really well defined at GEO level, but let's say you merge two curves in a merge node. How can you find the curve node which create the curve you selected in the viewport ?
  30. 2 points
    Hey, was playing with this the other day, and like you found the old trick broke in h17. I did a quick workaround for the problem, but your post reminded me to have a closer look. As always, there's probably a neater way, but this seems to work pretty well and is relatively speedy. The idea is to use a cluster points sop as before, and in the new voronoi fracture make sure it transfers @cluster to the prims. You can then do a for loop over the prims, using @cluster as the name, and do whatever you wanna do. In my case I just run a fuse, and with the planar case also remove interior faces and excess inline points. Afterwards you can run a polyextrude or whatever, it should behave as expected. voronoi_cluster_h17.hip
  31. 2 points
  32. 2 points
    Might as well post it here in case anyone is interested in such a setup. https://www.sidefx.com/forum/topic/59026/?page=1#post-265835 Note that I posted on SESI that I hope I'm on the right track as to what the OP wants...wasn't sure...but you could still glean some stuff from this setup I guess. File is here if you can't download from SESI vu_hankypearls.hiplc
  33. 2 points
    Vellum Mattress effect....no need to pin corners....doesn't stretch like ye olde balsac.... vu_VellumMattress.hiplc
  34. 2 points
  35. 2 points
    just write i@size =len(i[]@parm); I must admit that houdini and arrays it's a big story.
  36. 2 points
    Basic: // Primitive wrangle. int pts[] = primpoints(0, @primnum); vector rest = point(0, "P", pts[0]); vector prev_pos = rest; matrix3 frame = ident(); for (int i = 0; i < len(pts); i++) { vector pos = point(0, "P", pts[i]); rotate(frame, 0.1, {0, 0, 1}); vector new_pos = (pos - rest) * frame + prev_pos; rest = pos; prev_pos = new_pos; setpointattrib(0, "P", pts[i], new_pos); } Advanced: // Primitive wrangle. #define TWO_PI 6.2831852 addpointattrib(0, "N", {0, 0, 0}); int pts[] = primpoints(0, @primnum); int npt = len(pts); // Loop variables. vector rest = point(0, "P", pts[0]); vector prev_pos = rest; matrix3 frame = ident(); for (int i = 0; i < npt; i++) { vector pos = point(0, "P", pts[i]); vector delta = pos - rest; rest = pos; // Make normal. Point normals could be used instead. vector normal = normalize(cross(cross({0, 1, 0}, delta), delta)); if (length(normal) == 0) { normal = {0, 0, 1}; } // Drive a shape with ramps and multipliers. vector axis; float ramp, angle; // Twist the bend axis. axis = normalize(delta); ramp = chramp("twist_profile", (float) i / npt); angle = fit01(ramp, -TWO_PI, TWO_PI) * ch("twist") / (npt - 1); rotate(frame, angle, axis); // Bend the curve. axis = normalize(cross(normal, delta)); ramp = chramp("bend_profile", (float) i / npt); angle = fit01(ramp, -TWO_PI, TWO_PI) * ch("bend") / (npt - 1); rotate(frame, angle, axis); // Compute new position and normal. vector new_pos = delta * frame + prev_pos; prev_pos = new_pos; setpointattrib(0, "P", pts[i], new_pos); setpointattrib(0, "N", pts[i], normal * frame); } curl.hipnc
  37. 2 points
    Project Non-Divergent Step and Mushrooms The Project Non-Divergent DOP is responsible for 99.9% of the simulation's behaviour. Yes hundreds of DOPs inside the Pyro Solver all playing a part but all funnelling through that single Non-Divergent step. This means that if you don't like the look of your sim and the mushrooms, it's ultimately because of the Non-Divergent step creating a vel field that doesn't do it for you. If you want to see for yourself, unlock the Pyro Solver, dive in, find the Smoke Solver, unlock that, dive in and find the projectmultigrid DOP and bypass it, then play. Nothing. For most all Pyro sims, this is the Project Non-Divergent Multigrid as it is the fastest of the Non-Divergent micro-solvers. This specific implementation only takes the vel and divergence field and assuming across the timestep that the gas is non-compressible when divergence is 0, will create a counter field called Pressure and then apply that pressure field to the incoming vel to remove any compression or expansion and that gives you your velocity, nice turbulent and swirly, or combed straight out. Just tab-add a Project Non-Divergent Multigrid DOP in any dop network and look at the fields: Velocity Field, Goal Divergence Field and Pressure Field (generated every timestep, used, then removed later on). All the other fields in Pyro are there to affect vel and divergence. Period. Nothing else. At this point I don't care about rendering and the additional fields you can use there. It's about vel and divergence used to advect those fields in to interesting shapes, or mushrooms. If you want to create your own Pyro Solver taking in say previous and new vel, density, temperature, and then in a single Gas Field VOP network, create an interesting vel and divergence field, then pass that straight on to the Project Non-Divergent Multigrid microsolver, then advect density, temperature and divergence afterward, go for it. Knowing that only vel and divergence drive the simulation is very important. All the other fields are there to alter the vel and divergence field. So if you have vel vectors that are combed straight, divergence (combustion model in Pyro) or buoyancy (Gas Buoyancy DOP on temperature driving vel) have a lot to do with it. Or a fast moving object affecting vel...
  38. 1 point
    Hi Aj! I'm not the most knowledgeable person but here are a few things that might help > #1 You're wanting to convert btmside2 to an integer to append it to the array btmside? If you're stuck on "names" perhaps you should use strings instead? If you want to use the name btmside and convert btmside2 to an integer and append it to the end of btmside, sprintf is perfect for you! (I think) String btmside = sprintf(“%s%d”, btmside, integer); #2 Have you checked if your wrangle is running over points vs detail? #3 I'm still learning vex as well, but this method might be of use to you > Whenver I run over points in a loop and I want specific points to do specific things, I just check if the point number is = to the looping number. for (int i = 0; i<@numpt; i++) { if (i == @ptnum) { setpointgroup(0,btmside,i,0); } } Let me know if any of this helped, or if I'm just stupid. Good luck!
  39. 1 point
    Hey Johnny, are you trying to upres your sim AND create 2 high-res rest fields for extra details in the shader? That would be 6 extra heavy volumes (rest.x,y,z rest2.x,y,z) - I wouldn't not recommend that. The one rest field created in the upres is not for shading purpose, that's for sure. If you keep a standard upres workflow, you only need to save on field on disk: density hope that helps.
  40. 1 point
    my thoughts are these: - if you plan to blend the last 15 frames...then run a non-loop sim first, then pick the initial frame as somewhere about 15 frames from the end.....ie. it will not be DRASTICALLY different from the last frame. Of course, once you picked your initial frame and rerun the sim, you'll still have to pray hard that it turns out similar to your previous run. - I think toadstorm's approach is same as the Gamedev's shelf tool. To me if you spend a lot of time tweaking your sim, then you want to loop it and this will compromise your orig result because of blending....so I want to compromise the least amount...ie. some frames at one end rather than mirroring 2 ends and blend middle. But who knows, it may give you a better look, give the Gamedev one a go. - yeah the stash is great, you'll just have to get used to run some sim, scrub to where you like the 'shape', connect the result from bottom back up to stash, update stash, disconnect input of stash, rerun....rinse repeat....bit confusing at first...but great once you've grasped the workflow.
  41. 1 point
  42. 1 point
  43. 1 point
    "Lantern" A test image for organic spatial subdivision rendered in Redshift: Cheers, Tom
  44. 1 point
    Hallo Konstantin I finally had time to go trough my old work and find an example file. It takes a curve or line and creates transform handles for each point. The handles are then linked to parameters. From the parameters they could be linked back to attribute data. I't might be possible to directly attach handles to attribute data but i'm not sure about that. Hope this helps you on your way. custom handles.hipnc
  45. 1 point
    You can do it with POPs but using the volume gradient is the way to go. flipAttract.hip
  46. 1 point
    Exploring Splines deformed by Smoke: Cheers, Tom
  47. 1 point
    Hi, how would you describe difference between lookat() and dihedral() VEX functions? Aren't both used to compute matrix3 to transform vector A onto vector B ?
  48. 1 point
    Hello, Guys. I wanted to share this with you. Here I am using @Pavel's awesome method. I am building the constraints using the geometry edges. I am really surprised how well this works! For the initial rollup, I am using a VEX method from a fellow from this thread: http://forums.odforce.net/topic/25760-curling-hair-curves-with-vex/#comment-149896 Thanks alot! bullet_cloth.hipnc
  49. 1 point
    Or you could just use the object merge using wildcards (reference "subnet1/*/*")
  50. 1 point
    there is all info in help http://www.sidefx.com/docs/houdini11.0/ref/windows/optype#parms_tab you should try for AND operation: { option1 != 1 option2 != 1 } for OR operation: { option1 != 1 } { option2 != 1 } combination: { option1 != 1 option2 != 1 } { optionX > 0 } and so on
×