Jump to content


  • Content count

  • Joined

  • Last visited

Community Reputation

2 Neutral

About borbs727

  • Rank

Personal Information

  • Name
  • Location
    New York

Recent Profile Visitors

1,488 profile views
  1. Oops, might be surface_cache in particle_fluid trying to read the cache? Turned it off, try this: flipChunks.hiplc
  2. I'm trying to get some subtle refraction where objects intersect my fluid. It's working, but I can see spheres from the FLIP particles which is making the fluid seem chunky. It should be a smooth looking liquid. How can I fix this? Thanks! flipChunks.hiplc
  3. Default desktop

    Thanks, James. I'm looking to automate the process though. I'm developing some pipeline tools for a platform called ftrack, so I'd like the artist to just run Houdini and have a custom desktop loaded (without requiring them to go into the preferences on their own). I'm not sure if there are new techniques for doing this though (I found some older ones that I'll give a shot).
  4. Default desktop

    Is there a way to do this with python commands, like within a 123.py script? I found this, but it involves creating a 123.cmd or 456.cmd script (not sure if that's a good idea): https://www.sidefx.com/forum/topic/14391/?page=1#post-68075
  5. Run Python script when Houdini starts

    Thanks Alex! I was able to get everything working! I ended up creating a 123.py module and putting it inside a custom scripts location and setting the HOUDINI_SCRIPT_PATH. For example: import os HOUDINI_SCRIPT_PATH = 'custom/path/to/houdini/scripts' + os.pathsep + '&' I put all of my code inside of the 123.py module and only put the execution bits into a function. This function was then executed using hdefereval. Example code below. It searches for a pypanel file at a specified PYPAN_PATH. If it doesn't find it, then it creates the file, installs it, and creates it on startup of Houdini: """ 123.py @ houdini.scripts Some code taken from Paul Winex's hqt: https://github.com/paulwinex/hqt/blob/master/hqt_example.py """ import os import sys import tempfile import hou import hdefereval # Path to python_panels dir (must exist already) PYPAN_PATH = os.path.join( 'path/to/module', 'resource', 'houdini', 'python_panels', 'mb_MMV_pypanel.pypanel' ).replace('\\', '/') def createPanelFile(): xml = '''<?xml version="1.0" encoding="UTF-8"?> <pythonPanelDocument> <!-- This file contains definitions of Python interfaces and the interfaces menu. It should not be hand-edited when it is being used by the application. Note, that two definitions of the same interface or of the interfaces menu are not allowed in a single file. --> <interface name="test" label="test_label" icon="MISC_python" help_url=""> <script><![CDATA[import sys from PySide import QtGui path = "path/to/your/UI/source/" if not path in sys.path: sys.path.append(path) import your_module reload(your_module.MainWindow) def createInterface(): widget = your_module.MainWindow.Build() return widget ]]></script> <help><![CDATA[]]></help> </interface> </pythonPanelDocument> ''' pypanel_file = open(PYPAN_PATH, "w") pypanel_file.writelines(xml) pypanel_file.close() print pypanel_file return pypanel_file.name get_pypanel = os.path.isfile(PYPAN_PATH) if get_pypanel == True: panFile = PYPAN_PATH else: print 'create path' panFile = createPanelFile() hou.pypanel.installFile(panFile) pypan = hou.pypanel.interfacesInFile(panFile)[0] def installedInterfaces(): res = [] menu = hou.pypanel.menuInterfaces() for i in menu: try: hou.pypanel.setMenuInterfaces((i,)) res.append(i) except: pass return res menu = installedInterfaces() menu.append(pypan.name()) menu = [x for x in menu if not x == '__separator__'] new = [] for m in menu: if not m in new: new.append(m) def make_panel(): hou.pypanel.setMenuInterfaces(tuple(new)) pane = max(0,len(hou.ui.curDesktop().panes())-1) python_panel = hou.ui.curDesktop().panes()[pane].createTab(hou.paneTabType.PythonPanel) python_panel.setIsCurrentTab() python_panel.showToolbar(0) python_panel.setActiveInterface(pypan) hdefereval.executeDeferred(lambda: make_panel()) The hdefereval was only necessary because I wanted to make changes to Houdini's UI (like create a custom panel). Check out Paul Winex's MSE and hqt to learn more about automating UI creation in Houdini.
  6. Run Python script when Houdini starts

    Is there an updated way for doing this in H15.5? I'm having trouble finding anything related to startup scripts for new versions.
  7. I'm new to Houdini pipeline and I'm starting to port a Maya pipeline tool over to Houdini. Everything is working great but the tooltip windows aren't appearing in the right positions. I've used Paul Winex's MSE and hqt as a reference to see how Houdini is working with windows, if there are any other learning resources out there let me know! 1) The popups are supposed to lock onto the edge of the panel, but it looks like they're offsetting from the left edge of my center monitor (in a 3 monitor setup). No matter where I move the main Houdini window, the popups still appear in the same spots. 2) There's only 1 UI element that creates a popup correctly, but it gets hidden behind Houdini's main viewport. Tearing off my tool's panel doesn't resolve any of these problems. I'm getting the parent window in Houdini like so: class Build( QtGui.QWidget ): '''Main functions to build UI.''' def __init__(self, parent = hou.ui.mainQtWindow()): super( Build, self ).__init__( parent ) My tool works fine when getting the parent window in Maya like so: ptr = mui.MQtUtil.mainWindow() class Build( QtGui.QWidget ): '''Main functions to build UI.''' def __init__(self, parent = wrapInstance( long( ptr ), QtGui.QWidget ) ): super( Build, self ).__init__( parent ) Example for problem 1): Example for problem 2):
  8. Ugh, totally forgot this node existed... Thanks!
  9. Hey everyone, I'm trying to create a tightly packed nest of ramen-like wires, but I'm having trouble getting the wire shape down. I'm using a vop sop in pop to add turbulence to the main particle velocity, but the particle movement is too random. I'd like the particle path to be more wavy and swirly. I've attached a picture and a reference, as well as a hip. Thanks! mb_pop_less_chaotic_trails.hiplc
  10. Animated Voronoi Fracture

    I went into the AutoDopNetwork>fracture_geo>Initial Object Type and changed it to Create Active Objects and that seemed to do the trick. Not sure why though.
  11. Hey everyone, I originally started this thread on the sidefx forums here, but I'm still stuck on how to proceed with this effect. My initial goal is to get particles flocking by color. Once I have that figured out, I need the particles to also flock around a goal geometry so they can take its shape. In the end I'd like to have blobs of colored particles oozing/crawling around the geometry's surface. I've done some research on flocking concepts, so I know that I need to create alignment, repulsion, and attraction forces to manipulate the particles, I'm just stumped on how to execute the concepts in Houdini. I have the cmivfx tutorial on flocking, but it looks like some of the SOPs have changed with the years... preventing me from finishing the tutorial In my previous thread I was introduced to the pop steer nodes, but they're lacking sufficient documentation/example scenes so I'm having trouble getting started with them. I think using those nodes with VEX would be the best way to do this, but I'm open to anything to get me started! Thanks! Mike color_and_shape_flocking.hiplc
  12. Emit Smoke From Interior Face Group Of Fracture?

    Not sure how to specify what DOP network a shelf tool should build in, but when I create the pyro in my file it builds in the correct one (debris_sim). Your file kept building the sim in the AutoDopNetwork_fracture node. Here's my file debris_fracture_withSmoke.hiplc
  13. Emit Smoke From Interior Face Group Of Fracture?

    No problem, Atom! The debris_source node (at scene level) contains all of the geometry from the fractured simulation. By deleting the unwanted faces, I'm not really changing the type of data coming out of that sop (it's still a primitive) it just has procedurally deleted faces. Just select the debris_source node (at scene level) and ctrl+left click the pyro tool that you'd like to use. This will create the pyro network in the same dop node as the particles- so just make sure to unhook that pop simulation from the merge sop to clean things up a bit.
  14. Emit Smoke From Interior Face Group Of Fracture?

    Take a look at the attached file. I didn't have any issue creating with the debris tool. Also, at first glance the dop network for spawning particles looks like a recent one (the older one uses a separate particle environment I think). If you want to emit from the geo and forget about particles I've added the setup in there. I use the debris source sop points as an attribute to let me know when pieces have broken. I then give those points a color, transfer the attr to the original geo and delete prims that belong to the outside group and any prims that aren't red. From there you can do a regular pyro setup. debris_fracture.hiplc
  15. Emit Smoke From Interior Face Group Of Fracture?

    I could be wrong, but using a debris source sop to spawn particles from cracked geo and emitting smoke from those particles might be the latest technique (or at least one of them). I'd post a file but I'm not at a computer with houdini right now