Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. Today
  3. get all possible file extensions with python

    I don't know reliable future-proof way to get the exact list of geometry files for File node. 1. To make hou.ui.selectFile() ask for geometry, pass file_type=hou.fileType.Geometry parameter. 2. You can parse data from "$HH/GEOfiles" and "$HH/GEOio.json", which appear to provide most common geometry formats. 3. To get the most extensive list of supported geometry, I'd parse the help message of gconvert utility: import re import subprocess formats = {'Read': set(), 'Write': set()} # Capture output of gconvert utility. path = 'gconvert' try: out = subprocess.check_output(path, shell=True, stderr=subprocess.STDOUT) except: pass # Split output into major pieces. _, builtin, _, external_translators = re.split(r'-- Built-In --|-- Translators --|-- External Translators --', out) # Parse "Built-In" piece builtin = set(builtin.partition('Recognized Extensions:')[2].replace(',', '').split()) formats['Read'] |= builtin formats['Write'] |= builtin # Parse "External Translators" piece external_translators = re.findall(r'\((Read)-(?:Only|(Write))\)\n.*: ([\w., ]+)', external_translators) for read, write, extensions in external_translators: extensions = set(extensions.split(', ')) if read: formats['Read'] |= extensions if write: formats['Write'] |= extensions # Manually add 2 formats from "Translators" piece and also add FBX read. formats['Read'] |= {'.hgt', '.fbx', '.vdb'} formats['Write'] |= {'.vdb'} It will output this: {'Read': {'.abc', '.ai', '.bgeo', '.bgeo.bz2', '.bgeo.gz', '.bgeo.lzma', '.bgeo.sc', '.bgeogz', '.bgeosc', '.bhclassic', '.bhclassic.bz2', '.bhclassic.gz', '.bhclassic.lzma', '.bhclassic.sc', '.bhclassicgz', '.bhclassicsc', '.bjson', '.bjson.gz', '.bjson.sc', '.bjsongz', '.bjsonsc', '.bstl', '.dxf', '.eps', '.fbx', '.geo', '.geo.bz2', '.geo.gz', '.geo.lzma', '.geo.sc', '.geogz', '.geosc', '.hbclassic', '.hbclassic.gz', '.hbclassic.sc', '.hbclassicgz', '.hbclassicsc', '.hclassic', '.hclassic.bz2', '.hclassic.gz', '.hclassic.lzma', '.hclassic.sc', '.hclassicgz', '.hclassicsc', '.hgt', '.iges', '.igs', '.json', '.json.gz', '.json.sc', '.jsongz', '.jsonsc', '.lw', '.lwo', '.obj', '.off', '.pc', '.pdb', '.ply', '.pmap', '.stl', '.vdb'}, 'Write': {'.abc', '.bgeo', '.bgeo.bz2', '.bgeo.gz', '.bgeo.lzma', '.bgeo.sc', '.bgeogz', '.bgeosc', '.bhclassic', '.bhclassic.bz2', '.bhclassic.gz', '.bhclassic.lzma', '.bhclassic.sc', '.bhclassicgz', '.bhclassicsc', '.bjson', '.bjson.gz', '.bjson.sc', '.bjsongz', '.bjsonsc', '.bstl', '.dxf', '.geo', '.geo.bz2', '.geo.gz', '.geo.lzma', '.geo.sc', '.geogz', '.geosc', '.hbclassic', '.hbclassic.gz', '.hbclassic.sc', '.hbclassicgz', '.hbclassicsc', '.hclassic', '.hclassic.bz2', '.hclassic.gz', '.hclassic.lzma', '.hclassic.sc', '.hclassicgz', '.hclassicsc', '.iges', '.igs', '.json', '.json.gz', '.json.sc', '.jsongz', '.jsonsc', '.lw', '.lwo', '.obj', '.off', '.pc', '.pdb', '.ply', '.pmap', '.stl', '.vdb'}} Difference may not worth it, but it exist: >>> formats['Read'] - formats['Write'] {'.ai', '.eps', '.fbx', '.hgt'} >>> formats['Write'] - formats['Read'] set()
  4. @henderthing it's a preprocessor macro similar to ones in C language. Houdini 17.5 docs is not very informative on them. Fortunately, you can use C tutor on this: http://www.zentut.com/c-tutorial/c-macros/ We have both object and function macros in VEX. Be careful about: ...precedence #define FOURv1 2 + 2 #define FOURv2 (2 + 2) printf("8 == %d using FOURv1\n", FOURv1 * 2); // 2 + 2 * 2 printf("8 == %d using FOURv2\n", FOURv2 * 2); // (2 + 2) * 2 ...more precedence #define TWICEv1(arg) arg * 2 #define TWICEv2(arg) (arg * 2) #define TWICEv3(arg) ((arg) * 2) printf("8 == %d using TWICEv1\n", TWICEv1(1 + 1) * 2); // Expanded as: 1 + 1 * 2 * 2 printf("8 == %d using TWICEv2\n", TWICEv2(1 + 1) * 2); // Expanded as: (1 + 1 * 2) * 2 printf("8 == %d using TWICEv3\n", TWICEv3(1 + 1) * 2); // Expanded as: ((1 + 1) * 2) * 2 ...scoping and line continuation #define REPEATv1(arg) \ arg; \ arg; #define REPEATv2(arg) \ { \ arg; \ arg; \ } if (0) REPEATv1(printf("This should never print (REPEATv1).")) /* Above expanded as: if (0) printf("This should never print (REPEATv1)."); printf("This should never print (REPEATv1)."); */ if (0) REPEATv2(printf("This should never print (REPEATv2).")) /* Above expanded as: if (0) { printf("This should never print (REPEATv1)."); printf("This should never print (REPEATv1)."); } */ Note: you may want to omit the scope to generate variables that should be created in scope where macro is used. And never put trailing space after backslash, as it will break the code with cryptic error. For useful examples search VEX libraries in $HFS/houdini/vex/. For example, ADVECT_POINTS macro in $HFS/houdini/vex/include/groom.h at line 265
  5. Yesterday
  6. Constraint Grains to Animation (targetP ?)

    I found this post very helpful in figuring out the grain dancer question. I just needed some help finding where to apply animation to have force go to the grains. I think I understand the use of the point deform node, but I'm putting it in the wrong place. Here is what I have been working on. Please help Thank you, grainExp3.hip
  7. scaling pyro sims

    @ejr32123Thank you. This helps.
  8. Hi there How may I achieve this: let's say I have a rectangle. I want to add a point at 10% of its length, then another at 20% of its length. Later I'd like to have some knowledge of whether a segment is between two points that were added to the original geo, for example to make an opening for a door. I didn't have much luck with carve because the First U parameter is expressed in terms of a u parameter in NURBS, not a distance on the curve; also two consecutive carve SOP are not commutative,
  9. Ways to bend geo under hard constraints

    I'm working on an rbd sim of a helicopter being hit by missile mid air. My metal is bending nice upon collision, but I'm looking for other ways to bend metal by the missile explosion (besides throwing a rock at it). Meta balls do break those hard constraints which are meant to break and send rigids flying, but I'm not getting any deformation in rigids which do (and are supposed to) stay constrained. TLDR: meta balls just don't bend my metal. Am I doing something wrong here? Should I be using some other method to achieve this effect? Unfortunately this is work for a client, so I cannot share files or pictures.
  10. Cloud rendering for education

    Howdo Im looking for some advice. Im teaching at a small private school in Vancouver, and its coming upto final project time. Unfortunately rendering on their workstations isnt quite going to cut it when it comes to crunch. I was wondering what experience other education houses have had with various providers, setup, their support lines and bang for buck. Did you need to have a seperate holding server for up/downloads There is only a handful of students so we wouldnt be sending the volume of data some of the larger schools can for big discounts. And as well as Houdini educational edition it would have to support maya too, but i think most do anyway Any help/thoughts greatfully received Ed
  11. Weird. I've been running into something similar on my Indie on Steam. Sometimes my render view glitches, and when I click the render button, nothing starts. If I create a new render tab, then it usually fixes itself, but it can happen again. If closing your session and re-opening it doesn't resolve your issue, it might be a little more serious than a simple glitch.
  12. Working only perlin, simplex and all below it
  13. Snow Solver

    You can use a grain solver
  14. Snow Solver

    Hello, everyone! Have you ever used the HDK snow solver for effects? I'm currently looking for examples for it. I'd gladly accept any examples, even with another solver, not necessarily the HDK one. Thanks!
  15. Hi fine People of odforce! I am setting up the simplest of curl-noise setups, an empty "vel" volume, a volume vop, some points on a grid and a volume trails sop for visualization. All I'm doing in the volume vop is adding a curl noise, feeding it volume position and exporting the result to vel. Now: picking base noises "alligator", "simple perlin" or "sparse convolution" results in this "missing dimensionality" along this axis that seems to be {-1,1,1}. What is going on here? I feel like I'm doing something wrong, but noises like simplex and perlin work absolutely fine in this setup. Any light shed upon this mystery is greatly appreciated! alligatorcurl.hiplc
  16. Rigid Body _ initial Ground Collision

    Thank you for your fast reply. Your solution works well. But in this case the bottom boxes would never be affected by the simulation. Is it possible to make the initial position a rest position defined previously by the node rest position ?
  17. Run script in Command Line tools with Python

    Ok, build a tool to render a list of HIP files without Hscript and batch files, via Python Directly.
  18. Hi, I am working on an airplane destruction with a skeleton underneath the fuselage. At first this worked quite well. ( SimV15_V5_goodImpact ) But after importing a newer version of the model with wings it completely ruins the simulation. ( SimV15_V7_Glitch ). Once I removed the breaks in the fuselage and skeleton mesh it works as it should again but the skeleton glitches through the fuselage. ( SimV15_V7_WingFixSkeletonBug2 ). So I know why this happens but I don't know how to fix it. I also don't really understand why the skeleton glitches through the fuselage mesh all of a sudden. Can two deformable surfaces work together properly? In attachments, you can find the file ( Simtest_15_V10WingFix_SkeletonIssue ) and the ABC ( B25_V30_Turbo_AllWingsV2 ) Btw I used steven knippings rigids 3 tutorial to get the metal deformation. Thanks in advance SimV15_V5_goodImpact.mp4 SimV15_V7_Glitch.mp4 SimV15_V7_WingFixSkeletonBug2.mp4 Simtest_15_V10WingFix_SkeletonIssue.hipnc B25_V30_Turbo_AllWingsV2.ABC
  19. "standard" pyro and deforming mesh

    Ah yes, indeed it works better. It's not entirely flawless, though - there is still that annoying lag behind as if the flames were pursuing the model limbs rather than being attached to it. Fun fact, I did try to crank up the Burn Rate a lot higher but I never tried settng the maximum, and the result is faaar different between 0.99 and 1.0 ! Anyway, in the end, after letting it rest for the night and trying to make it work for a few days, I'm quite dissatisfied with the provided pyro workflow. I'm quite sure I'm not entirely wrong about how I'm doing things but it requires so many patches and fixes to work 'well' that it ends up taking too much time simulating only to get a clunky result. I guess I'm better off with the 'fake' fire methods, temperature field manipulation and all that jazz. I mean, it's like building a house from scratch rather than trying to plug the leak in an old manor. Or something like that. I may be wrong though, and I'd be curious to hear about people successfully getting nice and realistic fires using the pyrosolver model...
  20. Rigid Body _ initial Ground Collision

    Hello, simplest way to achieve your goal is to set point attribute i@active = 0 on bottom boxes there as on the others set 1. And look some tutorials at sidefx.com about RBD simulation with bullet solver.
  21. Hi, I am trying to get a list of all the extensions that file sop can read/write, for example: bgeo.sc, vdb, abc, etc - with python. Is there a way to load them all into an array without writing it manually one by one? Thanks
  22. Hi There, I am trying to set up a initial state for a grains sim(that has constraints). I saw those two tutorials about people having similar problem: https://lesterbanks.com/2018/03/initial-state-houdini-simulations/ [lesterbanks.com] https://forums.odforce.net/topic/21727-set-initial-state/ [forums.odforce.net] It seems like that method works for grains/particles that are with out the constraints though…. Has anyone idea how I can solve that ? Thanks a lot for help! Grains_Initial_State_Test_v01.hiplc
  23. Thoughts on this laptop build?

    Thanks for the input. Portability is the number one factor in this purchase - I'm working between two offices and my home so I need something I can take around with me and use to work on different set-ups. The graphics card is mainly for using redshift - the less time I spend watching things render, the better. I have access to a pretty good desktop (threadripper, 64GB Ram) if I need to work on more intensive stuff, but the main thing is something which runs Houdini moderately well and allows me to work on the move.
  24. Hello ! I have a custom ground and I want my object to not move until I have a collision. I connect my ground with my object by a Glue constraint. But so far my object is still moving... Do you have an idea ? Here you can see my simulated object, my red drawing is where I would like my object to be. ODForce_GroundCollision_001.hipnc
  25. Bullet Impacts

    Any update to this? Would be awesome !
  26. Upon further investigating, this came up. Hmmm, will Email support with this issue.
  27. Got home tonight excited to work on some Houdini stuff, did a few tests and hit [Render] in render view tab. Render never started with a blue progress bar up top and a message saying: Generating Scene ..... Restarted computer and started a fresh Houdini Scene, dropped in a Test Pig Head and hit render again. Same thing! What's going on?! PS. Indie License if that helps! Please assist!
  28. Vex help

    Thank you very much for the explanation.
  1. Load more activity