Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by lubitel

  1. I have a scene with two FEM objects. I want them to move towards world origin, collide, deform , bounce back and move towards each other again, collide, bounce back. Like a pendulum balls. between 5 and 10 collisions.I have used Magnet force with animated Activation by certain $FF == 2 || $FF == 150 ... But it is not sexy. Or very flexible. Can someone please have a looksi and help with some more clever magic to achieve pengilum balls collide like repetitive collisions? femMagnet.hip
  2. Post-Voronoi Boolean Problem

    Booleans can misbehave when applied a second time on a geometry. Cure for this is to select "No Polygons" dropdown option on the first boolean. I dont know the reason why it is giving the undesired result after a voronoi. Applying the boolean before the voronoi is a workaround. Not answering your initial question but hope its helpful...
  3. Good Od folks Hi. I have a bunch (70) of photogrametry scans I need to bring in to animate in Houdini. They are sequentially named 01.fbx - 70.fbx.. Is there a "goto" way to import a sequence of fbx files and preserve materials? I am getting in the geometry with file node and $2F but the materials don't make it thou. Cheers
  4. invitation on Houdini Multi-Dynamics

    I am in!
  5. Move pivot/geo to center of pivot/geo/world center

    $CEX $CEY $CEZ on a transform node? Or directly to the Pivot values.
  6. I am doing the Rigids 3 helicopter crashing tut and am kind of stuck. Steven is brief in explaining this part identity matrix. I wish it was broken down further. I store the current P as oldP, unpack, zero all the transforms, move to world origin, clean attribs, repack and put them back to the oldP. However parts of the geometry dont make back to the oldP. It is the parts that were prefractured by voronoi. I think it is ither in the unpacking or one of the attrib promotes that needs to be adjusted. I am just not sure what is going on under the hood... argh! Helly_01.hip
  7. Rigids 3 tutorial Matrix math

    Getting there inch by inch heli-Desktop.m4v
  8. Rigids 3 tutorial Matrix math

    I forgot to check the Create Packed Geometry flag Thanks so much Adrian. The Itrinsics is still a mystery to me thou. If you could break it down further that would be fantastic. Cheers
  9. Rigids 3 tutorial Matrix math

    I downloaded the file and it opened for me here on H16.0.557....It may take some time to open the file as I locked the incoming fractured geo so you can have source file. And the display flag should be on the node right before the last NULL. "restoring_oldP" On the second image you can see the params on pack and unpack nodes.. cheers
  10. Would it be too much of a hustle to implement ability to "tear out" sub menus like one is able to do in Maya? It would be beneficial in learning when studying the nodes. Especially in the node area when using the TAB.
  11. I did a search on the web and it was the first animated gif I found. The version of Maya and comparison of Houdini to Maya is not the point here. Improving workflow for users like me who might have had use for the feature is
  12. Yupp. And looks like one needs to be in Netherlands. Bummer. It would be great if it was streamed or recorded and shared.
  13. everythingprocedural.com is timing out. Will this be recorded and shared online? cheers
  14. Hi. Check out a workflow enhancement offered by this wonderful script. https://github.com/paulwinex/pw_MayaToHoudiniChannelExport http://www.paulwinex.ru/mayatohoudinichannelexport/
  15. Roof modeling from CAD line data

    Hi. I am trying to model buildings based on CAD drawings. The part I need help with is roof at this point. The relevant curves are in three layers. "Takkant", "M__nelinje" and "Bygningslinje". Here is an illustration of the data/Groups. "M__nelinje" Group has curves for the centerlines of the roof(s), "Takkant" has the edge lines and "Bygningslinje" is for corners.. My math/Python and VEX skills are not sufficcient to come up with a solution. If you can please have a look and suggest a path I should take to be able to work out roofs for these buildings? Cheers CityFromCurves.rar
  16. Python in CG pipeline Masterclass with Pavel Giydenko originaly taught in Russian, translated (by me) to English. Toppics include - Python in CG Pipeline intro - Implementation of PyQt - Python- operators in Houdini - Live Connect and Data Transfer - Correct pattern for Object Oriented Programming Formore info, scene files and code: Pavels Blog
  17. Free Masterclass with example files + code

    English is my third (of four) and if there is something unclear, you have questions, suggestions or comments, don't hesitate to ask. Cheers
  18. It works with the following code: ---------------------------------------------------------------------------------------------- # This code is called when instances of this SOP cook. geo = hou.pwd().geometry() # Add code to modify the contents of geo. def createCity(): import xml.dom.minidom sizeMultiplier = hou.pwd().parm('sizeMultiplier').evalAsFloat() MapFile = hou.pwd().parm('MapFile').evalAsString() if(MapFile==''): print('Please specify a file name') return if not(MapFile.endswith('.osm')) and not(MapFile.endswith('.xml')): print('Bad file type, please use only .osm or .xml data') return map = xml.dom.minidom.parse(MapFile) if(map.documentElement.tagName != "osm"): print ('Bad File Type') return pointsIDs = [] points = [] def handleNodes(xmlData): bounds = xmlData.getElementsByTagName("bounds")[0] minlat = float(bounds.getAttribute('minlat')) maxlat = float(bounds.getAttribute('maxlat')) minlon = float(bounds.getAttribute('minlon')) maxlon = float(bounds.getAttribute('maxlon')) normalizingFactor = sizeMultiplier / max((maxlon-minlon),(maxlat-minlat)) nodes = xmlData.getElementsByTagName('node') for node in nodes: lat = float(node.getAttribute('lat')) lon = float(node.getAttribute('lon')) if lat<minlat or lat>maxlat or lon<minlon or lon>maxlon : continue normalizedLat = (lat-minlat) * normalizingFactor normalizedLon = (lon-minlon) * normalizingFactor centeredLat = normalizedLat - (maxlat-minlat)*normalizingFactor/2 centeredLon = normalizedLon - (maxlon-minlon)*normalizingFactor/2 point = geo.createPoint() point.setPosition((centeredLon,0,-centeredLat)) pointsIDs.append(int(node.getAttribute('id'))) points.append(point) def handleWays(xmlData): # if geo.findGlobalAttrib("varmap") is None: # geo.addAttrib(hou.attribType.Global,"varmap","") color_attrib = geo.addAttrib(hou.attribType.Prim,"Cd",(1.0,1.0,1.0)) type_attrib = geo.addAttrib(hou.attribType.Prim,"Type",0) map_attrib = type_attrib.name()+' -> ' +type_attrib.name().upper() # geo.setGlobalAttribValue("varmap",map_attrib) width_attrib = geo.addAttrib(hou.attribType.Point,"width",0.02) map_attrib = width_attrib.name()+' -> ' +width_attrib.name().upper() # geo.setGlobalAttribValue("varmap",map_attrib) ways = xmlData.getElementsByTagName('way') for way in ways: wayPoints = [] nodes = way.getElementsByTagName('nd') tags = way.getElementsByTagName('tag') isACarRoad = 0 isABuilding = 0 isAPark = 0 isACoastline = 0 width = 0.02 layer = 0 for tag in tags: tagType = str(tag.getAttribute('k')) if tagType == 'highway': subType = str(tag.getAttribute('v')) if not(subType =='pedestrian') and not(subType =='steps') and not(subType =='footway') and not(subType =='cycleway'): isACarRoad = 1 elif tagType == 'building': temp = str(tag.getAttribute('v')) if temp=='yes': isABuilding = 1 elif tagType == 'leisure': temp = str(tag.getAttribute('v')) if temp == 'park': isAPark = 1 elif tagType == 'natural': temp = str(tag.getAttribute('v')) if temp == 'coastline': isACoastline = 1 elif tagType == 'layer': layer = int(tag.getAttribute('v')) for node in nodes: ref = int(node.getAttribute('ref')) try: index = pointsIDs.index(ref) except ValueError: index = -1 if (index != -1): wayPoints.append(points[index]) if (isACarRoad == 1 or isABuilding ==1 or isAPark ==1 or isACoastline ==1): poly = geo.createPolygon() if(isABuilding == 1): poly.setIsClosed(1) poly.setAttribValue(color_attrib,(0.9,0.9,0.9)) poly.setAttribValue(type_attrib,1) elif(isAPark ==1): poly.setIsClosed(1) poly.setAttribValue(color_attrib,(0.3,1.0,0.3)) poly.setAttribValue(type_attrib,2) elif(isACoastline ==1): poly.setIsClosed(1) poly.setAttribValue(color_attrib,(0.6,0.6,0.6)) poly.setAttribValue(type_attrib,3) elif(isACarRoad ==1): poly.setIsClosed(0) poly.setAttribValue(type_attrib,4) if(subType=='motorway' or subType =='motorway_link'): poly.setAttribValue(color_attrib,(0.5,0.75,0.85)) width = 0.035 elif(subType=='primary' or subType =='primary_link'): poly.setAttribValue(color_attrib,(1.0,0.5,0.5)) width = 0.035 elif(subType=='secondary' or subType =='secondary_link'): poly.setAttribValue(color_attrib,(1.0,0.8,0.65)) width = 0.025 elif(subType=='trunk' or subType =='trunk_link'): poly.setAttribValue(color_attrib,(0.7,0.85,0.7)) width = 0.025 else: width = 0.03 for point in wayPoints: poly.addVertex(point) point.setAttribValue(width_attrib,width) # pointPos = point.position() # point.setPosition((pointPos[0],layer,pointPos[2])) handleNodes(map) handleWays(map) map.unlink() createCity()
  19. Vizy Acky vol100: Houdini Work-Flow Introduction

    I enjoyed Gnomon DVD and the lessons on the site look great. However it is not very clear to me if one needs to show up or is it possible for an online participation of the classes? I live in Europe and online is the only way I would be able... EDIT: Found out after having another look and sent an email. cheers
  20. Intro To Houdini workshop

    Thanks for clarification. Love the titles:)
  21. Screen Recordning for teaching?

    let us know how it goes...