Jump to content


Popular Content

Showing most liked content on 04/06/2020 in all areas

  1. 1 point
    You can use channel reference or use the bbox() hscript function for the box size and the centroid function for the Box center.
  2. 1 point
    It's the same a "normal" python scripting : import module1 import module2 import module3
  3. 1 point
    Hey thank you very much for your reply, This look really cool, however I have to say this is too advanced stuff for me. But I will surely try to dive deeper on it once in a while. Maybe I am just trying to do something too complicated for my current skills... Thank you again for sharing this which look tremendous!
  4. 1 point
    in find_nearpoints replace this i[]@nearpts = nearpoints(1, "!grp", @P, .1, 4); with this string grp = "!grp" + itoa(i@source); i[]@nearpts = nearpoints(1, grp, @P, .1, 4); or alternatively you can completely bypass your set_lines_grp as you don't need to have those groups, because you can use ad-hoc group syntax in nearpoints directly: string grp = "@source!=" + itoa(i@source); i[]@nearpts = nearpoints(1, grp, @P, .1, 4); VEXgrp_01_fix.hiplc
  5. 1 point
    Or just use this and have endless fun...but you must warm up the chair to get desire effect ...but when you have at the end oj oj Hope it Helps OdforceUI.hipnc
  6. 1 point
    node = hou.pwd() geo = node.geometry() # Create Variables. iterations = node.parm("iterations").eval() originx = float(node.parm("originx").eval()) originy = float(node.parm("originy").eval()) point1x = float(node.parm("point1x").eval()) point1y = float(node.parm("point1y").eval()) point2x = float(node.parm("point2x").eval()) point2y = float(node.parm("point2y").eval()) # Import math for the hilbert function import sys, math # Create the class that does the heavy lifting for the Hilbert Curve class Hilbert: # Recieve the variables from Hilbertclass def __init__(self, x0, y0, xi, xj, yi, yj, n): # Send variables to hilbert function for math to be done self.hilbert(x0, y0, xi, xj, yi, yj, n) def hilbert(self, x0, y0, xi, xj, yi, yj, n): if n <= 0: X = x0 + (xi + yi)/2 Y = y0 + (xj + yj)/2 point = [X, Y, 0] # Send data to data, which whill pass it back to Hilbertclass self.data(point) else: # The fancy math. Thank you Malcolm Kesson! self.hilbert(x0, y0, yi/2, yj/2, xi/2, xj/2, n - 1) self.hilbert(x0 + xi/2, y0 + xj/2, xi/2, xj/2, yi/2, yj/2, n - 1) self.hilbert(x0 + xi/2 + yi/2, y0 + xj/2 + yj/2, xi/2, xj/2, yi/2, yj/2, n - 1) self.hilbert(x0 + xi/2 + yi, y0 + xj/2 + yj, -yi/2,-yj/2,-xi/2,-xj/2, n - 1) def data(self, point): # Pass data back to Hilbertclass pass # This is the class that creates the points for the Hilbert Curve class Hilbertclass(Hilbert): def __init__(self, x0, y0, xi, xj, yi, yj, n): # Give the input data to the base class Hilbert.__init__(self, x0, y0, xi, xj, yi, yj, n) def data(self, point): # Create the point curve = geo.createPoint() # Set the position of the point curve.setPosition(point) # Add this newly set point to the polygon poly.addVertex(curve) # Create a Polygon to hold the vertex data poly = geo.createPolygon() # Set the polygon to be open so it acts like a line polygon = poly.setIsClosed(False) # Call Hilbertclass to begin all the procedures Hilbertclass(originx,originy, point1x,point1y,point2x,point2y, iterations) plus you have L-system that you can have more fun tutorials.cgrecord.net/2016/12/vex-in-houdini-space-filling-curves.html
  7. 1 point
    Set the "Missing Frame" option to No Geometry on the file cache.
  8. 1 point
    well, yes, because I left the one you had inside before, just fixed to work on Geometry and be point, so you can just delete or bypass it if you don't want to set it dynamically vu_GrainsVellumSOP_fix3.hiplc
  9. 1 point
    relax...it's a free katana from Turbosquid vu_RBDNinja2.zip
  10. 1 point
    Mainroad Post started posting some classes online. For now there are only 3, it's in russian but it's easily followable and very very very interesting; it deals mainly with vops and maths, and how you can construct patterns using maths functions such as sins, noise, etc.... Very intructive.. https://www.youtube.com/watch?v=rzjXRvgo7YA 1/7 https://www.youtube.com/watch?v=2SSCN3WBne4&t=4591s 2/7 https://www.youtube.com/watch?v=LF4ZUchXU6Q 3/7 And i assume the following will be released soon as they started posting a week ago. Cheers,
  11. 1 point
    Group the faces and run a remesh on that group. To make the grouping easier for topology like this you could use a measure node to get the area of each primitive and then just group each prim over a certain area
  12. 1 point
    I got some help on the RedShift forum about this issue and here is the fix. You have to edit your Houdini.env file to point to the RedShift render engine. Here is what my .env file looks like now with RedShift and Rendman both working under Houdini Indie. RMANTREE="c:/Program Files/Pixar/RenderManProServer-20.9" PATH="$PATH;$RMANTREE/bin;C:/ProgramData/Redshift/bin" HOUDINI_DEFAULT_RIB_RENDERER=prman20.9 HOUDINI_DSO_ERROR = 2 HOUDINI_PATH = "C:/ProgramData/Redshift/Plugins/Houdini/15.5.523;&" Also you must match your Houdini install version to the Redshift plugin version. As you can see from above RedShift will only work with Houdini 15.5.523. If the versions don't match you can't use RedShift and you get an annoying popup error message every time you render even if you are using another render system.