Archived post by Remi Pierre

Thought that could be valuable to someone at some point. node.cook(force_cook=True) doesn’t work in manual mode, so here’s a shitty workaround for it 🙂 “` import tempfile def get_sop_node_geometry(node): “”” Force cook a node even in manual mode
Args: node (hou.SopNode): a Sop node to compute
Returns: hou.Geometry: The frozen geometry
“”” rop_geo = hou.node(‘/out’).createNode(‘geometry’) rop_geo.parm(‘soppath’).set(node.path()) tmp_file = tempfile.NamedTemporaryFile(suffix=’.bgeosc’) try: rop_geo.render(output_file=tmp_file.name) except hou.Error: rop_geo.destroy() return hou.Geometry() rop_geo.destroy() geometry = hou.Geometry() geometry.loadFromFile(tmp_file.name) return geometry “`

Archived post by friedasparagus

You could look at the MotionClips? The MotionClip Extract node allows you to create motion trails from a given clip

There’s a couple of gotchas to be aware of when working with the RBD sim, the red-coloured wrangles are where these little bits get taken care of. See if the scene makes sense and/or it’s or any use for what you were thinking of 😅

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20215604/20/21/rbd_test.hip

Archived post by TOADSTORM

“`python import fnmatch import hou
def glob_attrs(geo, pattern): all_attrs = list() out_attrs = list() all_attrs.extend(geo.pointAttribs()) all_attrs.extend(geo.primAttribs()) all_attrs.extend(geo.vertexAttribs()) all_attrs.extend(geo.globalAttribs()) matches = [f for f in pattern.split() if not f.startswith(“^”)] excludes = [f.strip(“^”) for f in pattern.split() if f.startswith(“^”)] for attr in all_attrs: for pattern in matches: if fnmatch.fnmatch(attr.name(), pattern): out_attrs.append(attr) for pattern in excludes: if fnmatch.fnmatch(attr.name(), pattern): if attr in out_attrs: out_attrs.remove(attr) out_attrs = list(set(out_attrs)) return out_attrs “`

feed it a Geometry object and a pattern and it’ll return hou.Attribs

no guarantees it isn’t shit but it might help you