Jump to content

Stalkerx777

Members+
  • Content count

    343
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    8

Stalkerx777 last won the day on October 13 2017

Stalkerx777 had the most liked content!

Community Reputation

93 Excellent

6 Followers

About Stalkerx777

Contact Methods

  • Skype
    alexx_houdini

Personal Information

  • Name
    Alex Rusev
  • Location
    Vancouver, Canada

Recent Profile Visitors

7,054 profile views
  1. Creating HDA node in python "very" slow

    It's pretty uncommon task to create a node inside thousands of other nodes. The issue easily might be nothing to do with your Python code or HDA itself but simply the Houdini bottleneck. What I would try: Profile your code with cProfile. This might give you an idea what takes time. Performance monitor doesn't help you in this case. You might be querying some Houdini parameter or geometry which makes Houdini cook it. Run your script in Hython instead. Try to do this in Hscript, although it's very unlikely you see any difference. Ask SideFx for support if you have a commercial license. Go crazy and write it in HDK
  2. Debugging in Houdini from PyDev Eclipse

    Vice versa. You attach the debugger to a running process. But as I said before, Houdini is not a process you want Python debugger attach to. Python interpreter is running inside Houdini process so the only option you have for real debugging is using a remote debugger. Maybe someone here could share if they have such experience, I haven't been able to set it up in Houdini.
  3. Debugging in Houdini from PyDev Eclipse

    Debugging and communicating with an application via a port is completely different things. You can do a socket to socket communication in Houdini via openport command or use Houdini's hrpyc Python server. For debugging, since you're running PyDev you should be able to use PyDev remote python debugger. I've had a few attempts to make it work but no luck.
  4. Houdini Universal Unique ID (UUID)?

    It's a coincidence that I'm working on the tools that require unique node identifiers. Unluckily Houdini doesn't provide us with a persistent UID which would be saved in a Hip file, only in the duration of the session, which is kinda useless in my opinion. Despite the fact that I don't like Maya, there is a unique ID attached to each Maya node and this guarantees that knowing the UID you can always retrieve the node. So in Houdini you can't rely on the node names since they inconsistent. What I ended up with is that I'm generating a UID by myself for every node I'm creating in the script. import hashlib, time def generate_uid(node): hash = hashlib.md5() hash.update(node.path() + str(time.time())) node.setUserData('uid', hash.hexdigest()[:10]) # To get the value: node.userData.get('uid') And there you go, you have a UID system in Houdini.
  5. Import Hou error

    http://www.sidefx.com/docs/houdini/hom/rpc.html Note: hrpc module lives in $HH/python2.7libs and it depends on some other rpc bits which are somewhere in $HFS/python/lib/site-packages
  6. pyqt5 on houdini

    Starting from version 16 Houdini has been switched to Qt5, which means it ships with the libraries so you don't need to use system's ones. from hutil.Qt import QtCore, QtGui, QtWidgets
  7. Happy 10th Birthday Od[force]

    Congrats! And thanks for such an amazing resource.
  8. How to set up pycharm for hou on win10

    There are some complexities with Qt bindings at present. There are Python2 and Python3 branches, and PySide, PySide2, PyQt4, PyQt5 bindings. Back then when only Python2 and Qt4 existed, everything was simple: you either go with PySide or PyQt4. Now it's more complicated UNLESS you compile the bindings yourself. So If you want PySide2 for Python2 on windows you have to compile it yourself. Same for PyQt5. We are pretty stuck with Python2 for at least until 2020 (see http://www.vfxplatform.com/) Another quick solution is to install Python3 and PyQt5 (pip3 install pyqt5), and then use houtil.Qt wrapper: from hutil.Qt import QtWidgets, QtCore But why do we need to install Python3 and PyQt5 then? Well, just to be able to use PyCharm features! In PyCharm type this: from hutil.Qt import QtWidgets, QtCore if False: from PyQt5 import QtWidgets, QtCore You trick PyCharm to use PyQt5 libraries for autocompletion. It's a very quick and not so reliable solution because PyQt5 and PySide2 are different, as well as Python2 and Python3 Note that you can use https://github.com/mottosso/Qt.py (hutil.Qt is basically the same) which abstracts the bindings problem and your code will use whatever library is available at that time. But you won't have PyCharm completion which is sad. So the take away is: for serious development with PyCharm + Houdini, you want to compile PySide2 bindings. P.S. quite a long post Maybe someone finds it useful. I'm a long time PyCharm user and still haven't found the working solution for Houdini and Qt development that works on all platforms.
  9. How to set up pycharm for hou on win10

    PySide2 libraries are located in ....Houdini 16.0.705\python27\lib\site-packages-ui-forced ... something like that, don't remember exact folder name.
  10. Python issue from 3DBuzz Rigging tutorial

    That's pretty old tutorials and many things have changed since then. To add a spare parameter: ptg = node.parmTemplateGroup() parm = hou.FloatParmTemplate('foo', 1) ptg.addParmTemplate(parm) node.setParmTemplateGroup(ptg) http://www.sidefx.com/docs/houdini/hom/hou/ParmTemplateGroup
  11. Simplify Keyframes Script?

    HScript chrefit command
  12. Cumulative edits in HDA

    Yes, see Geometry Data parameter type and a new Stash SOP
  13. No, nothing you can do about it. OS constantly sends all sorts of events to Houdini application, and since the latter waits while you editing code, Windows assumes that your application experiencing problems
  14. Set Parent node as current node

    @CinnamonMetal Please create a separate topic for all your Python questions, Thanks.
  15. Index of class on empty string

    Do not use break keyword inside the if statement and you'll get an infinite loop.
×