Script: Bake Camera

January 5, 2024

import hou selectedNode = hou.selectedNodes()[0] bakingNode = hou.node(‘/obj’).createNode(‘cam’, selectedNode.name() + ‘_bake’) hou.setFrame(int(hou.playbar.playbackRange()[0])) for f in range(int(hou.playbar.playbackRange()[0]), int(hou.playbar.playbackRange()[1])+1): hou.setFrame(f) bakingNode.setWorldTransform(selectedNode.worldTransform()) bakingNode.parm(“tx”).setKeyframe(hou.Keyframe(bakingNode.parm(“tx”).eval())) bakingNode.parm(“ty”).setKeyframe(hou.Keyframe(bakingNode.parm(“ty”).eval())) bakingNode.parm(“tz”).setKeyframe(hou.Keyframe(bakingNode.parm(“tz”).eval())) bakingNode.parm(“rx”).setKeyframe(hou.Keyframe(bakingNode.parm(“rx”).eval())) bakingNode.parm(“ry”).setKeyframe(hou.Keyframe(bakingNode.parm(“ry”).eval())) bakingNode.parm(“rz”).setKeyframe(hou.Keyframe(bakingNode.parm(“rz”).eval())) bakingNode.parm(‘focal’).setKeyframe(hou.Keyframe(selectedNode.parm(‘focal’).eval())) bakingNode.parm(‘aperture’).setKeyframe(hou.Keyframe(selectedNode.parm(‘aperture’).eval())) bakingNode.parm(‘near’).setKeyframe(hou.Keyframe(selectedNode.parm(‘near’).eval())) bakingNode.parm(‘far’).setKeyframe(hou.Keyframe(selectedNode.parm(‘far’).eval())) bakingNode.parm(‘resx’).setKeyframe(hou.Keyframe(selectedNode.parm(‘resx’).eval())) bakingNode.parm(‘resy’).setKeyframe(hou.Keyframe(selectedNode.parm(‘resy’).eval())) bakingNode.parm(‘winsizex’).setKeyframe(hou.Keyframe(selectedNode.parm(‘winsizex’).eval())) bakingNode.parm(‘winsizey’).setKeyframe(hou.Keyframe(selectedNode.parm(‘winsizey’).eval())) bakingNode.parm(‘shutter’).setKeyframe(hou.Keyframe(selectedNode.parm(‘shutter’).eval())) bakingNode.parm(‘aspect’).setKeyframe(hou.Keyframe(selectedNode.parm(‘aspect’).eval()))

VEX: Delete Isolated Points

September 15, 2022

int pts[] = nearpoints(0, @P, chf(“radius”),2);if (len(pts)==1){removepoint(0,@ptnum);}

Houdini: Carve Curve to Length

July 15, 2022

Out of the box the carve SOP will carve a curve as a percentage or parametric value along the curve’s length. This method will carve to a specified length (with some tolerance). Measure perimeter Promote perimeter to points In a wrangle at this vex: f@_perimpercent = chf(“length”)/f@perimeter; In the carve SOP add this script: 1-point(0, … Read More

Awards // D&AD // Skrillex – Butterflies

May 30, 2022

Congratulations to the team at Electric Theatre for winning a D&AD Wood pencil for Skrillex – Butterflies https://www.dandad.org/awards/professional/2022/235437/skrillex-butterflies/

Awards // Burberry Festive

May 1, 2021

Burberry Festive has garnered some favourable reviews over recent months with it hitting the top spot on Televisual’s 2021 Commercials 30 Survey shortly followed by winning a Silver at the CLIO Awards in the Craft Visual Effects category. Mad props to all those who worked on it. It came out good. https://www.moving-picture.com/news/burberry-takes-home-silver-at-the-clio-awards https://www.moving-picture.com/news/burberry-and-jean-clement-soret-hit-number-1-in-televisuals-2021-commercials-30-survey

VEX: Point Pitch, Yaw, Roll

June 17, 2020

matrix3 m = maketransform(@N,@up);@orient = quaternion(m); vector4 pitch = quaternion({1,0,0}ch(‘pitch’)); vector4 yaw = quaternion({0,1,0}ch(‘yaw’));vector4 roll = quaternion({0,0,1}*ch(‘roll’)); @orient = qmultiply(@orient, pitch);@orient = qmultiply(@orient, yaw);@orient = qmultiply(@orient, roll);

VEX: Rotation Around Axis

May 19, 2020

float angle = chf(“angle”); vector4 rot = quaternion(radians(angle), {1,0,0}); @N=qrotate(rot, @N);

Python: Phyllotaxis

May 14, 2020

node = hou.pwd() geo = node.geometry() # Add code to modify contents of geo. # Use drop down menu to select examples. from math import radians, sqrt, sin, cos numpoints = 200 angle = 137.508 cval = 0.2 for i in range(numpoints): theta = radians (i * angle) x = cval * sqrt(i) * cos(theta) … Read More