Skip to content

Instantly share code, notes, and snippets.

@simonreeves
simonreeves / check_version.py
Created July 7, 2023 09:59
check major minor python version
import sys
if sys.version_info >= (3,4):
print('at least 3.4!')
@simonreeves
simonreeves / python 2 or 3 module reload.py
Last active July 7, 2023 09:57
python 2 or 3 module reload
import sys
# import method depends on python version
if sys.version_info.major > 2:
import importlib
importlib.reload(my_module)
else:
reload(my_module)
@simonreeves
simonreeves / node_buddy.py
Last active June 15, 2021 11:51
node buddy #houdini #python
"""
Keep a node close to its buddy whenever the buddy is moved
- uses event call back which is only persisstant in session :(
"""
# create geo
geo = hou.node('obj').createNode('geo')
# create two nodes
@simonreeves
simonreeves / create topnet stuff.py
Last active April 13, 2021 17:29
create #pdg #tops #topnet and nodes #houdini #python
import os
import subproocess
import hou
def make_rs_convert_topnet(path):
"""
Create topnet and some nodes
"""
texfiles_dir = os.path.dirname(path)
@simonreeves
simonreeves / get houdini hda version.py
Created March 26, 2021 12:55
get #houdini #hda version
"""
A HDA version is inside the name
So the logic is node > type > name
There is a convience function that splits the namespace, from docs:
# parse the full name into components
>>> node_type = hou.nodeType(hou.dopNodeTypeCategory(), 'pyrosolver::2.0')
>>> node_type.nameComponents()
('', '', 'pyrosolver', '2.0')
@simonreeves
simonreeves / convert.sh
Last active March 4, 2021 17:26
convert to mp4 alias for .bashrc #bash #ffmpeg #convert
# usage
# convert /path/to/myfile.mov
alias convert=convert_to_mp4
convert_to_mp4() {
out_file="$(echo $1 | sed 's/\.[^.]*$//').mp4"
ffmpeg -y -i "$1" -crf 20 "${out_file}"
}
@simonreeves
simonreeves / regex version.py
Created December 16, 2020 17:33
regex find version #python #version
# Find 3 digit string version with prefix 'v' - but dont incliude the v in the result
# v### - with postive lookbehind for the v
filename = '/mydir_v012/myfile_v012.1001.exr'
# wil' return list of all found results
find_versions = re.findall('(?<=v)\d{3}', filename)
@simonreeves
simonreeves / houdini_vellum_rbd_geo_wrangle.c
Last active September 28, 2020 11:43
#houdini #vellum #rbd #vex #geometry_wrangle #prim
// get first point on each prim
i@point_zero = primpoints(0, @primnum)[0];
// get that point's emit frame
i@emit_frame = point(0, '__frame', @point_zero)*.01;
// subtract emit frame from current frame to create age
i@age = @Frame - @emit_frame;
// at a certain frame lower the strength
@simonreeves
simonreeves / houdini_python_prim_sop_wrangle.py
Last active March 13, 2024 16:10
simple prim "wrangle" in python SOP #houdini #python #wrangle
node = hou.pwd()
geo = node.geometry()
# loop through prims on geometry
for prim in geo.prims():
# get attribute
path = prim.attribValue("path")
@simonreeves
simonreeves / houbatch.py
Created January 9, 2020 18:02
do houdini stuff in batch
# run this with hython
geo_obj = hou.node('obj').createNode('geo')
sphere = geo_obj.createNode('sphere')
# make polygons instead of prim
sphere.parm('type').set(1)
sphere.parm('freq').set(8)
sphere.parm('scale').set(.45)