Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.


  • Content count

  • Joined

  • Last visited

  • Days Won


Community Reputation

31 Excellent

About MrScienceOfficer

  • Rank

Personal Information

  • Name Tom

Recent Profile Visitors

2,707 profile views
  1. Inspired work, well executed. Very cool.
  2. Funny, I was thinking much the same thing. I really want some nicely printed books of the documentation, one for the high level stuff and a reference books for all the nodes, VEX etc.. I would pay good money for that. There's so much information in the docs and it's simple impossible to read through it all when it's a tree of links, we really need it linearized, with pretty color pictures and a hard cover Though I would bet there's s some program out there that could convert the local documentation folders to a PDF... Apparently Adobe Acrobat can convert HTML to PDF.
  3. The sample for python wrappers is in the HOM folder. ../toolkit/samples/HOM/ObjNode_setSelectable.C It's very well commented and should walk you through the process. Any type prefixed with "PY_Py" is (in most cases) a wrapper to the CPython API. So if you need to look up documentation you need to remove the "PY_" and look up the type here https://docs.python.org/2/c-api/
  4. I've never seen anything. If you need to call into C++ on time change events outside of a node, it's probably best to just create a python wrapper into your plug in.
  5. # Get the selected nodes in a list nodes = hou.selectedNodes() # Loop over the selected nodes list for node in nodes : node.parm("px").setExpression("$CEX") node.parm("py").setExpression("$CEY") node.parm("pz").setExpression("$CEZ") In the second sample you were trying to index ( i[0] ) a node. Whereas, in the first code example, you were indexing the node list ( sel[0] ). A good way to learn python is printing things out for example, print type(i) would have told you that 'i' was an ObjNode and not a Parm like in the first example.
  6. That's beyond cool... Thank you so much for sharing, petz.
  7. That's a chapter from the book https://www.amazon.com/Multithreading-Visual-Effects-Martin-Watt/dp/1482243563 It's written Jeff Lait the Senior Mathematician at SESI. It's a good book, it's definitely worth reading... and it is definitely still relevant, a lot of it is the theory behind how Houdini works and how multi threading works in Houdini and the challenges thereof. However will it really help you with VEX? Probably not.
  8. So you need to remove all the points from the point group except for one? I can't run Houdini on my laptop but I would say off hand the easiest way to do that would be something like this in a point wrangle if (@ptnum % NumberOfPointsOnARing > 0) i@group_topedges = 0; That should isolate the first point on the ring. Basically this uses the modulo operator to find the point number that divides without a remainder into the number of points in the ring. Under most circumstances it should work, however a sort sop for example would break it.
  9. Drag and Drop nodes onto shelf tools, to call the tool with that node in the kwargs dict.
  10. You need to use 2015. Definitely use the latest production build, if possible. Try that combination and see if it helps.
  11. Callbacks. Callbacks. No Polling for changes. Callbacks. I don't want to so much as breath without Houdini notifying me about it, in advance. Default State setting for HDAs to work for all states and dynamically generated radial menu for HDAs with multiple states. Event handling for customizable HDA states with override-able methods through the hdaModule(). Make Autodesk even more distraught over the complete annihilation of their "industry leading" rigging and animation tools!
  12. The visualers for attributes. Making those readable at any resolution can be tough. More visualers would be awesome. Custom selection visualers, like say you have a copy sop set as the guide geometry for an hda and the user can select points, this way you can show the user the end result of the selection instead of just the points. Or maybe just a call back for selections, since selecting doesn't cook the network. And callbacks for parameter changes caused by handles would be incredibly useful too.
  13. Has anyone tried getting Mixed Mode debugging with Python Tools for Visual Studios to work? Houdini ships with 2.7.5 but it's compiled with msvc 14, which I must assume means SideFX compiles the binaries with likely significant source modifications. It seems like the only way Mixed Mode debugging between Python and C++ can work is if Houdini ships with the python symbols? Or am, as per usual, wrong?
  14. That should work.... Are you by chance trying to use a relative path to the dso? I did that, and it doesn't work, I don't think it's actually called from there, though I could be full of shit . The only other thing I can think of is that you didn't change the include guard and it's being ignored? I don't think anything needs to be added to HOUDINI_PATH for it to be found.
  15. I may be misunderstanding you, but I think what your looking for is floor(). https://www.sidefx.com/docs/houdini15.5/vex/functions/floor