Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. Wind from rotating fan

    Can anyone suggest how you might go about simulating invisible wind from a rotating fan? My goal is to make the wind force influence other geometry and also an existing smoke simulation. In my limited understanding I think this means one simulation influencing a second one. I also need to make it as physically accurate as possible so that the faster the fan rotates, the greater the wind velocity and turbulence. Is this an impossible task for Houdini? Will I need to 'fake' it (ie single simulation, NOT physically accurate so that the rotating fan isn't advecting anything)? How might you approach this?
  3. Good morning all (or at least morning for me). Longer post about pipeline and workflow. Thank you in advance for taking the time to read through it. HDA workflow question for a pipeline that I'm currently developing for a product-centric rendering operation. At my place of work, we have many different SKUs (products. ~600 in total) that need to be accounted for. I'm thinking it would be really tidy to have each SKU be represented by an HDA. This would allow for all SKUs to be easily shared on network between users and allow for data per each SKU to be recorded into the HDA. What I'd like to do is have a master, template HDA, that SKU HDA derivatives can be created from. I'm assuming there is a way, via HOM, to author a new HDA by copying a pre-existing template to perform this task. If this is not the case or is not the best way of working, please let me know what you'd recommend. The biggest concern I have with working in the way above, is global versioning of all pre-existing, derivative HDA SKU assets to match the parameters and functionality of the template. Let's say, I initially have the template HDA setup to only manage the geometry CAD data of the SKU, but down the road I want to build in a system to store lighting profiles or product configuration profiles or whatever other feature additions I want to develop into the template HDA down the road. These feature additions to the template HDA will not reference down to the per SKU HDAs as at this point, the pre-existing SKU HDAs would be their own, independent HDA. To help mitigate challenges in versioning, I'm considering nesting internal HDA's into the Template (and therefor the generated SKU HDAs), that will act as containers for certain functionalities. These containers would be blank at first, but would be placeholders for features I'd plan on developing into the template HDA. This way, when I want to develop certain features, I'd develop on the internal HDAs that are nested and referenced in all the SKU HDAs. This may work for general, global HDA features, but I'd worry that I may run into roadblocks if these nested HDA's need to be configured to any specific product. If that sounds like the appropriate workflow, please let me know. If not, please let me know what you'd recommend. The last piece of the puzzle that I haven't figured out yet is how to actually version all the pre-existing SKU HDA's at the top level (derived from the template at creation) such as embedded python modules, additional support files or additional top level parameters. The only way I'm thinking this would be possible would be to perform a target batch HOM operation to modify all pre-existing SKU HDAs along with the template HDA. This however seems sloppy and potentially error prone. If you have suggestions or recommendations on handing this type of versioning, I'd be interested in your input. Thank you for reading this post! I'm in the process from switching our entire operation from Maya to Houdini. Exciting times, but there are a few unknowns that I'm trying to workout before I get too deep into development and corner myself. Best, Clayton
  4. To me this seems like a recursive loop. Maybe do 2 copy nodes. One for being the input and one for the output? But I'm no expert, haven't used the python node a lot.
  5. Today
  6. Export crowd agent in a single geometry

    Just figure out what to do... First used a Agent Unpack node to get access to all the information, clean everything that I don't need (groups and attributes) then pack again making sure that have one primitive.
  7. If the pre-build nodes don't give you what you need, like i said, build it yourself. This file is by no means the best solution, but it gets the job done. dm_Cluster_Individual_Problem_01.hip
  8. Hello, I have a problem with my python-nodes in my network when they interact with a node above them. In this particular case I try to decide the parameters of which I want to generate a number and it works in the copy-node, but when I get to the python-node it will do it again, but sometimes it doesn't follow the rules. In houdiniConsole.PNG we can see that the minNr for the randomNumber is 3 but the python-node makes 2 copies (resultFromPythonNode.PNG) while the copy-node works (resultFromCopyNode.PNG). Another weird thing is that if I interact with the copy-node, like change the "total number of copies" to the exact same value it already is, the python-node will not change it and it will work as it should. I think skipping the python node would solve the problem, but I need the python node to change the copy node. How is the best way to solve this?
  9. Hello everyone, (This is copied from my post at Sidefx's Forum: https://www.sidefx.com/forum/topic/69881/) I have created a rig (and character). I'm trying to use the Pose Library to save my walk-cylce and other animations. Sadly the captured data is all wrong. Parameters like the FK/IK Sliders in my HDA get captured wrong. Several Sliders that don't have any values for some reason get all assignes values. I feel like it tries to capture more than the parameters of my HDA. I have already tried the different capture settings from the Pose Library. It only works when I bake the keyframes, but that would be problematic to work with. I'm on Windows 10 with Version 17.5.391 I sometimes get these Warnings in the Console: Qt Warn: QSortFilterProxyModel: invalid inserted rows reported by source model Qt Warn: QWindowsContext::windowsProc: No Qt Window found for event 0x1c (WM_ACTIVATEAPP), hwnd=0x0x70070. Qt Warn: QWindowsContext::windowsProc: No Qt Window found for event 0x1c (WM_ACTIVATEAPP), hwnd=0x0x3100be. I attached a file with the animated bones. Thank you all very much! (Since this is my first rig in Houdini, I also appreciate every other improvement you might want to add) Rig_Sharable.hiplc
  10. Exploding vellum grains

    Hi Philipp Can you post your test scene? Edit: Maybe try lowering the repulsion and attraction values as these can cause some high velocity values.
  11. If all the geo nodes are on the same hierarchy level (e.g. "/obj/geo_nodes/geo_0","/obj/geo_nodes/geo_1","/obj/geo_nodes/geo_2",...), you can create a new "geo" node and then merge everything using an "object merge" node with the wild card syntax: Be sure to check the "Create Per-Primitive Path" Attribute. Then you can loop over the packed prims via the path and unpack, add normals, repack the geo while still keeping the same path hierarchy.
  12. For stuff like that use Python. Create a shelf tool with the following code: obj = hou.node("obj/") geos = obj.children() for geo in geos: last = geo.children()[-1] nml = geo.createNode("normal") nml.setInput(0, last) nml.moveToGoodPosition() nml.setRenderFlag(1) nml.setDisplayFlag(1)
  13. How do I access the buffer file? Edit, found the answer: https://www.sidefx.com/forum/topic/49383/#post-223158 It's in c:\temp\houdini_temp\ under Windows. Also found this while researching the upper question. Clipboard History, a new Windows feature which seems quite handy. Though not for multple OP C&Ps. https://www.makeuseof.com/tag/windows-10-clipboard-paste/
  14. Optimizing Smoke SIMs

    You might consider an UpRez technique like this:
  15. Houdini 19 Wishlist

    I tried/used that for 1 week and I found very well also, if I remmeber well, you can use a special button and setting inside some different tools for each software you used (it's like a circular menù in Houdini, but you can use one for Houdini, one for Maya, for e.g., or others and in all cases it's different). Price is high also because you should buy the pad so price not less, but is very good product. https://www.3dconnexion.co.uk/nc/products/cadmouse-product-line.html On Atohotkey scripts good to knoe I use it for fix alwayse on top some application/floating windows in Win10. Matteo
  16. Houdini 19 Wishlist

    Hi @Maurits, as regards 1. I would suggest to try the https://www.autohotkey.com and/or to buy a mouse, which has a driver, which allows you to bind custom hotkeys. (I have a Roccat mouse and the driver is quite good for that.) as regards 3. if you have the Python Shell Pane open, it supersedes the Console pop up.
  17. Hi friends...I have more than 10024587515 Geo nodes on my SOP network...I need to add a Normal Sop on the final network of everything, I have to do it one by one? Or Houdini give me a way to do automaticly? If yes, which? Thank you for all
  18. pop replicate 1st vs 2nd input

    Hey all, just been learning pop replicate, all makes sense except for the difference between the first and second input. Checking the help i'm still no wiser. Testing it myself in the scene i can't seem to find any cases where it makes any difference? I know that must be wrong. Can someone give an example of when you might use the second input over the first? Thanks
  19. Python write vector attribute to text file

    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
  20. Optimizing Smoke SIMs

    All depends on what do you want to do with your velocity field later. General ways is: 1. Split velocity and density into different caches. 2. Save velocity with volume compress as 16bit float. 3 . Convert your volumes to vdb. 4. Clamp your velocity with vdb clip using density as mask.
  21. Python write vector attribute to text file

    Not sure if these lines are working, but it seems to me that the value of "data" would be a string. Therefore, when you loop through "data", "item" would be each characters in the string. Hope I could be misunderstanding..
  22. As I venture deeper into smoke &pyro one issue I am facing are the extremely LONG sim times and inefficient playback times of my cached sims. I am using a voxel density of .01 and show 216 million density and collision voxels. I've enabled ‘Use OpenCL’ on my Pyro solver. Even after caching a 204 frame simulation which takes several hours with a 12 core Threadripper and dual Titan Volta GPUs I can only play back the simulation in the Geometry Viewer at about 1 fps. This workflow simply makes it impossible to proceed and iterate. I need the .01 voxel density otherwise the resulting smoke sims appear too ‘jagged’. Attached are screen grabs of my Pyrosolver and caching SOPs info details. Are there any tips or workarounds that people use to optimize smoke & pyro workflows? Are 216 million voxels simply too many?
  23. Yesterday
  24. Polybevel issue

    Here is a hip file. spiral2_F.hip
  25. Polybevel issue

    Thanks for advice, but it doesn't work however I try... Maybe there is another solutyion?
  26. Best Value/Time HDA, ever! :D (Studio Clipboard)

    Another way is to send someone the copy and paste buffer file. Each network type has it's own copy and paste buffer file on disk whenever you copy something in Houdini. They can be emailed or put on network shares or whatever.
  27. Studio Clipboard HDA Use case: You want to share OPs with colleagues super fast. And you want to spend minimal time to make this happen. Tl;DR: Just create an empty HDA to share arbitrary content. Creation: 1. Create an empty Subnetwork SOP 2. Create Digital Asset from it 3. Save it on a network location 4. Add the network location to houdini.env found in c:/Users/yourUser/Documents/houdini17.5/houdini.env by adding HOUDINI_OTLSCAN_PATH="z:/yourPathToCheapestHDAEver;&" Usage: 1. Create Studio Clipboard SOP 2. Allow Editing of Contents 3. Put OPs in you want to share 4. Save Node Type 5. Create Studio Clipboard SOP on another computer in the network 6. Retrieve content 7. Profit!
  28. Can't Get Rid of Particle Stepping

    That was it! Interestingly, if I also cache the Debris Source SOP before it's fed into the POP Network (also caching the same number of substeps), the POP Network doesn't read the substeps and I get gaps again. But if I don't cache it, it works perfect! I guess something about caching the Debris Source SOP messes things up, but this isn't crucial. Thanks so much for your help!
  1. Load more activity