rdg Posted October 25, 2010 Share Posted October 25, 2010 (edited) My current project is called "Procedural Plagiarism". 0003_0001: Rounded Corners Houdini OTL that creates fillets – aka rounded corners – on all points of a curve. Works nice on Spheres, too. This Procedural Plagiarism was inspired by 3D Studio Max’s Curve Fillet and spoongraphics. Download: rdg_roundedCorner.tar.gz Edited November 15, 2011 by rdg 1 1 Quote Link to comment Share on other sites More sharing options...
ben Posted October 25, 2010 Share Posted October 25, 2010 Very usefull. Thanks for sharing! Quote Link to comment Share on other sites More sharing options...
Matt_K Posted October 25, 2010 Share Posted October 25, 2010 This will come in handy! Thanks for sharing. Matt. Quote Link to comment Share on other sites More sharing options...
smaugthewyrm Posted October 25, 2010 Share Posted October 25, 2010 omg. wonderful! thank you! Quote Link to comment Share on other sites More sharing options...
rdg Posted October 26, 2010 Author Share Posted October 26, 2010 (edited) Thanks guys. However - the presented solution got some shortcomings in respect to support for groups. This following snippet is a pythonSOP that outputs a mix of polySplines and NURBS to maintain the point ordering. In H11 hou.Face.positionAt could probably be used to sample nurbsCurves at the fillets to output a homogeneous polySpline. In H10 the SOP outputs a mix of polySplines and Nurbs. H10 requires a resampleSOP and fuse. Inputs: group (string) optFillet (float) optFit (float) # This code is called when instances of this SOP cook. geo = hou.pwd().geometry() # Add code to modify the contents of geo. grpParmValue = hou.evalParm('group').strip() inputPoints = geo.points() inputPnums = [ p.number() for p in inputPoints ] nPoints = len( inputPoints ) grpParmValue = hou.evalParm('group').strip() if len( grpParmValue ) == 0: grpPoints = inputPoints grpPoints = inputPnums else: grpPoints = geo.globPoints( grpParmValue ) grpPnums = [ p.number() for p in grpPoints ] poly = geo.createPolygon() poly.setIsClosed( False ) for n in range( 0, nPoints ): if n == 0 or n == nPoints -1 or not n in grpPnums: np = geo.createPoint() np.setPosition( inputPoints[n].position() ) poly.addVertex( np ) else: fillet = geo.createNURBSCurve( 4, False ) tmp = (( inputPoints[n].position() - inputPoints[ n-1].position() ) * 0.5 ) fillet.vertices()[0].point().setPosition( inputPoints[n].position() - tmp.normalized() * min(tmp.length(), hou.evalParm( 'optFillet' ) ) ) np = geo.createPoint( ) np.setPosition( fillet.vertices()[0].point().position() ) poly.addVertex( np ) fillet.vertices()[1].point().setPosition( inputPoints[n].position() - tmp.normalized() * min(tmp.length(), hou.evalParm( 'optFillet' ) ) * hou.evalParm( 'optFit' ) ) tmp = (( inputPoints[ n + 1 ].position() - inputPoints[n].position()) * 0.5 ) fillet.vertices()[2].point().setPosition( inputPoints[n].position() + tmp.normalized() * min(tmp.length(), hou.evalParm( 'optFillet' ) ) * hou.evalParm( 'optFit' ) ) fillet.vertices()[3].point().setPosition( inputPoints[n].position() + tmp.normalized() * min(tmp.length(), hou.evalParm( 'optFillet' ) ) ) poly = geo.createPolygon() poly.setIsClosed( False ) np = geo.createPoint() np.setPosition( fillet.vertices()[3].point().position() ) poly.addVertex( np ) geo.deletePoints( inputPoints ) Edited October 26, 2010 by rdg Quote Link to comment Share on other sites More sharing options...
rdg Posted October 31, 2010 Author Share Posted October 31, 2010 (edited) 02: 0003_0002 - Paint with Triangles This Houdini OTL assists in creating Delaunay triangulated imagery. This Procedural Plagiarism was inspired by Jonathan Puckey’s “Delauney Raster“ Download: rdg_paintWithTriangles.tar.gz Edited October 31, 2010 by rdg Quote Link to comment Share on other sites More sharing options...
pagefan Posted November 1, 2010 Share Posted November 1, 2010 02: 0003_0002 - Paint with Triangles This Houdini OTL assists in creating Delaunay triangulated imagery. This Procedural Plagiarism was inspired by Jonathan Puckey’s “Delauney Raster“ Download: rdg_paintWithTriangles.tar.gz Hi Georg, nice effect! Great stuff to make dazzle paintings. Also reminds me of Lyonel Feininger's paintings, can make my own now. To nitpick a bit, i made two improvements to your setup. One was to scale the image. The resolution tends to be rather big. Scaling an image by a factor of 0.1 resizes it a bit to the Nachtwacht/Guernica proportions. Secondly, the facet_unique_points seems unnecessary. The colour from the points is promoted the same if you have unique points as with fused points. Cheers, Hans Quote Link to comment Share on other sites More sharing options...
rdg Posted November 7, 2010 Author Share Posted November 7, 2010 (edited) 03: 0003_0003: Processing Video on Vimeo A meditation in Houdini’s foreachSOP. Points are grouped by their distance to each other. Each group’s points then are sorted by their distance to the group’s ‘main point’. A addSOP connects the main point to it’s children. Why oh why didn’t I use a pythonSOP ? And what about search-able data structures – like trees? This Procedural Plagiarism was inspired by the image on the cover of: “Processing: A Programming Handbook for Visual Designers and Artists” by Casey Reas and Ben Fry[1]. rdg_processing_0001.tar.gz [1] http://processing.org/learning/books/ Edited November 7, 2010 by rdg Quote Link to comment Share on other sites More sharing options...
Spyrogif Posted November 7, 2010 Share Posted November 7, 2010 yeah !!!! this post is epic... thanks for sharing. Quote Link to comment Share on other sites More sharing options...
Matt_K Posted November 8, 2010 Share Posted November 8, 2010 As usual, nice work, and thanks for sharing! Matt. Quote Link to comment Share on other sites More sharing options...
Allegro Posted January 12, 2011 Share Posted January 12, 2011 Hey Georg! Cool stuff, I'm just coming across this stuff now. Love it. Quote Link to comment Share on other sites More sharing options...
rdg Posted April 11, 2011 Author Share Posted April 11, 2011 04: 0003_0004: Recursive Subdivide Take a rectangular Polygon. Choose a random point on one of the sides. Choose a random point on the opposite side. Split the polygon using a plane through these two points. Repeat. This Procedural Plagiarism was inspired by Justin Windle’s “Recursive Subdivision“. Thanks to Graham for fixing my initial PythonSOP implementation! rdg_subdivide_0001.tar.gz Quote Link to comment Share on other sites More sharing options...
dyei nightmare Posted April 11, 2011 Share Posted April 11, 2011 (edited) incredible, thank you a lot rdg... im having an orgasm with this thread Edited April 11, 2011 by dyei nightmare Quote Link to comment Share on other sites More sharing options...
rdg Posted November 11, 2011 Author Share Posted November 11, 2011 (edited) 05: 0003_0005: fatcap::revisited video on vimeo An animated version of my first procedural plagiarism: 0001_0001 fatcap A bone chain is rotating in noisy patterns. The emitted particles are connected to a continuous line. This Procedural Plagiarism was inspired by Leander Herzog. rdg_fatcap.tar.gz Edited November 11, 2011 by rdg Quote Link to comment Share on other sites More sharing options...
Leon Amion Posted November 20, 2011 Share Posted November 20, 2011 (edited) That looks good and interesting rdg. fatcap revisited has a very jiggly/stopmotion character to it and it is almost as it is a living organism. thanks for sharing. Edited November 20, 2011 by SoulVector Quote Link to comment Share on other sites More sharing options...
hewen Posted December 8, 2011 Share Posted December 8, 2011 thanks for sharing Quote Link to comment Share on other sites More sharing options...
rdg Posted May 6, 2012 Author Share Posted May 6, 2012 0003_0006: PrayStation: Shifted Contents video on vimeo images on preset.de Joshua Davis' 'shifted contents' had a huge influence on my work back in the days. The black and white Flash homage from 2001 can be probably seen as my first real plagiarism. This time I added some color and paperesque quality. Looks like my cmyk phase ain't not over yet. This Procedural Plagiarism was inspired by PrayStation. rdg_shiftetContents.tar.gz Quote Link to comment Share on other sites More sharing options...
Matt_K Posted May 7, 2012 Share Posted May 7, 2012 Nice! Once again, thanks for the share. Matt. Quote Link to comment Share on other sites More sharing options...
rdg Posted May 24, 2012 Author Share Posted May 24, 2012 (edited) 0003_0006: PathLine video on vimeo images on preset.de “A random walker draws a line. Pick random points on this line and move them perpendicular to the tangent away from the line. Draw circles around those points touching the line.” Something along those lines. This plagiarism was inspired by Martin Kraft’s ‘PathLine.swf‘ rdg_pathline.tar.gz Edited May 24, 2012 by rdg Quote Link to comment Share on other sites More sharing options...
Librarian Posted June 5, 2012 Share Posted June 5, 2012 " RDG " thanx Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.