<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://testwiki.johnkunz.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>kunz - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://testwiki.johnkunz.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Special:Contributions/Admin"/>
	<updated>2026-04-17T13:28:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1358</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1358"/>
		<updated>2026-03-31T19:34:19Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [https://easings.net/ Easing Functions] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip 3Dmattias]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/kiryha/Houdini kiryha]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jhorikawa/HoudiniHowtos jhorikawa HoudiniHowtos]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vex_tutorial jtomori vex_tutorial ]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/dchow1992/example_hips dchow1992]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/pedohorse/educational-hips pedohorse]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/alexwheezy/Mantra-LPE-Cookbook alexwheezy Mantra-LPE-Cookbook]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vfx_good_night_reading jtomori vfx_good_night_reading ]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/lightReachers/hip-files lightReachers]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file MysteryPancake]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/SiposAttila1995/sipiLib/tree/main/example-hips SiposAttila1995]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jakericedesigns/Assorted-Houdini-Demos jakericedesigns]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/conlen-b/cb-houdini-tools Conlen Houdini Tools]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Houdini_Python_Cookbook&amp;diff=1357</id>
		<title>Houdini Python Cookbook</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Houdini_Python_Cookbook&amp;diff=1357"/>
		<updated>2026-02-20T19:55:30Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/kiryha/Houdini/wiki/python-for-artists Python for Artists]&lt;br /&gt;
&lt;br /&gt;
Force the entire scene to cook (all nodes)&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Python'&amp;gt;&lt;br /&gt;
for node in hou.node(&amp;quot;/&amp;quot;).allSubChildren():&lt;br /&gt;
    node.cook(force=True)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Print the full path of the current Houdini scene&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Python'&amp;gt;&lt;br /&gt;
print(hou.hipFile.path())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get the version numbers in the filename&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Python'&amp;gt;&lt;br /&gt;
hou.hscript('echo -n `opdigits($HIPNAME)`')&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What platform is Houdini running on?&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Python'&amp;gt;&lt;br /&gt;
hou.applicationPlatformInfo()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List all the [https://jurajtomori.wordpress.com/2018/01/15/houdini-tip-taking-advantage-of-environment-variables/ environment variables]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Python'&amp;gt;&lt;br /&gt;
import os&lt;br /&gt;
for e in os.environ:&lt;br /&gt;
    print(e, os.environ[e])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Increment number at the end of a text string.  This is the algorithm used by Houdini to generate uniquely named child nodes inside a network.&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Python'&amp;gt;&lt;br /&gt;
hou.text.incrementNumberedString( hou.getenv('HIPNAME') )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reload a module, useful if you make some changes to the module.&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Python'&amp;gt;&lt;br /&gt;
import importlib&lt;br /&gt;
importlib.reload(module)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Get the transform of a specific prim&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Python'&amp;gt;&lt;br /&gt;
hou.node('/obj/asset_stitching/blast28').geometry().prims()[0].intrinsicValue('transform')&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1356</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1356"/>
		<updated>2026-02-12T20:59:22Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [https://easings.net/ Easing Functions] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip 3Dmattias]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/kiryha/Houdini kiryha]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jhorikawa/HoudiniHowtos jhorikawa HoudiniHowtos]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vex_tutorial jtomori vex_tutorial ]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/dchow1992/example_hips dchow1992]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/pedohorse/educational-hips pedohorse]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/alexwheezy/Mantra-LPE-Cookbook alexwheezy Mantra-LPE-Cookbook]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vfx_good_night_reading jtomori vfx_good_night_reading ]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/lightReachers/hip-files lightReachers]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file MysteryPancake]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/SiposAttila1995/sipiLib/tree/main/example-hips SiposAttila1995]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jakericedesigns/Assorted-Houdini-Demos jakericedesigns]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1355</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1355"/>
		<updated>2026-02-12T20:50:07Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [https://easings.net/ Easing Functions] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip 3Dmattias]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/kiryha/Houdini kiryha]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jhorikawa/HoudiniHowtos jhorikawa HoudiniHowtos]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vex_tutorial jtomori vex_tutorial ]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/dchow1992/example_hips dchow1992]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/pedohorse/educational-hips pedohorse]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/alexwheezy/Mantra-LPE-Cookbook alexwheezy Mantra-LPE-Cookbook]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vfx_good_night_reading jtomori vfx_good_night_reading ]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc lightReachers]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file MysteryPancake]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/SiposAttila1995/sipiLib/tree/main/example-hips SiposAttila1995]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jakericedesigns/Assorted-Houdini-Demos jakericedesigns]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1354</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1354"/>
		<updated>2026-02-08T21:32:09Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [https://easings.net/ Easing Functions] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip 3Dmattias]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/kiryha/Houdini kiryha]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jhorikawa/HoudiniHowtos jhorikawa]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vex_tutorial]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/dchow1992/example_hips dchow1992]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/pedohorse/educational-hips pedohorse]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/alexwheezy/Mantra-LPE-Cookbook alexwheezy Mantra-LPE-Cookbook]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vfx_good_night_reading jtomori]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc lightReachers]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file MysteryPancake]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/SiposAttila1995/sipiLib/tree/main/example-hips SiposAttila1995]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jakericedesigns/Assorted-Houdini-Demos jakericedesigns]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1353</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1353"/>
		<updated>2026-02-08T21:18:41Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [https://easings.net/ Easing Functions] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip 3Dmattias]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/kiryha/Houdini kiryha]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jhorikawa/HoudiniHowtos jhorikawa]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vex_tutorial]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/dchow1992/example_hips dchow1992]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/pedohorse/educational-hips]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/alexwheezy/Mantra-LPE-Cookbook]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vfx_good_night_reading]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/SiposAttila1995/sipiLib/tree/main/example-hips]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jakericedesigns/Assorted-Houdini-Demos]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1352</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1352"/>
		<updated>2026-02-08T21:17:38Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip 3Dmattias]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/kiryha/Houdini kiryha]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jhorikawa/HoudiniHowtos jhorikawa]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vex_tutorial]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/dchow1992/example_hips dchow1992]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/pedohorse/educational-hips]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/alexwheezy/Mantra-LPE-Cookbook]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/jtomori/vfx_good_night_reading]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/SiposAttila1995/sipiLib/tree/main/example-hips]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/jakericedesigns/Assorted-Houdini-Demos]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1351</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1351"/>
		<updated>2026-02-08T21:16:45Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip 3Dmattias]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/kiryha/Houdini kiryha]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/jhorikawa/HoudiniHowtos jhorikawa]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/jtomori/vex_tutorial]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/dchow1992/example_hips dchow1992]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/pedohorse/educational-hips]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/alexwheezy/Mantra-LPE-Cookbook]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/jtomori/vfx_good_night_reading]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/SiposAttila1995/sipiLib/tree/main/example-hips]&lt;br /&gt;
 | &lt;br /&gt;
[https://github.com/jakericedesigns/Assorted-Houdini-Demos]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1350</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1350"/>
		<updated>2026-02-08T21:15:43Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip 3Dmattias]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/kiryha/Houdini kiryha]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jhorikawa/HoudiniHowtos jhorikawa]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vex_tutorial]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/dchow1992/example_hips dchow1992]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/pedohorse/educational-hips]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/alexwheezy/Mantra-LPE-Cookbook]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jtomori/vfx_good_night_reading]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/SiposAttila1995/sipiLib/tree/main/example-hips]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jakericedesigns/Assorted-Houdini-Demos]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1349</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1349"/>
		<updated>2026-02-08T20:32:26Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip 3Dmattias] | [https://github.com/kiryha/Houdini kiryha]&lt;br /&gt;
|&lt;br /&gt;
[https://github.com/jhorikawa/HoudiniHowtos jhorikawa]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc&lt;br /&gt;
https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file&lt;br /&gt;
https://github.com/SiposAttila1995/sipiLib/tree/main/example-hips&lt;br /&gt;
https://github.com/jakericedesigns/Assorted-Houdini-Demos&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1348</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1348"/>
		<updated>2026-02-08T20:31:42Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip 3Dmattias] | [https://github.com/kiryha/Houdini]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc&lt;br /&gt;
https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file&lt;br /&gt;
https://github.com/SiposAttila1995/sipiLib/tree/main/example-hips&lt;br /&gt;
https://github.com/jakericedesigns/Assorted-Houdini-Demos&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1347</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1347"/>
		<updated>2026-02-08T20:20:26Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip 3Dmattias] | [https://github.com/kiryha/Houdini]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc&lt;br /&gt;
https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file&lt;br /&gt;
https://github.com/SiposAttila1995/sipiLib/tree/main/example-hips&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1346</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1346"/>
		<updated>2026-02-04T21:14:16Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
[https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip] | [https://github.com/kiryha/Houdini]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc&lt;br /&gt;
https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file&lt;br /&gt;
test&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1345</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1345"/>
		<updated>2026-02-04T21:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini GitHubs '''&lt;br /&gt;
&lt;br /&gt;
h[ttps://github.com/3Dmattias/Houdini_Escapades/tree/main/hip] | [https://github.com/kiryha/Houdini]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc&lt;br /&gt;
https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file&lt;br /&gt;
test&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1344</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1344"/>
		<updated>2026-02-04T21:12:04Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip&lt;br /&gt;
https://github.com/kiryha/Houdini&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc&lt;br /&gt;
https://github.com/MysteryPancake/Houdini-Fun?tab=readme-ov-file&lt;br /&gt;
test&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1343</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1343"/>
		<updated>2026-01-11T00:36:31Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip&lt;br /&gt;
https://github.com/kiryha/Houdini&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc&lt;br /&gt;
test&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=ResourcesOld&amp;diff=1342</id>
		<title>ResourcesOld</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=ResourcesOld&amp;diff=1342"/>
		<updated>2025-12-31T20:19:58Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page ResourcesOld to Resources: revert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Resources]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1341</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1341"/>
		<updated>2025-12-31T20:19:58Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page ResourcesOld to Resources: revert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip&lt;br /&gt;
https://github.com/kiryha/Houdini&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1340</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1340"/>
		<updated>2025-12-31T20:18:52Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page Resources to ResourcesOld without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip&lt;br /&gt;
https://github.com/kiryha/Houdini&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Main_Page&amp;diff=1339</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Main_Page&amp;diff=1339"/>
		<updated>2025-12-03T20:09:31Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Check out these [[Resources|useful resources]]&lt;br /&gt;
&lt;br /&gt;
Follow my live streams using this [[Stream_Scene_Share| Scene Share Shelf Script]]&lt;br /&gt;
&lt;br /&gt;
Want your Houdini to look like mine?  See this guide on [[Customizing_the_Houdini_Interface|Customizing Houdini]]&lt;br /&gt;
&lt;br /&gt;
== VEX Coding Resources ==&lt;br /&gt;
* [[VEX_Attribute_Glossary| VEX Attribute Glossary]]&lt;br /&gt;
* [[VEX_Wrangle_Snippets| Useful VEX Wrangle Snippets]]&lt;br /&gt;
* [[Mathematical_Functions_in_VEX| VEX Mathematical Functions]]&lt;br /&gt;
&lt;br /&gt;
== Recent Streams ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
File:content_thumbnail_2022_11_20.jpg|link=Live_2022.11.15#Part_2&lt;br /&gt;
File:content_thumbnail_2022_11_15.jpg|link=Live_2022.11.15&lt;br /&gt;
File:content_thumbnail_2022_09_16.jpg|link=Live_2022.09.16&lt;br /&gt;
File:content_thumbnail_2022_09_13.jpg|link=Live_2022.09.13&lt;br /&gt;
File:content_thumbnail_2022_09_11.jpg|link=Live_2022.09.11&lt;br /&gt;
&amp;lt;!--File:content_thumbnail_2022_09_06.jpg|link=Live_2022.09.06--&amp;gt;&lt;br /&gt;
&amp;lt;!--File:content_thumbnail_2022_09_04.jpg|link=Live_2022.09.04--&amp;gt;&lt;br /&gt;
File:content_thumbnail_2022_09_02.jpg|link=Live_2022.09.02&lt;br /&gt;
File:content_thumbnail_2022_08_26.jpg|link=Live_2022.08.26&lt;br /&gt;
File:content_thumbnail_2022_08_23.jpg|link=Live_2022.08.23&lt;br /&gt;
File:content_thumbnail_2022_08_21.jpg|link=Live_2022.08.21&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
test&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1338</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1338"/>
		<updated>2025-10-16T18:58:17Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip&lt;br /&gt;
https://github.com/kiryha/Houdini&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
https://github.com/lightReachers/hip-files/blob/main/waterBlast_v002.hipnc&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1337</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1337"/>
		<updated>2025-10-12T18:55:08Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps] | [https://cc0-textures.com/ CC0 Textures]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip&lt;br /&gt;
https://github.com/kiryha/Houdini&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1336</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1336"/>
		<updated>2025-09-17T18:53:01Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip&lt;br /&gt;
https://github.com/kiryha/Houdini&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
https://github.com/alexwheezy/Mantra-LPE-Cookbook&lt;br /&gt;
https://github.com/jtomori/vfx_good_night_reading&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1335</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1335"/>
		<updated>2025-09-17T18:16:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip&lt;br /&gt;
https://github.com/kiryha/Houdini&lt;br /&gt;
https://github.com/jhorikawa/HoudiniHowtos&lt;br /&gt;
https://github.com/jtomori/vex_tutorial&lt;br /&gt;
https://github.com/dchow1992/example_hips&lt;br /&gt;
https://github.com/pedohorse/educational-hips&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1334</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1334"/>
		<updated>2025-09-17T17:44:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1333</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1333"/>
		<updated>2025-09-17T17:40:57Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
https://github.com/3Dmattias/Houdini_Escapades/tree/main/hip&lt;br /&gt;
*/&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=VEX_Wrangle_Snippets&amp;diff=1332</id>
		<title>VEX Wrangle Snippets</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=VEX_Wrangle_Snippets&amp;diff=1332"/>
		<updated>2024-10-03T10:05:34Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Translate ==&lt;br /&gt;
[[File:vex_offset_position.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
Offset the position of geometry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_offset_position.hiplc|vex_offset_position.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {1, 0, 0};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Taper ==&lt;br /&gt;
[[File:taper_vex_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reduces the circumference by scaling along the XZ plane based on the height of the geometry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:taper_vex_001.hiplc|taper_vex_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float taper = relbbox(0,@P).y;&lt;br /&gt;
// Remap the taper range&lt;br /&gt;
taper = fit01(taper, 1, fit01(sin(@Time*PI/5)*0.5+0.5, 2.5, .5));&lt;br /&gt;
// Apply the taper by scaling along the X and Y axis&lt;br /&gt;
@P *= set(taper,1,taper);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boxify ==&lt;br /&gt;
[[File:vex_boxify_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Distorts the geometry, morphing it into a box shape&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_boxify_001.hiplc|vex_boxify_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
vector size = getbbox_size(0);&lt;br /&gt;
size = min(size); // Largest component&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P *= (1.0/size);&lt;br /&gt;
@P = lerp(@P, @P+clamp(normalize(@P)*1.75,vector(-1),vector(1)) * (1.0-length(max(abs(@P)))), chf('blend'));&lt;br /&gt;
@P *= size;&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spherify ==&lt;br /&gt;
[[File:vex_spherify_001.gif | 340px | right]]&lt;br /&gt;
Distorts the geometry into a sphere shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_spherify_001.hiplc|vex_spherify_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
vector size = getbbox_size(0);&lt;br /&gt;
size = min(size); // Largest component&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P *= (1.0/size);&lt;br /&gt;
@P = lerp(@P, normalize(@P), chf('blend'));&lt;br /&gt;
@P *= size;&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stretch ==&lt;br /&gt;
[[File:vex_stretch_001.gif | 340px | right]]&lt;br /&gt;
Stretch the geometry across it's X axis&lt;br /&gt;
&lt;br /&gt;
Add one component of position to itself to stretch the geometry away from it's center.  You can control the amount of stretching by multiplying the position before adding it to itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_stretch_001.hiplc|vex_stretch_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P.x += @P.x*chf('amt');&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shape Blending ==&lt;br /&gt;
[[File:vex_position_blend.gif | 340px | right]]&lt;br /&gt;
Blend between point attributes to produce a morph effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_position_blend.hiplc|vex_position_blend.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = lerp(@P, @opinput1_P, chf('blend'));&lt;br /&gt;
@N = lerp(@N, @opinput1_N, chf('blend'));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Snap to Grid ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_snap_to_grid.gif | 340px | right]]&lt;br /&gt;
Snap ([https://en.wikipedia.org/wiki/Quantization_(signal_processing) quantize]) point positions to a grid for a downres effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_snap_to_grid.hiplc|File:vex_snap_to_grid.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float grid_scale = chf('grid_scale');&lt;br /&gt;
@P = rint(@P*grid_scale)/grid_scale;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make 2D ==&lt;br /&gt;
[[File:vex_setcomp.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
You can use the setcomp function to zero out a component of a vector, resulting in a two dimensional surface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_setcomp.hiplc|vex_setcomp.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the X component to zero, planar 2D in YZ&lt;br /&gt;
setcomp(@P, 0, 0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the Y component to zero, planar 2D in XZ&lt;br /&gt;
setcomp(@P, 0, 1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the Z component to zero, planar 2D in XY&lt;br /&gt;
setcomp(@P, 0, 2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Swizzle Coordinate System ==&lt;br /&gt;
[[File:vex_swizzle_vector_components.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
Shuffle the components of a vector using [https://www.sidefx.com/docs/houdini/vex/lang.html#dot-operator swizzle]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_swizzle_vector_components.hiplc|vex_swizzle_vector_components.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = @P.zyx;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Switch between Y up and Z up coordinates using [https://www.sidefx.com/docs/houdini/vex/lang.html#dot-operator swizzle]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = @P.xzy * set(-1,1,1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Twirl ==&lt;br /&gt;
[[File:vex_twirl.gif | 340px | right]]&lt;br /&gt;
Twirl the geometry around the Y axis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_twirl.hiplc|vex_twirl.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
float u = atan2(@P.x, @P.z);&lt;br /&gt;
float r = length(@P * {1, 0, 1});&lt;br /&gt;
@P = set(sin(u-a), @P.y, cos(u-a)) * set(r,1,r);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float angle = chf('angle');&lt;br /&gt;
vector origin = set(0,0,0);&lt;br /&gt;
&lt;br /&gt;
vector d = v@P*set(1,0,1) - origin;&lt;br /&gt;
float r = length(d);&lt;br /&gt;
r = pow(r, chf('pow'));&lt;br /&gt;
float beta = atan(d.x, d.z) + radians(angle) * r;&lt;br /&gt;
v@P = origin + r * set(sin(beta), 0, cos(beta)) + set(0,@P.y,0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
alt&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float angle = @P.y*900;&lt;br /&gt;
vector origin = set(0,0,0);&lt;br /&gt;
&lt;br /&gt;
vector d = v@P*set(1,0,1) - origin;&lt;br /&gt;
float r = length(d);&lt;br /&gt;
float beta = atan(d.x, d.z) + radians(angle);&lt;br /&gt;
v@P = origin + r * set(sin(beta), 0, cos(beta)) + set(0,@P.y,0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
vector pos = @P;&lt;br /&gt;
pos.x = (@P.x * cos(a)) - (@P.z * sin(a));&lt;br /&gt;
pos.y = @P.y;&lt;br /&gt;
pos.z = (@P.x * sin(a)) + (@P.z * cos(a));&lt;br /&gt;
@P = pos;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
@P = set( (@P.x * cos(a)) - (@P.z * sin(a)), @P.y, (@P.x * sin(a)) + (@P.z * cos(a)) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
vector pos = @P;&lt;br /&gt;
float u = atan2(pos.x, pos.z);&lt;br /&gt;
float r = length(pos * {1, 0, 1});&lt;br /&gt;
pos = set(sin(u-a), pos.y, cos(u-a)) * r;&lt;br /&gt;
pos.y = @P.y;&lt;br /&gt;
@P = pos;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
float u = atan2(@P.x, @P.z);&lt;br /&gt;
float r = length(@P * {1, 0, 1});&lt;br /&gt;
@P = set(sin(u-a), @P.y, cos(u-a)) * r;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Peak ==&lt;br /&gt;
[[File:vex_push_surface_along_normals.gif | 340px | right]]&lt;br /&gt;
Move the surface along it's normals, producing an inflation effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_push_surface_along_normals.hip|vex_push_surface_along_normals.hip]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += normalize(@P) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploded View ==&lt;br /&gt;
[[File:vex_exploded_view.gif | 340px | right]]&lt;br /&gt;
Moves each packed piece outward from the geometry centroid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_exploded_view.hiplc|vex_exploded_view.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += (@P - getbbox_center(0)) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Point Jitter ==&lt;br /&gt;
[[File:vex_point_jitter.gif | 340px | right]]&lt;br /&gt;
Move each point in a random direction with a spherical distribution&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_point_jitter.hip|vex_point_jitter.hip]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += sample_sphere_uniform(rand(@elemnum+chf('seed'))) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plexus Effect ==&lt;br /&gt;
[[File:vex_plexus.gif | 340px | right]]&lt;br /&gt;
Connect nearby points&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_plexus.hiplc|vex_plexus.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
foreach(int pt; nearpoints(0, @P, 0.15, 10))    {&lt;br /&gt;
    if(pt &amp;gt; @ptnum)&lt;br /&gt;
        addprim(0, 'polyline', @ptnum, pt);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect to Nearest Point ==&lt;br /&gt;
Draw a line to the closest point of the second input&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
addprim(0, 'polyline', @ptnum, addpoint(0, vector(point(1,'P',nearpoint(1,@P)))) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect to Closest Surface Position ==&lt;br /&gt;
Draw a line to the closest surface position&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
addprim(0, 'polyline', @ptnum, addpoint(0, minpos(1,@P) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Randomize the Rotation of Packed Primitives ==&lt;br /&gt;
Update the transform intrinsic to a random orientation&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector r = sample_direction_uniform(rand(@primnum));&lt;br /&gt;
matrix3 x = primintrinsic(0,'transform',i@primnum);&lt;br /&gt;
rotate(x, PI*pow(rand(@primnum-666),0.5), r);&lt;br /&gt;
setprimintrinsic(0,'transform',i@primnum,x);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Randomize the Scale of Packed Primitives ==&lt;br /&gt;
Update the transform intrinsic to a apply a random scale&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector s = rand(i@primnum);&lt;br /&gt;
s = s.yyy;  // Uniform Scale&lt;br /&gt;
matrix3 x = primintrinsic(0,'transform',i@primnum);&lt;br /&gt;
scale(x, s);&lt;br /&gt;
setprimintrinsic(0,'transform',i@primnum,x);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Random Color from Normal Direction ==&lt;br /&gt;
[[File:vex_rand_color_from_normal_direction.gif | 340px | right]]&lt;br /&gt;
Generate random colors based on the surface normal, adjust the multiplier to control the amount of colors&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_rand_color_from_normal_direction.hiplc|vex_rand_color_from_normal_direction.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = rand(rint(@N*2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Group Unshared Edges ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int isBorderEdge(int pt0, pt1)  {   // test border using half edges&lt;br /&gt;
    int hedge = pointhedge(0, pt0, pt1); // try finding hedge&lt;br /&gt;
    if (hedge == -1 )   {&lt;br /&gt;
        hedge = pointhedge(0, pt1, pt0);  // try reversed hedge&lt;br /&gt;
        if (hedge == -1 ) return -1;  // invalid hedge&lt;br /&gt;
    }&lt;br /&gt;
    return hedge_equivcount(0, hedge) == 1; // 1 if border edge&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int pps[] = primpoints(0,@primnum); // current primitive's points&lt;br /&gt;
for(int i = 0; i&amp;lt;len(pps);  i++)   {&lt;br /&gt;
    int pt0 = pps[i]; // current pt&lt;br /&gt;
    int pt1 = pps[(i-1)%len(pps)]; // next point&lt;br /&gt;
    if( isBorderEdge(pt0, pt1) ) { setpointgroup(0, 'border', pps[i], 1); }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Iterative Face Insetting ==&lt;br /&gt;
Recursive divide and inset edges, [https://twitter.com/d_gfx/status/1452718124579520512 via @d_gfx], excellent use of [https://www.sidefx.com/docs/houdini/vex/arrays.html arrays]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int pts[] = primpoints(0,@primnum); vector pos[];&lt;br /&gt;
int edge_div_pts[]; vector edge_div_pos[];&lt;br /&gt;
foreach( int pt; pts ) &lt;br /&gt;
    append(pos, vector(point(0,'P',pt)));&lt;br /&gt;
for( int i = 0; i &amp;lt; chi('iterations'); i++ )    {&lt;br /&gt;
    resize(edge_div_pts,0); // empty&lt;br /&gt;
    resize(edge_div_pos,0); // empty&lt;br /&gt;
    for( int j = 0; j &amp;lt; len(pts); j++ ) {&lt;br /&gt;
        append(edge_div_pos, lerp( pos[j], pos[(j+1)%len(pts)], chf('div_ratio') ));&lt;br /&gt;
        append(edge_div_pts, addpoint(0, edge_div_pos[-1])); // [-1] grabs the last item from an array&lt;br /&gt;
    }&lt;br /&gt;
    for (int k = 0; k &amp;lt; len(pts); k++ ) {&lt;br /&gt;
        addprim(0, 'poly', pts[k], edge_div_pts[k], edge_div_pts[(k+2)%len(pts)]);&lt;br /&gt;
    }&lt;br /&gt;
    pts = edge_div_pts;&lt;br /&gt;
    pos = edge_div_pos;&lt;br /&gt;
}&lt;br /&gt;
addprim(0, 'poly', edge_div_pts);&lt;br /&gt;
removeprim(0,@primnum,1); // Remove the input prim and any points belonging to it&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Iridescent Color Function ==&lt;br /&gt;
[[File:vex_iridescent.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Produce an iridescent color ramp from any varying value, [https://www.shadertoy.com/view/XlcBR7 from shadertoy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_iridescent.hiplc|vex_iridescent.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float amt = dot(@N, set(0,1,0))*0.5+0.5;&lt;br /&gt;
v@Cd =  (0.5 + 0.5 * cos( PI*2*( amt + set(0,1,2)/3) ) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rainbow Colors from HSV Colorspace ==&lt;br /&gt;
[[File:vex_hsvtorgb_rainbow_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can easily control the hue, while keeping the saturation and value the same using the [https://www.sidefx.com/docs/houdini/vex/functions/hsvtorgb.html hsvtorgb] function.&lt;br /&gt;
&lt;br /&gt;
This allows you to easily create rainbows, gradients, perform hue rotations and produce complimentary colors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_hsvtorgb_rainbow_001.hiplc|vex_hsvtorgb_rainbow_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = hsvtorgb( set(relbbox(0,@P).z - @Time/5 + dot(@N,set(0,1,0))/2, 1, 1));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rainbow Cycle with frac function ==&lt;br /&gt;
[[File:rainbow_cycle_w_frac_VEX.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using the [https://www.sidefx.com/docs/houdini/vex/functions/frac.html frac] function, you can cycle through a rainbow over a desired amount of elements.&lt;br /&gt;
&lt;br /&gt;
This is then offset by adding the current time to the fractional value, which produces the scrolling effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_frac_rainbow_cycle_001.hiplc|vex_frac_rainbow_cycle_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = hsvtorgb(set(frac(@elemnum/8.0)+@Time/10, 1, 1));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Loop Over All Attributes ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
string pt_attrs[] = detailintrinsic(1,'pointattributes');&lt;br /&gt;
foreach( string pt_attr; pt_attrs ) {&lt;br /&gt;
    if( pt_attr ~= 'attr_name*' ) {&lt;br /&gt;
        setpointgroup(0, pt_attr, @ptnum, 1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remove Faces Across Bounding Box ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
if( relbbox(0,@P).x &amp;lt; rand(@primnum) )&lt;br /&gt;
    removeprim(0,@primnum,1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torus Knot ==&lt;br /&gt;
[[File:vex_torus_knot_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
[https://prideout.net/knotgl/ Online Knot Viewer]&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_torus_knot_001.hiplc|vex_torus_knot_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float u = float(@ptnum)/(@numpt-1);&lt;br /&gt;
u += @Time/10.0;&lt;br /&gt;
u %= 1.0;&lt;br /&gt;
u *= PI * 2;&lt;br /&gt;
float r = 2.0;&lt;br /&gt;
float q = 2;&lt;br /&gt;
float p = 3;&lt;br /&gt;
f@u = u;&lt;br /&gt;
@P.x += cos(u*q) * (cos(u*p)+r);&lt;br /&gt;
@P.y += sin(u*q) * (cos(u*p)+r);&lt;br /&gt;
@P.z += sin(u*p);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remap Grid to Circle ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_map_grid_to_circle.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Working with polar coordinates to map a square onto a circle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_map_grid_to_circle.hiplc|vex_map_grid_to_circle.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {0.5, 0.5, 0}; // Remap the grid to zero to one range&lt;br /&gt;
float theta = @P.x;&lt;br /&gt;
float radius = @P.y/2;&lt;br /&gt;
@P = 0;&lt;br /&gt;
@P.x = sin(theta*PI*2 ) * radius;&lt;br /&gt;
@P.y = cos(theta*PI*2 ) * radius;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remap Grid to Sphere ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_map_grid_to_sphere.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Working with polar coordinates to map a square onto a sphere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_map_grid_to_sphere.hiplc|vex_map_grid_to_sphere.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {0.5, 0.5, 0}; // Remap the grid to zero to one range&lt;br /&gt;
float phi = @P.x;&lt;br /&gt;
float theta = 1.0-@P.y;&lt;br /&gt;
@P.x = sin(theta*PI*1 ) * cos(phi*PI*2 )/2;&lt;br /&gt;
@P.z = sin(theta*PI*1 ) * sin(phi*PI*2 )/2;&lt;br /&gt;
@P.y = cos(theta*PI*1 )/2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Quad ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int prim = addprim(0,'poly');&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(0,0,0)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(1,0,0)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(1,0,1)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(0,0,1)) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Grid ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
for(int i = 0; i&amp;lt;8; i++)    {&lt;br /&gt;
    for(int j = 0; j&amp;lt;8; j++)    {&lt;br /&gt;
        int prim = addprim(0,'poly');&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i,0,j)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i+1,0,j)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i+1,0,j+1)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i,0,j+1)) );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Circle ==&lt;br /&gt;
[[File:vex_make_circle.gif | 300px | right]]&lt;br /&gt;
&lt;br /&gt;
This example shows how you can generate a circle or N sided polygon using a for loop, sin and cos.&lt;br /&gt;
&lt;br /&gt;
Run the code in detail mode with an attribute wrangle.&lt;br /&gt;
&lt;br /&gt;
This is essentially the same idea as the [https://www.sidefx.com/docs/houdini/nodes/sop/circle.html circle] node but hopefully a beneficial example to see how this type of geometry is generated via VEX.&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_make_circle_001.hiplc|vex_make_circle_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int prim = addprim(0,'poly');&lt;br /&gt;
int seg = chi('segments');&lt;br /&gt;
for( int i = 0; i&amp;lt;seg; i++ )  {&lt;br /&gt;
    float u = float(i)/seg * 2*PI;&lt;br /&gt;
    addvertex(0, prim, addpoint(0, set(sin(u),0,cos(u))) );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Groups to Attribute ==&lt;br /&gt;
[https://zybrand.xyz/groups-to-attribute-with-vex From zybrand]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
//convert numbered groups to a numbered attribute&lt;br /&gt;
string groups[] = detailintrinsic(0, &amp;quot;primitivegroups&amp;quot;);&lt;br /&gt;
int prim = @primnum;&lt;br /&gt;
string elemnum;&lt;br /&gt;
&lt;br /&gt;
foreach(string i; groups)&lt;br /&gt;
{&lt;br /&gt;
    //if the current primitive is in group i&lt;br /&gt;
    if(inprimgroup(0,i,prim) == 1)&lt;br /&gt;
    {&lt;br /&gt;
        elemnum = re_find(r&amp;quot;\d{3,6}&amp;quot;,i);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
s@number = elemnum;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Looping Curl Noise ==&lt;br /&gt;
[[File:2022_12_11_looping_curl_noise.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's possible to achieve seamless looping animation from curl noise by blending between two noises.&lt;br /&gt;
&lt;br /&gt;
In this example one noise function is evaluated at the current time, and a second noise function is evaluated at the time shifted back by the desired loop duration.&lt;br /&gt;
&lt;br /&gt;
The result of these two noise functions are blended from one to the other over the duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_looping_noises.hiplc|vex_looping_noises.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Position x Frequency&lt;br /&gt;
vector p = @P*0.5;&lt;br /&gt;
// Speed&lt;br /&gt;
float s = 0.5;&lt;br /&gt;
// Loop Length (in seconds)&lt;br /&gt;
float l = 5;&lt;br /&gt;
// Time % duration&lt;br /&gt;
float t = (@Time%l);&lt;br /&gt;
// Blending&lt;br /&gt;
vector v0 = curlgxnoise(p + set(0,0,0,t*s));&lt;br /&gt;
vector v1 = curlgxnoise(p + set(0,0,0,(t-l)*s));&lt;br /&gt;
@P += lerp(v0,v1,frac(@Time/l)) * 0.35;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Make a Grid ==&lt;br /&gt;
 for(int j = 0; j&amp;lt;4; j++)    {&lt;br /&gt;
    int prim = addprim(0,'poly');&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i,0,j)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i+1,0,j)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i+1,0,j+1)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i,0,j+1)) );&lt;br /&gt;
 }--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=File:vex_rand_color_from_normal_direction.hiplc&amp;diff=1331</id>
		<title>File:vex rand color from normal direction.hiplc</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=File:vex_rand_color_from_normal_direction.hiplc&amp;diff=1331"/>
		<updated>2024-10-03T10:04:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=File:vex_rand_color_from_normal_direction.gif&amp;diff=1330</id>
		<title>File:vex rand color from normal direction.gif</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=File:vex_rand_color_from_normal_direction.gif&amp;diff=1330"/>
		<updated>2024-10-03T10:03:41Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=VEX_Wrangle_Snippets&amp;diff=1329</id>
		<title>VEX Wrangle Snippets</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=VEX_Wrangle_Snippets&amp;diff=1329"/>
		<updated>2024-10-03T09:46:21Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Translate ==&lt;br /&gt;
[[File:vex_offset_position.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
Offset the position of geometry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_offset_position.hiplc|vex_offset_position.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {1, 0, 0};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Taper ==&lt;br /&gt;
[[File:taper_vex_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reduces the circumference by scaling along the XZ plane based on the height of the geometry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:taper_vex_001.hiplc|taper_vex_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float taper = relbbox(0,@P).y;&lt;br /&gt;
// Remap the taper range&lt;br /&gt;
taper = fit01(taper, 1, fit01(sin(@Time*PI/5)*0.5+0.5, 2.5, .5));&lt;br /&gt;
// Apply the taper by scaling along the X and Y axis&lt;br /&gt;
@P *= set(taper,1,taper);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boxify ==&lt;br /&gt;
[[File:vex_boxify_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Distorts the geometry, morphing it into a box shape&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_boxify_001.hiplc|vex_boxify_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
vector size = getbbox_size(0);&lt;br /&gt;
size = min(size); // Largest component&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P *= (1.0/size);&lt;br /&gt;
@P = lerp(@P, @P+clamp(normalize(@P)*1.75,vector(-1),vector(1)) * (1.0-length(max(abs(@P)))), chf('blend'));&lt;br /&gt;
@P *= size;&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spherify ==&lt;br /&gt;
[[File:vex_spherify_001.gif | 340px | right]]&lt;br /&gt;
Distorts the geometry into a sphere shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_spherify_001.hiplc|vex_spherify_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
vector size = getbbox_size(0);&lt;br /&gt;
size = min(size); // Largest component&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P *= (1.0/size);&lt;br /&gt;
@P = lerp(@P, normalize(@P), chf('blend'));&lt;br /&gt;
@P *= size;&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stretch ==&lt;br /&gt;
[[File:vex_stretch_001.gif | 340px | right]]&lt;br /&gt;
Stretch the geometry across it's X axis&lt;br /&gt;
&lt;br /&gt;
Add one component of position to itself to stretch the geometry away from it's center.  You can control the amount of stretching by multiplying the position before adding it to itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_stretch_001.hiplc|vex_stretch_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P.x += @P.x*chf('amt');&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shape Blending ==&lt;br /&gt;
[[File:vex_position_blend.gif | 340px | right]]&lt;br /&gt;
Blend between point attributes to produce a morph effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_position_blend.hiplc|vex_position_blend.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = lerp(@P, @opinput1_P, chf('blend'));&lt;br /&gt;
@N = lerp(@N, @opinput1_N, chf('blend'));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Snap to Grid ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_snap_to_grid.gif | 340px | right]]&lt;br /&gt;
Snap ([https://en.wikipedia.org/wiki/Quantization_(signal_processing) quantize]) point positions to a grid for a downres effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_snap_to_grid.hiplc|File:vex_snap_to_grid.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float grid_scale = chf('grid_scale');&lt;br /&gt;
@P = rint(@P*grid_scale)/grid_scale;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make 2D ==&lt;br /&gt;
[[File:vex_setcomp.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
You can use the setcomp function to zero out a component of a vector, resulting in a two dimensional surface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_setcomp.hiplc|vex_setcomp.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the X component to zero, planar 2D in YZ&lt;br /&gt;
setcomp(@P, 0, 0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the Y component to zero, planar 2D in XZ&lt;br /&gt;
setcomp(@P, 0, 1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the Z component to zero, planar 2D in XY&lt;br /&gt;
setcomp(@P, 0, 2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Swizzle Coordinate System ==&lt;br /&gt;
[[File:vex_swizzle_vector_components.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
Shuffle the components of a vector using [https://www.sidefx.com/docs/houdini/vex/lang.html#dot-operator swizzle]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_swizzle_vector_components.hiplc|vex_swizzle_vector_components.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = @P.zyx;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Switch between Y up and Z up coordinates using [https://www.sidefx.com/docs/houdini/vex/lang.html#dot-operator swizzle]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = @P.xzy * set(-1,1,1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Twirl ==&lt;br /&gt;
[[File:vex_twirl.gif | 340px | right]]&lt;br /&gt;
Twirl the geometry around the Y axis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_twirl.hiplc|vex_twirl.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
float u = atan2(@P.x, @P.z);&lt;br /&gt;
float r = length(@P * {1, 0, 1});&lt;br /&gt;
@P = set(sin(u-a), @P.y, cos(u-a)) * set(r,1,r);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float angle = chf('angle');&lt;br /&gt;
vector origin = set(0,0,0);&lt;br /&gt;
&lt;br /&gt;
vector d = v@P*set(1,0,1) - origin;&lt;br /&gt;
float r = length(d);&lt;br /&gt;
r = pow(r, chf('pow'));&lt;br /&gt;
float beta = atan(d.x, d.z) + radians(angle) * r;&lt;br /&gt;
v@P = origin + r * set(sin(beta), 0, cos(beta)) + set(0,@P.y,0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
alt&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float angle = @P.y*900;&lt;br /&gt;
vector origin = set(0,0,0);&lt;br /&gt;
&lt;br /&gt;
vector d = v@P*set(1,0,1) - origin;&lt;br /&gt;
float r = length(d);&lt;br /&gt;
float beta = atan(d.x, d.z) + radians(angle);&lt;br /&gt;
v@P = origin + r * set(sin(beta), 0, cos(beta)) + set(0,@P.y,0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
vector pos = @P;&lt;br /&gt;
pos.x = (@P.x * cos(a)) - (@P.z * sin(a));&lt;br /&gt;
pos.y = @P.y;&lt;br /&gt;
pos.z = (@P.x * sin(a)) + (@P.z * cos(a));&lt;br /&gt;
@P = pos;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
@P = set( (@P.x * cos(a)) - (@P.z * sin(a)), @P.y, (@P.x * sin(a)) + (@P.z * cos(a)) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
vector pos = @P;&lt;br /&gt;
float u = atan2(pos.x, pos.z);&lt;br /&gt;
float r = length(pos * {1, 0, 1});&lt;br /&gt;
pos = set(sin(u-a), pos.y, cos(u-a)) * r;&lt;br /&gt;
pos.y = @P.y;&lt;br /&gt;
@P = pos;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
float u = atan2(@P.x, @P.z);&lt;br /&gt;
float r = length(@P * {1, 0, 1});&lt;br /&gt;
@P = set(sin(u-a), @P.y, cos(u-a)) * r;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Peak ==&lt;br /&gt;
[[File:vex_push_surface_along_normals.gif | 340px | right]]&lt;br /&gt;
Move the surface along it's normals, producing an inflation effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_push_surface_along_normals.hip|vex_push_surface_along_normals.hip]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += normalize(@P) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploded View ==&lt;br /&gt;
[[File:vex_exploded_view.gif | 340px | right]]&lt;br /&gt;
Moves each packed piece outward from the geometry centroid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_exploded_view.hiplc|vex_exploded_view.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += (@P - getbbox_center(0)) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Point Jitter ==&lt;br /&gt;
[[File:vex_point_jitter.gif | 340px | right]]&lt;br /&gt;
Move each point in a random direction with a spherical distribution&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_point_jitter.hip|vex_point_jitter.hip]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += sample_sphere_uniform(rand(@elemnum+chf('seed'))) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plexus Effect ==&lt;br /&gt;
[[File:vex_plexus.gif | 340px | right]]&lt;br /&gt;
Connect nearby points&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_plexus.hiplc|vex_plexus.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
foreach(int pt; nearpoints(0, @P, 0.15, 10))    {&lt;br /&gt;
    if(pt &amp;gt; @ptnum)&lt;br /&gt;
        addprim(0, 'polyline', @ptnum, pt);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect to Nearest Point ==&lt;br /&gt;
Draw a line to the closest point of the second input&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
addprim(0, 'polyline', @ptnum, addpoint(0, vector(point(1,'P',nearpoint(1,@P)))) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect to Closest Surface Position ==&lt;br /&gt;
Draw a line to the closest surface position&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
addprim(0, 'polyline', @ptnum, addpoint(0, minpos(1,@P) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Randomize the Rotation of Packed Primitives ==&lt;br /&gt;
Update the transform intrinsic to a random orientation&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector r = sample_direction_uniform(rand(@primnum));&lt;br /&gt;
matrix3 x = primintrinsic(0,'transform',i@primnum);&lt;br /&gt;
rotate(x, PI*pow(rand(@primnum-666),0.5), r);&lt;br /&gt;
setprimintrinsic(0,'transform',i@primnum,x);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Randomize the Scale of Packed Primitives ==&lt;br /&gt;
Update the transform intrinsic to a apply a random scale&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector s = rand(i@primnum);&lt;br /&gt;
s = s.yyy;  // Uniform Scale&lt;br /&gt;
matrix3 x = primintrinsic(0,'transform',i@primnum);&lt;br /&gt;
scale(x, s);&lt;br /&gt;
setprimintrinsic(0,'transform',i@primnum,x);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Random Color from Normal Direction ==&lt;br /&gt;
Generate random colors based on the surface normal, adjust the multiplier to control the amount of colors&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = rand(rint(@N*2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Group Unshared Edges ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int isBorderEdge(int pt0, pt1)  {   // test border using half edges&lt;br /&gt;
    int hedge = pointhedge(0, pt0, pt1); // try finding hedge&lt;br /&gt;
    if (hedge == -1 )   {&lt;br /&gt;
        hedge = pointhedge(0, pt1, pt0);  // try reversed hedge&lt;br /&gt;
        if (hedge == -1 ) return -1;  // invalid hedge&lt;br /&gt;
    }&lt;br /&gt;
    return hedge_equivcount(0, hedge) == 1; // 1 if border edge&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int pps[] = primpoints(0,@primnum); // current primitive's points&lt;br /&gt;
for(int i = 0; i&amp;lt;len(pps);  i++)   {&lt;br /&gt;
    int pt0 = pps[i]; // current pt&lt;br /&gt;
    int pt1 = pps[(i-1)%len(pps)]; // next point&lt;br /&gt;
    if( isBorderEdge(pt0, pt1) ) { setpointgroup(0, 'border', pps[i], 1); }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Iterative Face Insetting ==&lt;br /&gt;
Recursive divide and inset edges, [https://twitter.com/d_gfx/status/1452718124579520512 via @d_gfx], excellent use of [https://www.sidefx.com/docs/houdini/vex/arrays.html arrays]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int pts[] = primpoints(0,@primnum); vector pos[];&lt;br /&gt;
int edge_div_pts[]; vector edge_div_pos[];&lt;br /&gt;
foreach( int pt; pts ) &lt;br /&gt;
    append(pos, vector(point(0,'P',pt)));&lt;br /&gt;
for( int i = 0; i &amp;lt; chi('iterations'); i++ )    {&lt;br /&gt;
    resize(edge_div_pts,0); // empty&lt;br /&gt;
    resize(edge_div_pos,0); // empty&lt;br /&gt;
    for( int j = 0; j &amp;lt; len(pts); j++ ) {&lt;br /&gt;
        append(edge_div_pos, lerp( pos[j], pos[(j+1)%len(pts)], chf('div_ratio') ));&lt;br /&gt;
        append(edge_div_pts, addpoint(0, edge_div_pos[-1])); // [-1] grabs the last item from an array&lt;br /&gt;
    }&lt;br /&gt;
    for (int k = 0; k &amp;lt; len(pts); k++ ) {&lt;br /&gt;
        addprim(0, 'poly', pts[k], edge_div_pts[k], edge_div_pts[(k+2)%len(pts)]);&lt;br /&gt;
    }&lt;br /&gt;
    pts = edge_div_pts;&lt;br /&gt;
    pos = edge_div_pos;&lt;br /&gt;
}&lt;br /&gt;
addprim(0, 'poly', edge_div_pts);&lt;br /&gt;
removeprim(0,@primnum,1); // Remove the input prim and any points belonging to it&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Iridescent Color Function ==&lt;br /&gt;
[[File:vex_iridescent.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Produce an iridescent color ramp from any varying value, [https://www.shadertoy.com/view/XlcBR7 from shadertoy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_iridescent.hiplc|vex_iridescent.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float amt = dot(@N, set(0,1,0))*0.5+0.5;&lt;br /&gt;
v@Cd =  (0.5 + 0.5 * cos( PI*2*( amt + set(0,1,2)/3) ) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rainbow Colors from HSV Colorspace ==&lt;br /&gt;
[[File:vex_hsvtorgb_rainbow_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can easily control the hue, while keeping the saturation and value the same using the [https://www.sidefx.com/docs/houdini/vex/functions/hsvtorgb.html hsvtorgb] function.&lt;br /&gt;
&lt;br /&gt;
This allows you to easily create rainbows, gradients, perform hue rotations and produce complimentary colors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_hsvtorgb_rainbow_001.hiplc|vex_hsvtorgb_rainbow_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = hsvtorgb( set(relbbox(0,@P).z - @Time/5 + dot(@N,set(0,1,0))/2, 1, 1));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rainbow Cycle with frac function ==&lt;br /&gt;
[[File:rainbow_cycle_w_frac_VEX.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using the [https://www.sidefx.com/docs/houdini/vex/functions/frac.html frac] function, you can cycle through a rainbow over a desired amount of elements.&lt;br /&gt;
&lt;br /&gt;
This is then offset by adding the current time to the fractional value, which produces the scrolling effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_frac_rainbow_cycle_001.hiplc|vex_frac_rainbow_cycle_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = hsvtorgb(set(frac(@elemnum/8.0)+@Time/10, 1, 1));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Loop Over All Attributes ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
string pt_attrs[] = detailintrinsic(1,'pointattributes');&lt;br /&gt;
foreach( string pt_attr; pt_attrs ) {&lt;br /&gt;
    if( pt_attr ~= 'attr_name*' ) {&lt;br /&gt;
        setpointgroup(0, pt_attr, @ptnum, 1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remove Faces Across Bounding Box ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
if( relbbox(0,@P).x &amp;lt; rand(@primnum) )&lt;br /&gt;
    removeprim(0,@primnum,1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torus Knot ==&lt;br /&gt;
[[File:vex_torus_knot_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
[https://prideout.net/knotgl/ Online Knot Viewer]&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_torus_knot_001.hiplc|vex_torus_knot_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float u = float(@ptnum)/(@numpt-1);&lt;br /&gt;
u += @Time/10.0;&lt;br /&gt;
u %= 1.0;&lt;br /&gt;
u *= PI * 2;&lt;br /&gt;
float r = 2.0;&lt;br /&gt;
float q = 2;&lt;br /&gt;
float p = 3;&lt;br /&gt;
f@u = u;&lt;br /&gt;
@P.x += cos(u*q) * (cos(u*p)+r);&lt;br /&gt;
@P.y += sin(u*q) * (cos(u*p)+r);&lt;br /&gt;
@P.z += sin(u*p);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remap Grid to Circle ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_map_grid_to_circle.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Working with polar coordinates to map a square onto a circle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_map_grid_to_circle.hiplc|vex_map_grid_to_circle.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {0.5, 0.5, 0}; // Remap the grid to zero to one range&lt;br /&gt;
float theta = @P.x;&lt;br /&gt;
float radius = @P.y/2;&lt;br /&gt;
@P = 0;&lt;br /&gt;
@P.x = sin(theta*PI*2 ) * radius;&lt;br /&gt;
@P.y = cos(theta*PI*2 ) * radius;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remap Grid to Sphere ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_map_grid_to_sphere.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Working with polar coordinates to map a square onto a sphere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_map_grid_to_sphere.hiplc|vex_map_grid_to_sphere.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {0.5, 0.5, 0}; // Remap the grid to zero to one range&lt;br /&gt;
float phi = @P.x;&lt;br /&gt;
float theta = 1.0-@P.y;&lt;br /&gt;
@P.x = sin(theta*PI*1 ) * cos(phi*PI*2 )/2;&lt;br /&gt;
@P.z = sin(theta*PI*1 ) * sin(phi*PI*2 )/2;&lt;br /&gt;
@P.y = cos(theta*PI*1 )/2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Quad ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int prim = addprim(0,'poly');&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(0,0,0)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(1,0,0)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(1,0,1)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(0,0,1)) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Grid ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
for(int i = 0; i&amp;lt;8; i++)    {&lt;br /&gt;
    for(int j = 0; j&amp;lt;8; j++)    {&lt;br /&gt;
        int prim = addprim(0,'poly');&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i,0,j)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i+1,0,j)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i+1,0,j+1)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i,0,j+1)) );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Circle ==&lt;br /&gt;
[[File:vex_make_circle.gif | 300px | right]]&lt;br /&gt;
&lt;br /&gt;
This example shows how you can generate a circle or N sided polygon using a for loop, sin and cos.&lt;br /&gt;
&lt;br /&gt;
Run the code in detail mode with an attribute wrangle.&lt;br /&gt;
&lt;br /&gt;
This is essentially the same idea as the [https://www.sidefx.com/docs/houdini/nodes/sop/circle.html circle] node but hopefully a beneficial example to see how this type of geometry is generated via VEX.&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_make_circle_001.hiplc|vex_make_circle_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int prim = addprim(0,'poly');&lt;br /&gt;
int seg = chi('segments');&lt;br /&gt;
for( int i = 0; i&amp;lt;seg; i++ )  {&lt;br /&gt;
    float u = float(i)/seg * 2*PI;&lt;br /&gt;
    addvertex(0, prim, addpoint(0, set(sin(u),0,cos(u))) );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Groups to Attribute ==&lt;br /&gt;
[https://zybrand.xyz/groups-to-attribute-with-vex From zybrand]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
//convert numbered groups to a numbered attribute&lt;br /&gt;
string groups[] = detailintrinsic(0, &amp;quot;primitivegroups&amp;quot;);&lt;br /&gt;
int prim = @primnum;&lt;br /&gt;
string elemnum;&lt;br /&gt;
&lt;br /&gt;
foreach(string i; groups)&lt;br /&gt;
{&lt;br /&gt;
    //if the current primitive is in group i&lt;br /&gt;
    if(inprimgroup(0,i,prim) == 1)&lt;br /&gt;
    {&lt;br /&gt;
        elemnum = re_find(r&amp;quot;\d{3,6}&amp;quot;,i);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
s@number = elemnum;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Looping Curl Noise ==&lt;br /&gt;
[[File:2022_12_11_looping_curl_noise.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's possible to achieve seamless looping animation from curl noise by blending between two noises.&lt;br /&gt;
&lt;br /&gt;
In this example one noise function is evaluated at the current time, and a second noise function is evaluated at the time shifted back by the desired loop duration.&lt;br /&gt;
&lt;br /&gt;
The result of these two noise functions are blended from one to the other over the duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_looping_noises.hiplc|vex_looping_noises.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Position x Frequency&lt;br /&gt;
vector p = @P*0.5;&lt;br /&gt;
// Speed&lt;br /&gt;
float s = 0.5;&lt;br /&gt;
// Loop Length (in seconds)&lt;br /&gt;
float l = 5;&lt;br /&gt;
// Time % duration&lt;br /&gt;
float t = (@Time%l);&lt;br /&gt;
// Blending&lt;br /&gt;
vector v0 = curlgxnoise(p + set(0,0,0,t*s));&lt;br /&gt;
vector v1 = curlgxnoise(p + set(0,0,0,(t-l)*s));&lt;br /&gt;
@P += lerp(v0,v1,frac(@Time/l)) * 0.35;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Make a Grid ==&lt;br /&gt;
 for(int j = 0; j&amp;lt;4; j++)    {&lt;br /&gt;
    int prim = addprim(0,'poly');&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i,0,j)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i+1,0,j)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i+1,0,j+1)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i,0,j+1)) );&lt;br /&gt;
 }--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1328</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1328"/>
		<updated>2024-09-22T19:27:44Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values] | [https://www.motionforgepictures.com/height-maps/ Terrain Height Maps]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1327</id>
		<title>Houdini USD Cookbook</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1327"/>
		<updated>2024-09-17T21:51:35Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.sidefx.com/docs/houdini//solaris/pattern.html Primitive matching patterns]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
%rendercamera&lt;br /&gt;
%rendersettings&lt;br /&gt;
%bound(/cameras/camera1, fovscale = 1.1)&lt;br /&gt;
{ usd_istype(0, @primpath, &amp;quot;DiskLight&amp;quot;) }&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini//solaris/vex.html Using VEX with USD]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
usd_worldtransform&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini/nodes/lop/karmastandardrendervars.html Karma Standard Render Vars]&lt;br /&gt;
&lt;br /&gt;
[https://renderman.pixar.com/resources/RenderMan_20/risLPEs.html LPEs]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1326</id>
		<title>Houdini USD Cookbook</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1326"/>
		<updated>2024-09-17T21:50:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.sidefx.com/docs/houdini//solaris/pattern.html Primitive matching patterns]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
%rendercamera&lt;br /&gt;
%rendersettings&lt;br /&gt;
%bound(/cameras/camera1, fovscale = 1.1)&lt;br /&gt;
{ usd_istype(0, @primpath, &amp;quot;DiskLight&amp;quot;) }&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini//solaris/vex.html Using VEX with USD]&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini/nodes/lop/karmastandardrendervars.html Karma Standard Render Vars]&lt;br /&gt;
&lt;br /&gt;
[https://renderman.pixar.com/resources/RenderMan_20/risLPEs.html LPEs]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1325</id>
		<title>Houdini USD Cookbook</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1325"/>
		<updated>2024-09-17T21:49:10Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.sidefx.com/docs/houdini//solaris/pattern.html Primitive matching patterns]&lt;br /&gt;
%rendercamera&lt;br /&gt;
%rendersettings&lt;br /&gt;
%bound(/cameras/camera1, fovscale = 1.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini//solaris/vex.html Using VEX with USD]&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini/nodes/lop/karmastandardrendervars.html Karma Standard Render Vars]&lt;br /&gt;
&lt;br /&gt;
[https://renderman.pixar.com/resources/RenderMan_20/risLPEs.html LPEs]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1324</id>
		<title>Houdini USD Cookbook</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1324"/>
		<updated>2024-09-17T21:47:59Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.sidefx.com/docs/houdini//solaris/pattern.html Primitive matching patterns]&lt;br /&gt;
%rendercamera&lt;br /&gt;
%rendersettings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini//solaris/vex.html Using VEX with USD]&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini/nodes/lop/karmastandardrendervars.html Karma Standard Render Vars]&lt;br /&gt;
&lt;br /&gt;
[https://renderman.pixar.com/resources/RenderMan_20/risLPEs.html LPEs]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1323</id>
		<title>Houdini USD Cookbook</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1323"/>
		<updated>2024-09-17T21:47:02Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.sidefx.com/docs/houdini//solaris/pattern.html Primitive matching patterns]&lt;br /&gt;
%rendercamera&lt;br /&gt;
%rendercamera&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini//solaris/vex.html Using VEX with USD]&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini/nodes/lop/karmastandardrendervars.html Karma Standard Render Vars]&lt;br /&gt;
&lt;br /&gt;
[https://renderman.pixar.com/resources/RenderMan_20/risLPEs.html LPEs]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=VEX_Wrangle_Snippets&amp;diff=1322</id>
		<title>VEX Wrangle Snippets</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=VEX_Wrangle_Snippets&amp;diff=1322"/>
		<updated>2024-09-01T11:21:53Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Torus Knot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Translate ==&lt;br /&gt;
[[File:vex_offset_position.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
Offset the position of geometry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_offset_position.hiplc|vex_offset_position.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {1, 0, 0};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Taper ==&lt;br /&gt;
[[File:taper_vex_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reduces the circumference by scaling along the XZ plane based on the height of the geometry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:taper_vex_001.hiplc|taper_vex_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float taper = relbbox(0,@P).y;&lt;br /&gt;
// Remap the taper range&lt;br /&gt;
taper = fit01(taper, 1, fit01(sin(@Time*PI/5)*0.5+0.5, 2.5, .5));&lt;br /&gt;
// Apply the taper by scaling along the X and Y axis&lt;br /&gt;
@P *= set(taper,1,taper);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boxify ==&lt;br /&gt;
[[File:vex_boxify_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Distorts the geometry, morphing it into a box shape&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_boxify_001.hiplc|vex_boxify_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
vector size = getbbox_size(0);&lt;br /&gt;
size = min(size); // Largest component&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P *= (1.0/size);&lt;br /&gt;
@P = lerp(@P, @P+clamp(normalize(@P)*1.75,vector(-1),vector(1)) * (1.0-length(max(abs(@P)))), chf('blend'));&lt;br /&gt;
@P *= size;&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spherify ==&lt;br /&gt;
[[File:vex_spherify_001.gif | 340px | right]]&lt;br /&gt;
Distorts the geometry into a sphere shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_spherify_001.hiplc|vex_spherify_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
vector size = getbbox_size(0);&lt;br /&gt;
size = min(size); // Largest component&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P *= (1.0/size);&lt;br /&gt;
@P = lerp(@P, normalize(@P), chf('blend'));&lt;br /&gt;
@P *= size;&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stretch ==&lt;br /&gt;
[[File:vex_stretch_001.gif | 340px | right]]&lt;br /&gt;
Stretch the geometry across it's X axis&lt;br /&gt;
&lt;br /&gt;
Add one component of position to itself to stretch the geometry away from it's center.  You can control the amount of stretching by multiplying the position before adding it to itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_stretch_001.hiplc|vex_stretch_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P.x += @P.x*chf('amt');&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shape Blending ==&lt;br /&gt;
[[File:vex_position_blend.gif | 340px | right]]&lt;br /&gt;
Blend between point attributes to produce a morph effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_position_blend.hiplc|vex_position_blend.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = lerp(@P, @opinput1_P, chf('blend'));&lt;br /&gt;
@N = lerp(@N, @opinput1_N, chf('blend'));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Snap to Grid ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_snap_to_grid.gif | 340px | right]]&lt;br /&gt;
Snap ([https://en.wikipedia.org/wiki/Quantization_(signal_processing) quantize]) point positions to a grid for a downres effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_snap_to_grid.hiplc|File:vex_snap_to_grid.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float grid_scale = chf('grid_scale');&lt;br /&gt;
@P = rint(@P*grid_scale)/grid_scale;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make 2D ==&lt;br /&gt;
[[File:vex_setcomp.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
You can use the setcomp function to zero out a component of a vector, resulting in a two dimensional surface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_setcomp.hiplc|vex_setcomp.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the X component to zero, planar 2D in YZ&lt;br /&gt;
setcomp(@P, 0, 0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the Y component to zero, planar 2D in XZ&lt;br /&gt;
setcomp(@P, 0, 1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the Z component to zero, planar 2D in XY&lt;br /&gt;
setcomp(@P, 0, 2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Swizzle Coordinate System ==&lt;br /&gt;
[[File:vex_swizzle_vector_components.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
Shuffle the components of a vector using [https://www.sidefx.com/docs/houdini/vex/lang.html#dot-operator swizzle]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_swizzle_vector_components.hiplc|vex_swizzle_vector_components.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = @P.zyx;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Switch between Y up and Z up coordinates using [https://www.sidefx.com/docs/houdini/vex/lang.html#dot-operator swizzle]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = @P.xzy * set(-1,1,1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Twirl ==&lt;br /&gt;
[[File:vex_twirl.gif | 340px | right]]&lt;br /&gt;
Twirl the geometry around the Y axis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_twirl.hiplc|vex_twirl.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
float u = atan2(@P.x, @P.z);&lt;br /&gt;
float r = length(@P * {1, 0, 1});&lt;br /&gt;
@P = set(sin(u-a), @P.y, cos(u-a)) * set(r,1,r);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float angle = chf('angle');&lt;br /&gt;
vector origin = set(0,0,0);&lt;br /&gt;
&lt;br /&gt;
vector d = v@P*set(1,0,1) - origin;&lt;br /&gt;
float r = length(d);&lt;br /&gt;
r = pow(r, chf('pow'));&lt;br /&gt;
float beta = atan(d.x, d.z) + radians(angle) * r;&lt;br /&gt;
v@P = origin + r * set(sin(beta), 0, cos(beta)) + set(0,@P.y,0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
alt&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float angle = @P.y*900;&lt;br /&gt;
vector origin = set(0,0,0);&lt;br /&gt;
&lt;br /&gt;
vector d = v@P*set(1,0,1) - origin;&lt;br /&gt;
float r = length(d);&lt;br /&gt;
float beta = atan(d.x, d.z) + radians(angle);&lt;br /&gt;
v@P = origin + r * set(sin(beta), 0, cos(beta)) + set(0,@P.y,0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
vector pos = @P;&lt;br /&gt;
pos.x = (@P.x * cos(a)) - (@P.z * sin(a));&lt;br /&gt;
pos.y = @P.y;&lt;br /&gt;
pos.z = (@P.x * sin(a)) + (@P.z * cos(a));&lt;br /&gt;
@P = pos;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
@P = set( (@P.x * cos(a)) - (@P.z * sin(a)), @P.y, (@P.x * sin(a)) + (@P.z * cos(a)) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
vector pos = @P;&lt;br /&gt;
float u = atan2(pos.x, pos.z);&lt;br /&gt;
float r = length(pos * {1, 0, 1});&lt;br /&gt;
pos = set(sin(u-a), pos.y, cos(u-a)) * r;&lt;br /&gt;
pos.y = @P.y;&lt;br /&gt;
@P = pos;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
float u = atan2(@P.x, @P.z);&lt;br /&gt;
float r = length(@P * {1, 0, 1});&lt;br /&gt;
@P = set(sin(u-a), @P.y, cos(u-a)) * r;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Peak ==&lt;br /&gt;
[[File:vex_push_surface_along_normals.gif | 340px | right]]&lt;br /&gt;
Move the surface along it's normals, producing an inflation effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_push_surface_along_normals.hip|vex_push_surface_along_normals.hip]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += normalize(@P) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploded View ==&lt;br /&gt;
[[File:vex_exploded_view.gif | 340px | right]]&lt;br /&gt;
Moves each packed piece outward from the geometry centroid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_exploded_view.hiplc|vex_exploded_view.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += (@P - getbbox_center(0)) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Point Jitter ==&lt;br /&gt;
[[File:vex_point_jitter.gif | 340px | right]]&lt;br /&gt;
Move each point in a random direction with a spherical distribution&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_point_jitter.hip|vex_point_jitter.hip]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += sample_sphere_uniform(rand(@elemnum+chf('seed'))) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plexus Effect ==&lt;br /&gt;
[[File:vex_plexus.gif | 340px | right]]&lt;br /&gt;
Connect nearby points&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_plexus.hiplc|vex_plexus.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
foreach(int pt; nearpoints(0, @P, 0.15, 10))    {&lt;br /&gt;
    if(pt &amp;gt; @ptnum)&lt;br /&gt;
        addprim(0, 'polyline', @ptnum, pt);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect to Nearest Point ==&lt;br /&gt;
Draw a line to the closest point of the second input&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
addprim(0, 'polyline', @ptnum, addpoint(0, vector(point(1,'P',nearpoint(1,@P)))) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect to Closest Surface Position ==&lt;br /&gt;
Draw a line to the closest surface position&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
addprim(0, 'polyline', @ptnum, addpoint(0, minpos(1,@P) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Randomize the Rotation of Packed Primitives ==&lt;br /&gt;
Update the transform intrinsic to a random orientation&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector r = sample_direction_uniform(rand(@primnum));&lt;br /&gt;
matrix3 x = primintrinsic(0,'transform',i@primnum);&lt;br /&gt;
rotate(x, PI*pow(rand(@primnum-666),0.5), r);&lt;br /&gt;
setprimintrinsic(0,'transform',i@primnum,x);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Randomize the Scale of Packed Primitives ==&lt;br /&gt;
Update the transform intrinsic to a apply a random scale&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector s = rand(i@primnum);&lt;br /&gt;
s = s.yyy;  // Uniform Scale&lt;br /&gt;
matrix3 x = primintrinsic(0,'transform',i@primnum);&lt;br /&gt;
scale(x, s);&lt;br /&gt;
setprimintrinsic(0,'transform',i@primnum,x);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Random Color from Normal Direction ==&lt;br /&gt;
Generate random colors based on the surface normal, adjust the multiplier to control the amount of colors&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = rand(rint(v@N*8));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Iterative Face Insetting ==&lt;br /&gt;
Recursive divide and inset edges, [https://twitter.com/d_gfx/status/1452718124579520512 via @d_gfx], excellent use of [https://www.sidefx.com/docs/houdini/vex/arrays.html arrays]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int pts[] = primpoints(0,@primnum); vector pos[];&lt;br /&gt;
int edge_div_pts[]; vector edge_div_pos[];&lt;br /&gt;
foreach( int pt; pts ) &lt;br /&gt;
    append(pos, vector(point(0,'P',pt)));&lt;br /&gt;
for( int i = 0; i &amp;lt; chi('iterations'); i++ )    {&lt;br /&gt;
    resize(edge_div_pts,0); // empty&lt;br /&gt;
    resize(edge_div_pos,0); // empty&lt;br /&gt;
    for( int j = 0; j &amp;lt; len(pts); j++ ) {&lt;br /&gt;
        append(edge_div_pos, lerp( pos[j], pos[(j+1)%len(pts)], chf('div_ratio') ));&lt;br /&gt;
        append(edge_div_pts, addpoint(0, edge_div_pos[-1])); // [-1] grabs the last item from an array&lt;br /&gt;
    }&lt;br /&gt;
    for (int k = 0; k &amp;lt; len(pts); k++ ) {&lt;br /&gt;
        addprim(0, 'poly', pts[k], edge_div_pts[k], edge_div_pts[(k+2)%len(pts)]);&lt;br /&gt;
    }&lt;br /&gt;
    pts = edge_div_pts;&lt;br /&gt;
    pos = edge_div_pos;&lt;br /&gt;
}&lt;br /&gt;
addprim(0, 'poly', edge_div_pts);&lt;br /&gt;
removeprim(0,@primnum,1); // Remove the input prim and any points belonging to it&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Iridescent Color Function ==&lt;br /&gt;
[[File:vex_iridescent.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Produce an iridescent color ramp from any varying value, [https://www.shadertoy.com/view/XlcBR7 from shadertoy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_iridescent.hiplc|vex_iridescent.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float amt = dot(@N, set(0,1,0))*0.5+0.5;&lt;br /&gt;
v@Cd =  (0.5 + 0.5 * cos( PI*2*( amt + set(0,1,2)/3) ) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rainbow Colors from HSV Colorspace ==&lt;br /&gt;
[[File:vex_hsvtorgb_rainbow_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can easily control the hue, while keeping the saturation and value the same using the [https://www.sidefx.com/docs/houdini/vex/functions/hsvtorgb.html hsvtorgb] function.&lt;br /&gt;
&lt;br /&gt;
This allows you to easily create rainbows, gradients, perform hue rotations and produce complimentary colors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_hsvtorgb_rainbow_001.hiplc|vex_hsvtorgb_rainbow_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = hsvtorgb( set(relbbox(0,@P).z - @Time/5 + dot(@N,set(0,1,0))/2, 1, 1));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rainbow Cycle with frac function ==&lt;br /&gt;
[[File:rainbow_cycle_w_frac_VEX.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using the [https://www.sidefx.com/docs/houdini/vex/functions/frac.html frac] function, you can cycle through a rainbow over a desired amount of elements.&lt;br /&gt;
&lt;br /&gt;
This is then offset by adding the current time to the fractional value, which produces the scrolling effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_frac_rainbow_cycle_001.hiplc|vex_frac_rainbow_cycle_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = hsvtorgb(set(frac(@elemnum/8.0)+@Time/10, 1, 1));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Loop Over All Attributes ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
string pt_attrs[] = detailintrinsic(1,'pointattributes');&lt;br /&gt;
foreach( string pt_attr; pt_attrs ) {&lt;br /&gt;
    if( pt_attr ~= 'attr_name*' ) {&lt;br /&gt;
        setpointgroup(0, pt_attr, @ptnum, 1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remove Faces Across Bounding Box ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
if( relbbox(0,@P).x &amp;lt; rand(@primnum) )&lt;br /&gt;
    removeprim(0,@primnum,1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torus Knot ==&lt;br /&gt;
[[File:vex_torus_knot_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
[https://prideout.net/knotgl/ Online Knot Viewer]&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_torus_knot_001.hiplc|vex_torus_knot_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float u = float(@ptnum)/(@numpt-1);&lt;br /&gt;
u += @Time/10.0;&lt;br /&gt;
u %= 1.0;&lt;br /&gt;
u *= PI * 2;&lt;br /&gt;
float r = 2.0;&lt;br /&gt;
float q = 2;&lt;br /&gt;
float p = 3;&lt;br /&gt;
f@u = u;&lt;br /&gt;
@P.x += cos(u*q) * (cos(u*p)+r);&lt;br /&gt;
@P.y += sin(u*q) * (cos(u*p)+r);&lt;br /&gt;
@P.z += sin(u*p);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remap Grid to Circle ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_map_grid_to_circle.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Working with polar coordinates to map a square onto a circle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_map_grid_to_circle.hiplc|vex_map_grid_to_circle.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {0.5, 0.5, 0}; // Remap the grid to zero to one range&lt;br /&gt;
float theta = @P.x;&lt;br /&gt;
float radius = @P.y/2;&lt;br /&gt;
@P = 0;&lt;br /&gt;
@P.x = sin(theta*PI*2 ) * radius;&lt;br /&gt;
@P.y = cos(theta*PI*2 ) * radius;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remap Grid to Sphere ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_map_grid_to_sphere.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Working with polar coordinates to map a square onto a sphere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_map_grid_to_sphere.hiplc|vex_map_grid_to_sphere.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {0.5, 0.5, 0}; // Remap the grid to zero to one range&lt;br /&gt;
float phi = @P.x;&lt;br /&gt;
float theta = 1.0-@P.y;&lt;br /&gt;
@P.x = sin(theta*PI*1 ) * cos(phi*PI*2 )/2;&lt;br /&gt;
@P.z = sin(theta*PI*1 ) * sin(phi*PI*2 )/2;&lt;br /&gt;
@P.y = cos(theta*PI*1 )/2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Quad ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int prim = addprim(0,'poly');&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(0,0,0)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(1,0,0)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(1,0,1)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(0,0,1)) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Grid ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
for(int i = 0; i&amp;lt;8; i++)    {&lt;br /&gt;
    for(int j = 0; j&amp;lt;8; j++)    {&lt;br /&gt;
        int prim = addprim(0,'poly');&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i,0,j)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i+1,0,j)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i+1,0,j+1)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i,0,j+1)) );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Circle ==&lt;br /&gt;
[[File:vex_make_circle.gif | 300px | right]]&lt;br /&gt;
&lt;br /&gt;
This example shows how you can generate a circle or N sided polygon using a for loop, sin and cos.&lt;br /&gt;
&lt;br /&gt;
Run the code in detail mode with an attribute wrangle.&lt;br /&gt;
&lt;br /&gt;
This is essentially the same idea as the [https://www.sidefx.com/docs/houdini/nodes/sop/circle.html circle] node but hopefully a beneficial example to see how this type of geometry is generated via VEX.&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_make_circle_001.hiplc|vex_make_circle_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int prim = addprim(0,'poly');&lt;br /&gt;
int seg = chi('segments');&lt;br /&gt;
for( int i = 0; i&amp;lt;seg; i++ )  {&lt;br /&gt;
    float u = float(i)/seg * 2*PI;&lt;br /&gt;
    addvertex(0, prim, addpoint(0, set(sin(u),0,cos(u))) );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Groups to Attribute ==&lt;br /&gt;
[https://zybrand.xyz/groups-to-attribute-with-vex From zybrand]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
//convert numbered groups to a numbered attribute&lt;br /&gt;
string groups[] = detailintrinsic(0, &amp;quot;primitivegroups&amp;quot;);&lt;br /&gt;
int prim = @primnum;&lt;br /&gt;
string elemnum;&lt;br /&gt;
&lt;br /&gt;
foreach(string i; groups)&lt;br /&gt;
{&lt;br /&gt;
    //if the current primitive is in group i&lt;br /&gt;
    if(inprimgroup(0,i,prim) == 1)&lt;br /&gt;
    {&lt;br /&gt;
        elemnum = re_find(r&amp;quot;\d{3,6}&amp;quot;,i);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
s@number = elemnum;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Looping Curl Noise ==&lt;br /&gt;
[[File:2022_12_11_looping_curl_noise.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's possible to achieve seamless looping animation from curl noise by blending between two noises.&lt;br /&gt;
&lt;br /&gt;
In this example one noise function is evaluated at the current time, and a second noise function is evaluated at the time shifted back by the desired loop duration.&lt;br /&gt;
&lt;br /&gt;
The result of these two noise functions are blended from one to the other over the duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_looping_noises.hiplc|vex_looping_noises.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Position x Frequency&lt;br /&gt;
vector p = @P*0.5;&lt;br /&gt;
// Speed&lt;br /&gt;
float s = 0.5;&lt;br /&gt;
// Loop Length (in seconds)&lt;br /&gt;
float l = 5;&lt;br /&gt;
// Time % duration&lt;br /&gt;
float t = (@Time%l);&lt;br /&gt;
// Blending&lt;br /&gt;
vector v0 = curlgxnoise(p + set(0,0,0,t*s));&lt;br /&gt;
vector v1 = curlgxnoise(p + set(0,0,0,(t-l)*s));&lt;br /&gt;
@P += lerp(v0,v1,frac(@Time/l)) * 0.35;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Make a Grid ==&lt;br /&gt;
 for(int j = 0; j&amp;lt;4; j++)    {&lt;br /&gt;
    int prim = addprim(0,'poly');&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i,0,j)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i+1,0,j)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i+1,0,j+1)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i,0,j+1)) );&lt;br /&gt;
 }--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=File:vex_torus_knot_001.hiplc&amp;diff=1321</id>
		<title>File:vex torus knot 001.hiplc</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=File:vex_torus_knot_001.hiplc&amp;diff=1321"/>
		<updated>2024-09-01T11:20:59Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=VEX_Wrangle_Snippets&amp;diff=1320</id>
		<title>VEX Wrangle Snippets</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=VEX_Wrangle_Snippets&amp;diff=1320"/>
		<updated>2024-09-01T11:12:00Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Torus Knot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Translate ==&lt;br /&gt;
[[File:vex_offset_position.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
Offset the position of geometry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_offset_position.hiplc|vex_offset_position.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {1, 0, 0};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Taper ==&lt;br /&gt;
[[File:taper_vex_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reduces the circumference by scaling along the XZ plane based on the height of the geometry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:taper_vex_001.hiplc|taper_vex_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float taper = relbbox(0,@P).y;&lt;br /&gt;
// Remap the taper range&lt;br /&gt;
taper = fit01(taper, 1, fit01(sin(@Time*PI/5)*0.5+0.5, 2.5, .5));&lt;br /&gt;
// Apply the taper by scaling along the X and Y axis&lt;br /&gt;
@P *= set(taper,1,taper);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boxify ==&lt;br /&gt;
[[File:vex_boxify_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Distorts the geometry, morphing it into a box shape&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_boxify_001.hiplc|vex_boxify_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
vector size = getbbox_size(0);&lt;br /&gt;
size = min(size); // Largest component&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P *= (1.0/size);&lt;br /&gt;
@P = lerp(@P, @P+clamp(normalize(@P)*1.75,vector(-1),vector(1)) * (1.0-length(max(abs(@P)))), chf('blend'));&lt;br /&gt;
@P *= size;&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spherify ==&lt;br /&gt;
[[File:vex_spherify_001.gif | 340px | right]]&lt;br /&gt;
Distorts the geometry into a sphere shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_spherify_001.hiplc|vex_spherify_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
vector size = getbbox_size(0);&lt;br /&gt;
size = min(size); // Largest component&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P *= (1.0/size);&lt;br /&gt;
@P = lerp(@P, normalize(@P), chf('blend'));&lt;br /&gt;
@P *= size;&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stretch ==&lt;br /&gt;
[[File:vex_stretch_001.gif | 340px | right]]&lt;br /&gt;
Stretch the geometry across it's X axis&lt;br /&gt;
&lt;br /&gt;
Add one component of position to itself to stretch the geometry away from it's center.  You can control the amount of stretching by multiplying the position before adding it to itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_stretch_001.hiplc|vex_stretch_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P.x += @P.x*chf('amt');&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shape Blending ==&lt;br /&gt;
[[File:vex_position_blend.gif | 340px | right]]&lt;br /&gt;
Blend between point attributes to produce a morph effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_position_blend.hiplc|vex_position_blend.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = lerp(@P, @opinput1_P, chf('blend'));&lt;br /&gt;
@N = lerp(@N, @opinput1_N, chf('blend'));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Snap to Grid ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_snap_to_grid.gif | 340px | right]]&lt;br /&gt;
Snap ([https://en.wikipedia.org/wiki/Quantization_(signal_processing) quantize]) point positions to a grid for a downres effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_snap_to_grid.hiplc|File:vex_snap_to_grid.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float grid_scale = chf('grid_scale');&lt;br /&gt;
@P = rint(@P*grid_scale)/grid_scale;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make 2D ==&lt;br /&gt;
[[File:vex_setcomp.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
You can use the setcomp function to zero out a component of a vector, resulting in a two dimensional surface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_setcomp.hiplc|vex_setcomp.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the X component to zero, planar 2D in YZ&lt;br /&gt;
setcomp(@P, 0, 0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the Y component to zero, planar 2D in XZ&lt;br /&gt;
setcomp(@P, 0, 1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the Z component to zero, planar 2D in XY&lt;br /&gt;
setcomp(@P, 0, 2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Swizzle Coordinate System ==&lt;br /&gt;
[[File:vex_swizzle_vector_components.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
Shuffle the components of a vector using [https://www.sidefx.com/docs/houdini/vex/lang.html#dot-operator swizzle]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_swizzle_vector_components.hiplc|vex_swizzle_vector_components.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = @P.zyx;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Switch between Y up and Z up coordinates using [https://www.sidefx.com/docs/houdini/vex/lang.html#dot-operator swizzle]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = @P.xzy * set(-1,1,1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Twirl ==&lt;br /&gt;
[[File:vex_twirl.gif | 340px | right]]&lt;br /&gt;
Twirl the geometry around the Y axis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_twirl.hiplc|vex_twirl.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
float u = atan2(@P.x, @P.z);&lt;br /&gt;
float r = length(@P * {1, 0, 1});&lt;br /&gt;
@P = set(sin(u-a), @P.y, cos(u-a)) * set(r,1,r);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float angle = chf('angle');&lt;br /&gt;
vector origin = set(0,0,0);&lt;br /&gt;
&lt;br /&gt;
vector d = v@P*set(1,0,1) - origin;&lt;br /&gt;
float r = length(d);&lt;br /&gt;
r = pow(r, chf('pow'));&lt;br /&gt;
float beta = atan(d.x, d.z) + radians(angle) * r;&lt;br /&gt;
v@P = origin + r * set(sin(beta), 0, cos(beta)) + set(0,@P.y,0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
alt&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float angle = @P.y*900;&lt;br /&gt;
vector origin = set(0,0,0);&lt;br /&gt;
&lt;br /&gt;
vector d = v@P*set(1,0,1) - origin;&lt;br /&gt;
float r = length(d);&lt;br /&gt;
float beta = atan(d.x, d.z) + radians(angle);&lt;br /&gt;
v@P = origin + r * set(sin(beta), 0, cos(beta)) + set(0,@P.y,0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
vector pos = @P;&lt;br /&gt;
pos.x = (@P.x * cos(a)) - (@P.z * sin(a));&lt;br /&gt;
pos.y = @P.y;&lt;br /&gt;
pos.z = (@P.x * sin(a)) + (@P.z * cos(a));&lt;br /&gt;
@P = pos;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
@P = set( (@P.x * cos(a)) - (@P.z * sin(a)), @P.y, (@P.x * sin(a)) + (@P.z * cos(a)) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
vector pos = @P;&lt;br /&gt;
float u = atan2(pos.x, pos.z);&lt;br /&gt;
float r = length(pos * {1, 0, 1});&lt;br /&gt;
pos = set(sin(u-a), pos.y, cos(u-a)) * r;&lt;br /&gt;
pos.y = @P.y;&lt;br /&gt;
@P = pos;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
float u = atan2(@P.x, @P.z);&lt;br /&gt;
float r = length(@P * {1, 0, 1});&lt;br /&gt;
@P = set(sin(u-a), @P.y, cos(u-a)) * r;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Peak ==&lt;br /&gt;
[[File:vex_push_surface_along_normals.gif | 340px | right]]&lt;br /&gt;
Move the surface along it's normals, producing an inflation effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_push_surface_along_normals.hip|vex_push_surface_along_normals.hip]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += normalize(@P) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploded View ==&lt;br /&gt;
[[File:vex_exploded_view.gif | 340px | right]]&lt;br /&gt;
Moves each packed piece outward from the geometry centroid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_exploded_view.hiplc|vex_exploded_view.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += (@P - getbbox_center(0)) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Point Jitter ==&lt;br /&gt;
[[File:vex_point_jitter.gif | 340px | right]]&lt;br /&gt;
Move each point in a random direction with a spherical distribution&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_point_jitter.hip|vex_point_jitter.hip]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += sample_sphere_uniform(rand(@elemnum+chf('seed'))) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plexus Effect ==&lt;br /&gt;
[[File:vex_plexus.gif | 340px | right]]&lt;br /&gt;
Connect nearby points&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_plexus.hiplc|vex_plexus.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
foreach(int pt; nearpoints(0, @P, 0.15, 10))    {&lt;br /&gt;
    if(pt &amp;gt; @ptnum)&lt;br /&gt;
        addprim(0, 'polyline', @ptnum, pt);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect to Nearest Point ==&lt;br /&gt;
Draw a line to the closest point of the second input&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
addprim(0, 'polyline', @ptnum, addpoint(0, vector(point(1,'P',nearpoint(1,@P)))) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect to Closest Surface Position ==&lt;br /&gt;
Draw a line to the closest surface position&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
addprim(0, 'polyline', @ptnum, addpoint(0, minpos(1,@P) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Randomize the Rotation of Packed Primitives ==&lt;br /&gt;
Update the transform intrinsic to a random orientation&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector r = sample_direction_uniform(rand(@primnum));&lt;br /&gt;
matrix3 x = primintrinsic(0,'transform',i@primnum);&lt;br /&gt;
rotate(x, PI*pow(rand(@primnum-666),0.5), r);&lt;br /&gt;
setprimintrinsic(0,'transform',i@primnum,x);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Randomize the Scale of Packed Primitives ==&lt;br /&gt;
Update the transform intrinsic to a apply a random scale&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector s = rand(i@primnum);&lt;br /&gt;
s = s.yyy;  // Uniform Scale&lt;br /&gt;
matrix3 x = primintrinsic(0,'transform',i@primnum);&lt;br /&gt;
scale(x, s);&lt;br /&gt;
setprimintrinsic(0,'transform',i@primnum,x);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Random Color from Normal Direction ==&lt;br /&gt;
Generate random colors based on the surface normal, adjust the multiplier to control the amount of colors&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = rand(rint(v@N*8));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Iterative Face Insetting ==&lt;br /&gt;
Recursive divide and inset edges, [https://twitter.com/d_gfx/status/1452718124579520512 via @d_gfx], excellent use of [https://www.sidefx.com/docs/houdini/vex/arrays.html arrays]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int pts[] = primpoints(0,@primnum); vector pos[];&lt;br /&gt;
int edge_div_pts[]; vector edge_div_pos[];&lt;br /&gt;
foreach( int pt; pts ) &lt;br /&gt;
    append(pos, vector(point(0,'P',pt)));&lt;br /&gt;
for( int i = 0; i &amp;lt; chi('iterations'); i++ )    {&lt;br /&gt;
    resize(edge_div_pts,0); // empty&lt;br /&gt;
    resize(edge_div_pos,0); // empty&lt;br /&gt;
    for( int j = 0; j &amp;lt; len(pts); j++ ) {&lt;br /&gt;
        append(edge_div_pos, lerp( pos[j], pos[(j+1)%len(pts)], chf('div_ratio') ));&lt;br /&gt;
        append(edge_div_pts, addpoint(0, edge_div_pos[-1])); // [-1] grabs the last item from an array&lt;br /&gt;
    }&lt;br /&gt;
    for (int k = 0; k &amp;lt; len(pts); k++ ) {&lt;br /&gt;
        addprim(0, 'poly', pts[k], edge_div_pts[k], edge_div_pts[(k+2)%len(pts)]);&lt;br /&gt;
    }&lt;br /&gt;
    pts = edge_div_pts;&lt;br /&gt;
    pos = edge_div_pos;&lt;br /&gt;
}&lt;br /&gt;
addprim(0, 'poly', edge_div_pts);&lt;br /&gt;
removeprim(0,@primnum,1); // Remove the input prim and any points belonging to it&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Iridescent Color Function ==&lt;br /&gt;
[[File:vex_iridescent.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Produce an iridescent color ramp from any varying value, [https://www.shadertoy.com/view/XlcBR7 from shadertoy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_iridescent.hiplc|vex_iridescent.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float amt = dot(@N, set(0,1,0))*0.5+0.5;&lt;br /&gt;
v@Cd =  (0.5 + 0.5 * cos( PI*2*( amt + set(0,1,2)/3) ) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rainbow Colors from HSV Colorspace ==&lt;br /&gt;
[[File:vex_hsvtorgb_rainbow_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can easily control the hue, while keeping the saturation and value the same using the [https://www.sidefx.com/docs/houdini/vex/functions/hsvtorgb.html hsvtorgb] function.&lt;br /&gt;
&lt;br /&gt;
This allows you to easily create rainbows, gradients, perform hue rotations and produce complimentary colors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_hsvtorgb_rainbow_001.hiplc|vex_hsvtorgb_rainbow_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = hsvtorgb( set(relbbox(0,@P).z - @Time/5 + dot(@N,set(0,1,0))/2, 1, 1));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rainbow Cycle with frac function ==&lt;br /&gt;
[[File:rainbow_cycle_w_frac_VEX.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using the [https://www.sidefx.com/docs/houdini/vex/functions/frac.html frac] function, you can cycle through a rainbow over a desired amount of elements.&lt;br /&gt;
&lt;br /&gt;
This is then offset by adding the current time to the fractional value, which produces the scrolling effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_frac_rainbow_cycle_001.hiplc|vex_frac_rainbow_cycle_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = hsvtorgb(set(frac(@elemnum/8.0)+@Time/10, 1, 1));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Loop Over All Attributes ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
string pt_attrs[] = detailintrinsic(1,'pointattributes');&lt;br /&gt;
foreach( string pt_attr; pt_attrs ) {&lt;br /&gt;
    if( pt_attr ~= 'attr_name*' ) {&lt;br /&gt;
        setpointgroup(0, pt_attr, @ptnum, 1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remove Faces Across Bounding Box ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
if( relbbox(0,@P).x &amp;lt; rand(@primnum) )&lt;br /&gt;
    removeprim(0,@primnum,1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torus Knot ==&lt;br /&gt;
[[File:vex_torus_knot_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
[https://prideout.net/knotgl/ Online Knot Viewer]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float u = float(@ptnum)/(@numpt-1);&lt;br /&gt;
u += @Time/10.0;&lt;br /&gt;
u %= 1.0;&lt;br /&gt;
u *= PI * 2;&lt;br /&gt;
float r = 2.0;&lt;br /&gt;
float q = 2;&lt;br /&gt;
float p = 3;&lt;br /&gt;
f@u = u;&lt;br /&gt;
@P.x += cos(u*q) * (cos(u*p)+r);&lt;br /&gt;
@P.y += sin(u*q) * (cos(u*p)+r);&lt;br /&gt;
@P.z += sin(u*p);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remap Grid to Circle ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_map_grid_to_circle.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Working with polar coordinates to map a square onto a circle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_map_grid_to_circle.hiplc|vex_map_grid_to_circle.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {0.5, 0.5, 0}; // Remap the grid to zero to one range&lt;br /&gt;
float theta = @P.x;&lt;br /&gt;
float radius = @P.y/2;&lt;br /&gt;
@P = 0;&lt;br /&gt;
@P.x = sin(theta*PI*2 ) * radius;&lt;br /&gt;
@P.y = cos(theta*PI*2 ) * radius;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remap Grid to Sphere ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_map_grid_to_sphere.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Working with polar coordinates to map a square onto a sphere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_map_grid_to_sphere.hiplc|vex_map_grid_to_sphere.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {0.5, 0.5, 0}; // Remap the grid to zero to one range&lt;br /&gt;
float phi = @P.x;&lt;br /&gt;
float theta = 1.0-@P.y;&lt;br /&gt;
@P.x = sin(theta*PI*1 ) * cos(phi*PI*2 )/2;&lt;br /&gt;
@P.z = sin(theta*PI*1 ) * sin(phi*PI*2 )/2;&lt;br /&gt;
@P.y = cos(theta*PI*1 )/2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Quad ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int prim = addprim(0,'poly');&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(0,0,0)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(1,0,0)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(1,0,1)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(0,0,1)) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Grid ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
for(int i = 0; i&amp;lt;8; i++)    {&lt;br /&gt;
    for(int j = 0; j&amp;lt;8; j++)    {&lt;br /&gt;
        int prim = addprim(0,'poly');&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i,0,j)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i+1,0,j)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i+1,0,j+1)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i,0,j+1)) );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Circle ==&lt;br /&gt;
[[File:vex_make_circle.gif | 300px | right]]&lt;br /&gt;
&lt;br /&gt;
This example shows how you can generate a circle or N sided polygon using a for loop, sin and cos.&lt;br /&gt;
&lt;br /&gt;
Run the code in detail mode with an attribute wrangle.&lt;br /&gt;
&lt;br /&gt;
This is essentially the same idea as the [https://www.sidefx.com/docs/houdini/nodes/sop/circle.html circle] node but hopefully a beneficial example to see how this type of geometry is generated via VEX.&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_make_circle_001.hiplc|vex_make_circle_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int prim = addprim(0,'poly');&lt;br /&gt;
int seg = chi('segments');&lt;br /&gt;
for( int i = 0; i&amp;lt;seg; i++ )  {&lt;br /&gt;
    float u = float(i)/seg * 2*PI;&lt;br /&gt;
    addvertex(0, prim, addpoint(0, set(sin(u),0,cos(u))) );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Groups to Attribute ==&lt;br /&gt;
[https://zybrand.xyz/groups-to-attribute-with-vex From zybrand]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
//convert numbered groups to a numbered attribute&lt;br /&gt;
string groups[] = detailintrinsic(0, &amp;quot;primitivegroups&amp;quot;);&lt;br /&gt;
int prim = @primnum;&lt;br /&gt;
string elemnum;&lt;br /&gt;
&lt;br /&gt;
foreach(string i; groups)&lt;br /&gt;
{&lt;br /&gt;
    //if the current primitive is in group i&lt;br /&gt;
    if(inprimgroup(0,i,prim) == 1)&lt;br /&gt;
    {&lt;br /&gt;
        elemnum = re_find(r&amp;quot;\d{3,6}&amp;quot;,i);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
s@number = elemnum;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Looping Curl Noise ==&lt;br /&gt;
[[File:2022_12_11_looping_curl_noise.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's possible to achieve seamless looping animation from curl noise by blending between two noises.&lt;br /&gt;
&lt;br /&gt;
In this example one noise function is evaluated at the current time, and a second noise function is evaluated at the time shifted back by the desired loop duration.&lt;br /&gt;
&lt;br /&gt;
The result of these two noise functions are blended from one to the other over the duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_looping_noises.hiplc|vex_looping_noises.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Position x Frequency&lt;br /&gt;
vector p = @P*0.5;&lt;br /&gt;
// Speed&lt;br /&gt;
float s = 0.5;&lt;br /&gt;
// Loop Length (in seconds)&lt;br /&gt;
float l = 5;&lt;br /&gt;
// Time % duration&lt;br /&gt;
float t = (@Time%l);&lt;br /&gt;
// Blending&lt;br /&gt;
vector v0 = curlgxnoise(p + set(0,0,0,t*s));&lt;br /&gt;
vector v1 = curlgxnoise(p + set(0,0,0,(t-l)*s));&lt;br /&gt;
@P += lerp(v0,v1,frac(@Time/l)) * 0.35;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Make a Grid ==&lt;br /&gt;
 for(int j = 0; j&amp;lt;4; j++)    {&lt;br /&gt;
    int prim = addprim(0,'poly');&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i,0,j)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i+1,0,j)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i+1,0,j+1)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i,0,j+1)) );&lt;br /&gt;
 }--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=VEX_Wrangle_Snippets&amp;diff=1319</id>
		<title>VEX Wrangle Snippets</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=VEX_Wrangle_Snippets&amp;diff=1319"/>
		<updated>2024-09-01T11:11:40Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Torus Knot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Translate ==&lt;br /&gt;
[[File:vex_offset_position.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
Offset the position of geometry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_offset_position.hiplc|vex_offset_position.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {1, 0, 0};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Taper ==&lt;br /&gt;
[[File:taper_vex_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reduces the circumference by scaling along the XZ plane based on the height of the geometry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:taper_vex_001.hiplc|taper_vex_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float taper = relbbox(0,@P).y;&lt;br /&gt;
// Remap the taper range&lt;br /&gt;
taper = fit01(taper, 1, fit01(sin(@Time*PI/5)*0.5+0.5, 2.5, .5));&lt;br /&gt;
// Apply the taper by scaling along the X and Y axis&lt;br /&gt;
@P *= set(taper,1,taper);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boxify ==&lt;br /&gt;
[[File:vex_boxify_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Distorts the geometry, morphing it into a box shape&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_boxify_001.hiplc|vex_boxify_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
vector size = getbbox_size(0);&lt;br /&gt;
size = min(size); // Largest component&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P *= (1.0/size);&lt;br /&gt;
@P = lerp(@P, @P+clamp(normalize(@P)*1.75,vector(-1),vector(1)) * (1.0-length(max(abs(@P)))), chf('blend'));&lt;br /&gt;
@P *= size;&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spherify ==&lt;br /&gt;
[[File:vex_spherify_001.gif | 340px | right]]&lt;br /&gt;
Distorts the geometry into a sphere shape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_spherify_001.hiplc|vex_spherify_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
vector size = getbbox_size(0);&lt;br /&gt;
size = min(size); // Largest component&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P *= (1.0/size);&lt;br /&gt;
@P = lerp(@P, normalize(@P), chf('blend'));&lt;br /&gt;
@P *= size;&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stretch ==&lt;br /&gt;
[[File:vex_stretch_001.gif | 340px | right]]&lt;br /&gt;
Stretch the geometry across it's X axis&lt;br /&gt;
&lt;br /&gt;
Add one component of position to itself to stretch the geometry away from it's center.  You can control the amount of stretching by multiplying the position before adding it to itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_stretch_001.hiplc|vex_stretch_001.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector centroid = getbbox_center(0);&lt;br /&gt;
@P -= centroid;&lt;br /&gt;
@P.x += @P.x*chf('amt');&lt;br /&gt;
@P += centroid;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Shape Blending ==&lt;br /&gt;
[[File:vex_position_blend.gif | 340px | right]]&lt;br /&gt;
Blend between point attributes to produce a morph effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_position_blend.hiplc|vex_position_blend.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = lerp(@P, @opinput1_P, chf('blend'));&lt;br /&gt;
@N = lerp(@N, @opinput1_N, chf('blend'));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Snap to Grid ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_snap_to_grid.gif | 340px | right]]&lt;br /&gt;
Snap ([https://en.wikipedia.org/wiki/Quantization_(signal_processing) quantize]) point positions to a grid for a downres effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_snap_to_grid.hiplc|File:vex_snap_to_grid.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float grid_scale = chf('grid_scale');&lt;br /&gt;
@P = rint(@P*grid_scale)/grid_scale;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make 2D ==&lt;br /&gt;
[[File:vex_setcomp.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
You can use the setcomp function to zero out a component of a vector, resulting in a two dimensional surface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_setcomp.hiplc|vex_setcomp.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the X component to zero, planar 2D in YZ&lt;br /&gt;
setcomp(@P, 0, 0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the Y component to zero, planar 2D in XZ&lt;br /&gt;
setcomp(@P, 0, 1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Set the Z component to zero, planar 2D in XY&lt;br /&gt;
setcomp(@P, 0, 2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Swizzle Coordinate System ==&lt;br /&gt;
[[File:vex_swizzle_vector_components.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
Shuffle the components of a vector using [https://www.sidefx.com/docs/houdini/vex/lang.html#dot-operator swizzle]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_swizzle_vector_components.hiplc|vex_swizzle_vector_components.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = @P.zyx;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Switch between Y up and Z up coordinates using [https://www.sidefx.com/docs/houdini/vex/lang.html#dot-operator swizzle]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P = @P.xzy * set(-1,1,1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Twirl ==&lt;br /&gt;
[[File:vex_twirl.gif | 340px | right]]&lt;br /&gt;
Twirl the geometry around the Y axis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_twirl.hiplc|vex_twirl.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
float u = atan2(@P.x, @P.z);&lt;br /&gt;
float r = length(@P * {1, 0, 1});&lt;br /&gt;
@P = set(sin(u-a), @P.y, cos(u-a)) * set(r,1,r);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float angle = chf('angle');&lt;br /&gt;
vector origin = set(0,0,0);&lt;br /&gt;
&lt;br /&gt;
vector d = v@P*set(1,0,1) - origin;&lt;br /&gt;
float r = length(d);&lt;br /&gt;
r = pow(r, chf('pow'));&lt;br /&gt;
float beta = atan(d.x, d.z) + radians(angle) * r;&lt;br /&gt;
v@P = origin + r * set(sin(beta), 0, cos(beta)) + set(0,@P.y,0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
alt&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float angle = @P.y*900;&lt;br /&gt;
vector origin = set(0,0,0);&lt;br /&gt;
&lt;br /&gt;
vector d = v@P*set(1,0,1) - origin;&lt;br /&gt;
float r = length(d);&lt;br /&gt;
float beta = atan(d.x, d.z) + radians(angle);&lt;br /&gt;
v@P = origin + r * set(sin(beta), 0, cos(beta)) + set(0,@P.y,0);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
vector pos = @P;&lt;br /&gt;
pos.x = (@P.x * cos(a)) - (@P.z * sin(a));&lt;br /&gt;
pos.y = @P.y;&lt;br /&gt;
pos.z = (@P.x * sin(a)) + (@P.z * cos(a));&lt;br /&gt;
@P = pos;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
@P = set( (@P.x * cos(a)) - (@P.z * sin(a)), @P.y, (@P.x * sin(a)) + (@P.z * cos(a)) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
vector pos = @P;&lt;br /&gt;
float u = atan2(pos.x, pos.z);&lt;br /&gt;
float r = length(pos * {1, 0, 1});&lt;br /&gt;
pos = set(sin(u-a), pos.y, cos(u-a)) * r;&lt;br /&gt;
pos.y = @P.y;&lt;br /&gt;
@P = pos;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float a = chf('angle') * length(@P * {1, 0, 1});&lt;br /&gt;
float u = atan2(@P.x, @P.z);&lt;br /&gt;
float r = length(@P * {1, 0, 1});&lt;br /&gt;
@P = set(sin(u-a), @P.y, cos(u-a)) * r;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Peak ==&lt;br /&gt;
[[File:vex_push_surface_along_normals.gif | 340px | right]]&lt;br /&gt;
Move the surface along it's normals, producing an inflation effect&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_push_surface_along_normals.hip|vex_push_surface_along_normals.hip]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += normalize(@P) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploded View ==&lt;br /&gt;
[[File:vex_exploded_view.gif | 340px | right]]&lt;br /&gt;
Moves each packed piece outward from the geometry centroid&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_exploded_view.hiplc|vex_exploded_view.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += (@P - getbbox_center(0)) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Point Jitter ==&lt;br /&gt;
[[File:vex_point_jitter.gif | 340px | right]]&lt;br /&gt;
Move each point in a random direction with a spherical distribution&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_point_jitter.hip|vex_point_jitter.hip]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += sample_sphere_uniform(rand(@elemnum+chf('seed'))) * chf('scale');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Plexus Effect ==&lt;br /&gt;
[[File:vex_plexus.gif | 340px | right]]&lt;br /&gt;
Connect nearby points&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_plexus.hiplc|vex_plexus.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
foreach(int pt; nearpoints(0, @P, 0.15, 10))    {&lt;br /&gt;
    if(pt &amp;gt; @ptnum)&lt;br /&gt;
        addprim(0, 'polyline', @ptnum, pt);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect to Nearest Point ==&lt;br /&gt;
Draw a line to the closest point of the second input&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
addprim(0, 'polyline', @ptnum, addpoint(0, vector(point(1,'P',nearpoint(1,@P)))) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connect to Closest Surface Position ==&lt;br /&gt;
Draw a line to the closest surface position&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
addprim(0, 'polyline', @ptnum, addpoint(0, minpos(1,@P) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Randomize the Rotation of Packed Primitives ==&lt;br /&gt;
Update the transform intrinsic to a random orientation&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector r = sample_direction_uniform(rand(@primnum));&lt;br /&gt;
matrix3 x = primintrinsic(0,'transform',i@primnum);&lt;br /&gt;
rotate(x, PI*pow(rand(@primnum-666),0.5), r);&lt;br /&gt;
setprimintrinsic(0,'transform',i@primnum,x);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Randomize the Scale of Packed Primitives ==&lt;br /&gt;
Update the transform intrinsic to a apply a random scale&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
vector s = rand(i@primnum);&lt;br /&gt;
s = s.yyy;  // Uniform Scale&lt;br /&gt;
matrix3 x = primintrinsic(0,'transform',i@primnum);&lt;br /&gt;
scale(x, s);&lt;br /&gt;
setprimintrinsic(0,'transform',i@primnum,x);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Random Color from Normal Direction ==&lt;br /&gt;
Generate random colors based on the surface normal, adjust the multiplier to control the amount of colors&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = rand(rint(v@N*8));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Iterative Face Insetting ==&lt;br /&gt;
Recursive divide and inset edges, [https://twitter.com/d_gfx/status/1452718124579520512 via @d_gfx], excellent use of [https://www.sidefx.com/docs/houdini/vex/arrays.html arrays]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int pts[] = primpoints(0,@primnum); vector pos[];&lt;br /&gt;
int edge_div_pts[]; vector edge_div_pos[];&lt;br /&gt;
foreach( int pt; pts ) &lt;br /&gt;
    append(pos, vector(point(0,'P',pt)));&lt;br /&gt;
for( int i = 0; i &amp;lt; chi('iterations'); i++ )    {&lt;br /&gt;
    resize(edge_div_pts,0); // empty&lt;br /&gt;
    resize(edge_div_pos,0); // empty&lt;br /&gt;
    for( int j = 0; j &amp;lt; len(pts); j++ ) {&lt;br /&gt;
        append(edge_div_pos, lerp( pos[j], pos[(j+1)%len(pts)], chf('div_ratio') ));&lt;br /&gt;
        append(edge_div_pts, addpoint(0, edge_div_pos[-1])); // [-1] grabs the last item from an array&lt;br /&gt;
    }&lt;br /&gt;
    for (int k = 0; k &amp;lt; len(pts); k++ ) {&lt;br /&gt;
        addprim(0, 'poly', pts[k], edge_div_pts[k], edge_div_pts[(k+2)%len(pts)]);&lt;br /&gt;
    }&lt;br /&gt;
    pts = edge_div_pts;&lt;br /&gt;
    pos = edge_div_pos;&lt;br /&gt;
}&lt;br /&gt;
addprim(0, 'poly', edge_div_pts);&lt;br /&gt;
removeprim(0,@primnum,1); // Remove the input prim and any points belonging to it&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Iridescent Color Function ==&lt;br /&gt;
[[File:vex_iridescent.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Produce an iridescent color ramp from any varying value, [https://www.shadertoy.com/view/XlcBR7 from shadertoy]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_iridescent.hiplc|vex_iridescent.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float amt = dot(@N, set(0,1,0))*0.5+0.5;&lt;br /&gt;
v@Cd =  (0.5 + 0.5 * cos( PI*2*( amt + set(0,1,2)/3) ) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rainbow Colors from HSV Colorspace ==&lt;br /&gt;
[[File:vex_hsvtorgb_rainbow_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can easily control the hue, while keeping the saturation and value the same using the [https://www.sidefx.com/docs/houdini/vex/functions/hsvtorgb.html hsvtorgb] function.&lt;br /&gt;
&lt;br /&gt;
This allows you to easily create rainbows, gradients, perform hue rotations and produce complimentary colors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_hsvtorgb_rainbow_001.hiplc|vex_hsvtorgb_rainbow_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = hsvtorgb( set(relbbox(0,@P).z - @Time/5 + dot(@N,set(0,1,0))/2, 1, 1));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rainbow Cycle with frac function ==&lt;br /&gt;
[[File:rainbow_cycle_w_frac_VEX.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using the [https://www.sidefx.com/docs/houdini/vex/functions/frac.html frac] function, you can cycle through a rainbow over a desired amount of elements.&lt;br /&gt;
&lt;br /&gt;
This is then offset by adding the current time to the fractional value, which produces the scrolling effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_frac_rainbow_cycle_001.hiplc|vex_frac_rainbow_cycle_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
v@Cd = hsvtorgb(set(frac(@elemnum/8.0)+@Time/10, 1, 1));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Loop Over All Attributes ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
string pt_attrs[] = detailintrinsic(1,'pointattributes');&lt;br /&gt;
foreach( string pt_attr; pt_attrs ) {&lt;br /&gt;
    if( pt_attr ~= 'attr_name*' ) {&lt;br /&gt;
        setpointgroup(0, pt_attr, @ptnum, 1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remove Faces Across Bounding Box ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
if( relbbox(0,@P).x &amp;lt; rand(@primnum) )&lt;br /&gt;
    removeprim(0,@primnum,1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Torus Knot ==&lt;br /&gt;
[[File:vex_torus_knot_001.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
[https://prideout.net/knotgl/ Online Knot Viewer]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
float u = float(@ptnum)/(@numpt-1);&lt;br /&gt;
u += @Time/10.0;&lt;br /&gt;
u %= 1.0;&lt;br /&gt;
u *= PI * 2;&lt;br /&gt;
float r = 2.0;&lt;br /&gt;
float q = 2;&lt;br /&gt;
float p = 3;&lt;br /&gt;
f@u = u;&lt;br /&gt;
@P.x += cos(u*q) * (cos(u*p)+r);&lt;br /&gt;
@P.y += sin(u*q) * (cos(u*p)+r);&lt;br /&gt;
@P.z += sin(u*p);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remap Grid to Circle ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_map_grid_to_circle.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Working with polar coordinates to map a square onto a circle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_map_grid_to_circle.hiplc|vex_map_grid_to_circle.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {0.5, 0.5, 0}; // Remap the grid to zero to one range&lt;br /&gt;
float theta = @P.x;&lt;br /&gt;
float radius = @P.y/2;&lt;br /&gt;
@P = 0;&lt;br /&gt;
@P.x = sin(theta*PI*2 ) * radius;&lt;br /&gt;
@P.y = cos(theta*PI*2 ) * radius;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Remap Grid to Sphere ==&lt;br /&gt;
&lt;br /&gt;
[[File:vex_map_grid_to_sphere.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Working with polar coordinates to map a square onto a sphere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_map_grid_to_sphere.hiplc|vex_map_grid_to_sphere.hiplc]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
@P += {0.5, 0.5, 0}; // Remap the grid to zero to one range&lt;br /&gt;
float phi = @P.x;&lt;br /&gt;
float theta = 1.0-@P.y;&lt;br /&gt;
@P.x = sin(theta*PI*1 ) * cos(phi*PI*2 )/2;&lt;br /&gt;
@P.z = sin(theta*PI*1 ) * sin(phi*PI*2 )/2;&lt;br /&gt;
@P.y = cos(theta*PI*1 )/2;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Quad ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int prim = addprim(0,'poly');&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(0,0,0)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(1,0,0)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(1,0,1)) );&lt;br /&gt;
addvertex(0,prim,addpoint(0,set(0,0,1)) );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Grid ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
for(int i = 0; i&amp;lt;8; i++)    {&lt;br /&gt;
    for(int j = 0; j&amp;lt;8; j++)    {&lt;br /&gt;
        int prim = addprim(0,'poly');&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i,0,j)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i+1,0,j)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i+1,0,j+1)) );&lt;br /&gt;
        addvertex(0,prim,addpoint(0,set(i,0,j+1)) );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Make a Circle ==&lt;br /&gt;
[[File:vex_make_circle.gif | 300px | right]]&lt;br /&gt;
&lt;br /&gt;
This example shows how you can generate a circle or N sided polygon using a for loop, sin and cos.&lt;br /&gt;
&lt;br /&gt;
Run the code in detail mode with an attribute wrangle.&lt;br /&gt;
&lt;br /&gt;
This is essentially the same idea as the [https://www.sidefx.com/docs/houdini/nodes/sop/circle.html circle] node but hopefully a beneficial example to see how this type of geometry is generated via VEX.&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_make_circle_001.hiplc|vex_make_circle_001.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
int prim = addprim(0,'poly');&lt;br /&gt;
int seg = chi('segments');&lt;br /&gt;
for( int i = 0; i&amp;lt;seg; i++ )  {&lt;br /&gt;
    float u = float(i)/seg * 2*PI;&lt;br /&gt;
    addvertex(0, prim, addpoint(0, set(sin(u),0,cos(u))) );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Groups to Attribute ==&lt;br /&gt;
[https://zybrand.xyz/groups-to-attribute-with-vex From zybrand]&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
//convert numbered groups to a numbered attribute&lt;br /&gt;
string groups[] = detailintrinsic(0, &amp;quot;primitivegroups&amp;quot;);&lt;br /&gt;
int prim = @primnum;&lt;br /&gt;
string elemnum;&lt;br /&gt;
&lt;br /&gt;
foreach(string i; groups)&lt;br /&gt;
{&lt;br /&gt;
    //if the current primitive is in group i&lt;br /&gt;
    if(inprimgroup(0,i,prim) == 1)&lt;br /&gt;
    {&lt;br /&gt;
        elemnum = re_find(r&amp;quot;\d{3,6}&amp;quot;,i);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
s@number = elemnum;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Looping Curl Noise ==&lt;br /&gt;
[[File:2022_12_11_looping_curl_noise.gif | 340px | right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's possible to achieve seamless looping animation from curl noise by blending between two noises.&lt;br /&gt;
&lt;br /&gt;
In this example one noise function is evaluated at the current time, and a second noise function is evaluated at the time shifted back by the desired loop duration.&lt;br /&gt;
&lt;br /&gt;
The result of these two noise functions are blended from one to the other over the duration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[:File:vex_looping_noises.hiplc|vex_looping_noises.hiplc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='C'&amp;gt;&lt;br /&gt;
// Position x Frequency&lt;br /&gt;
vector p = @P*0.5;&lt;br /&gt;
// Speed&lt;br /&gt;
float s = 0.5;&lt;br /&gt;
// Loop Length (in seconds)&lt;br /&gt;
float l = 5;&lt;br /&gt;
// Time % duration&lt;br /&gt;
float t = (@Time%l);&lt;br /&gt;
// Blending&lt;br /&gt;
vector v0 = curlgxnoise(p + set(0,0,0,t*s));&lt;br /&gt;
vector v1 = curlgxnoise(p + set(0,0,0,(t-l)*s));&lt;br /&gt;
@P += lerp(v0,v1,frac(@Time/l)) * 0.35;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Make a Grid ==&lt;br /&gt;
 for(int j = 0; j&amp;lt;4; j++)    {&lt;br /&gt;
    int prim = addprim(0,'poly');&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i,0,j)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i+1,0,j)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i+1,0,j+1)) );&lt;br /&gt;
    addvertex(0,prim,addpoint(0,set(i,0,j+1)) );&lt;br /&gt;
 }--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=File:vex_torus_knot_001.gif&amp;diff=1318</id>
		<title>File:vex torus knot 001.gif</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=File:vex_torus_knot_001.gif&amp;diff=1318"/>
		<updated>2024-09-01T11:10:51Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1317</id>
		<title>Houdini USD Cookbook</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1317"/>
		<updated>2024-08-09T19:40:21Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.sidefx.com/docs/houdini//solaris/pattern.html Primitive matching patterns]&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini//solaris/vex.html Using VEX with USD]&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini/nodes/lop/karmastandardrendervars.html Karma Standard Render Vars]&lt;br /&gt;
&lt;br /&gt;
[https://renderman.pixar.com/resources/RenderMan_20/risLPEs.html LPEs]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1316</id>
		<title>Houdini USD Cookbook</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1316"/>
		<updated>2024-08-09T19:39:40Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.sidefx.com/docs/houdini//solaris/pattern.html Primitive matching patterns]&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini//solaris/vex.html Using VEX with USD]&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini/nodes/lop/karmastandardrendervars.html Karma Standard Render Vars]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1315</id>
		<title>Houdini USD Cookbook</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1315"/>
		<updated>2024-08-09T19:38:24Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.sidefx.com/docs/houdini//solaris/pattern.html Primitive matching patterns]&lt;br /&gt;
&lt;br /&gt;
[https://www.sidefx.com/docs/houdini//solaris/vex.html Using VEX with USD]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1314</id>
		<title>Houdini USD Cookbook</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Houdini_USD_Cookbook&amp;diff=1314"/>
		<updated>2024-08-09T19:37:19Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;[https://www.sidefx.com/docs/houdini//solaris/pattern.html Primitive matching patterns]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.sidefx.com/docs/houdini//solaris/pattern.html Primitive matching patterns]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1313</id>
		<title>Resources</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Resources&amp;diff=1313"/>
		<updated>2024-07-30T17:54:54Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some useful resources to help you with Houdini.&lt;br /&gt;
&lt;br /&gt;
''' Geometry '''&lt;br /&gt;
&lt;br /&gt;
[http://threedscans.com/ Three D Scans] | [https://3d.si.edu/cc0 Smithsonian] | [https://wirewheelsclub.com/models/ Wire Wheels Club] | [http://www.graphics.stanford.edu/data/3Dscanrep/ Stanford 3D Scans] | [https://sketchfab.com/blogs/community/sketchfab-launches-public-domain-dedication-for-3d-cultural-heritage/ Sketchfab 3D Cultural Heritage] | [https://www.myminifactory.com/scantheworld/full-collection My Mini Factory] | [http://casual-effects.com/data/index.html Casual-Effects Data] | [http://www.sampleandhold.co.uk/downloads/ Sample and Hold] | [https://benedikt-bitterli.me/resources/ Benedikt-Bitterli.me] | [https://jangafx.com/software/embergen/download/free-vdb-animations/ EmberGen VDBs]&lt;br /&gt;
----&lt;br /&gt;
''' HDRIs '''&lt;br /&gt;
&lt;br /&gt;
[https://hdrihaven.com/hdris/ Poly Haven] | [http://themarichannel.com/all-hdr/ The Mari Channel] | [https://renderman.pixar.com/category/111-hdri Renderman] | [http://noemotionhdrs.net/ No Emotion HDRs] | [http://www.hdrlabs.com/sibl/archive.html HDR Labs SIBL]&lt;br /&gt;
----&lt;br /&gt;
''' Textures '''&lt;br /&gt;
&lt;br /&gt;
[https://ambientcg.com/categories ambientCG] | [https://3dtextures.me/ 3D Textures] | [https://www.cgbookcase.com/textures CG Bookcase] | [https://texturebox.com/ Texture Box] | [http://thepatternlibrary.com/ The Pattern Library] | [https://www.textures.com/ Textures.com] | [http://texturify.com/ Texturify] | [http://uvchecker.byvalle.com/ UV Grid Generator] | [https://physicallybased.info/ Physically Based Shader Values]&lt;br /&gt;
----&lt;br /&gt;
''' Tools '''&lt;br /&gt;
&lt;br /&gt;
[https://color.adobe.com/explore Adobe Color] | [https://www.iquilezles.org/apps/graphtoy/ Graphtoy] | [https://fonts.google.com/ Google Fonts] | [https://www.canva.com/colors/color-palettes/ Canva Color Palettes] | [https://www.canva.com/colors/color-palettes/ Hex Color Palettes] | [https://windmillart.net/?p=jsplacement Jsplacement] | [https://rainboxlab.org/tools/dume/ Dume] | [https://soulwire.co.uk/math-for-motion/ Math for Motion] | [http://foxcodex.html.xdomain.jp/index.html Periodic Table of Motion] | [https://mrviewer.sourceforge.io/ mrViewer] | [https://carbon.now.sh/ Carbon] | [https://github.com/anvaka/city-roads City Roads] | [https://pureref.com PureRef] | [https://redketchup.io/twitter-downloader Save mp4 and gif from Twitter] | [https://wumbo.net/glossary/ Math Glossary] | [https://ezgif.com/ EZgif Convert]&lt;br /&gt;
----&lt;br /&gt;
''' Inspiration '''&lt;br /&gt;
&lt;br /&gt;
[https://motionographer.com/tag/photoreal/ Motionographer Photoreal] | [https://www.stashmedia.tv/ Stash Magazine] | [http://artofstyleframe.com/ Art of Style Frame] | [https://www.artofthetitle.com/ Art of the Title] | [https://www.behance.net/galleries/motion/ Behance Motion Gallery] | [https://www.behance.net/search/projects/?search=Houdini%20FX Behance Houdini FX] | [https://www.sakugabooru.com/tag?name=&amp;amp;type=&amp;amp;order=count Sakuga Booru] | [http://ref-fx.com/ FX References] | [https://www.instagram.com/explore/tags/xuxoe/ Instagram #xuxoe] | [https://beforesandafters.com/ Before &amp;amp; Afters] | [https://butdoesitfloat.com/img/random But Does It Float] | [https://fyfluiddynamics.com/ FYFD] | [https://dribbble.com/tags/houdini Houdini Dribble] | [https://www.are.na/john-kunz are.na] | [http://foxcodex.html.xdomain.jp/index.html Motion Periodic Table] | [http://www.sylvain-nouveau.com/reffx/misc/ FX References] | [https://mr5ivethou5and.tumblr.com/archive mr5ivethou5and] | [https://timeline.lerandom.art/ Generative Art Timeline] | [https://www.youtube.com/playlist?list=PLyzOQqMHGyYTsz7-jlj-SeOm6iC0v-7B3 5 Decades of digital art history on YouTube]&lt;br /&gt;
----&lt;br /&gt;
''' Houdini '''&lt;br /&gt;
&lt;br /&gt;
[https://www.houdinikitchen.net/2019/12/21/how-to-create-l-systems/ L Systems] | [https://procegen.konstantinmagnus.de/ procegen] | [https://hdbp.io/browse Houdini Blueprints] | [https://github.com/kiryha/Houdini/wiki/vex-for-artists VEX Guide for Artists] | [https://www.sidefx.com/contentlibrary/ SideFX Content Library] | [https://forums.odforce.net/topic/49522-tutorial-hip-library/ OdForce Tutorial .hip Library] | [https://www.sidefx.com/learn/getting_started/ SideFX Getting Started] | [https://forums.odforce.net/topic/24056-learning-vex-via-animated-gifs-bees-bombs/ OdForce Learning VEX Via Bees and Bombs] | [https://houdinigubbins.wordpress.com/ Houdini Gubbins] | [http://wordpress.discretization.de/houdini/ Houdini Tech Blog] | [https://www.sidefx.com/houdini-hive/houdini-hive-worldwide/ Hive] | [https://www.tokeru.com/cgwiki/index.php?title=Houdini Tokeru] | [https://ikrima.dev/houdini/basics/hou-crash-course/ Crash Course] | [https://jeremypaton.github.io/site/build/nodes/sop.html SOP Quick Reference] | [https://discord.gg/dbJrmM8 Kunz Discord Community] | [https://houdiniquicktips.weebly.com/ Quick Tips]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Notes&amp;diff=1312</id>
		<title>Notes</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Notes&amp;diff=1312"/>
		<updated>2024-04-22T10:28:33Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://www.sidefx.com/faq/question/how-do-i-set-up-the-houdini-environment-for-command-line-tools/&lt;br /&gt;
&lt;br /&gt;
https://www.sidefx.com/docs/houdini/basics/config_env.html&lt;br /&gt;
&lt;br /&gt;
https://help.autodesk.com/view/ARNOL/ENU/?guid=arnold_for_houdini_ah_getting_started_ah_Installation_html#using-a-wrapper-script&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='bash'&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# path to houdini install&lt;br /&gt;
HOUDINI_ROOT=&amp;quot;/opt/hfs18.0.348&amp;quot;&lt;br /&gt;
# source houdini environment&lt;br /&gt;
cd ${HOUDINI_ROOT}&lt;br /&gt;
source houdini_setup&lt;br /&gt;
cd - &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
# make a fresh houdini prefs&lt;br /&gt;
export HOUDINI_USER_PREF_DIR=/tmp/__HVER__&lt;br /&gt;
# launch houdini&lt;br /&gt;
houdini $@ &lt;br /&gt;
# For OSX you can simply launch the Houdini Terminal app, then export the HOUDINI_USER_PREF_DIR and launch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/PCUskrvHEyU&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://www.youtube.com/watch?v=F73jwtPeZ4A&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/S-UAi_VA9Ck&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/152761107/LOccitane-Immortelle-Divine LOccitane-Immortelle-Divine]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot; &amp;gt;https://vimeo.com/750079702&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Hidden Film --&amp;gt;&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot; &amp;gt;https://vimeo.com/587822198&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:057267152198639.6319ae685bf2b.gif | 960px]]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/152198639/Rings-Of-Power-Opening-Sequence-%28fanart%29 Rings Of Power Opening Sequence]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/112310559/CYMATIC CYMATIC]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/164712533/FLIP-ROCKS FLIP-ROCKS]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/Ml4rwqT8H9s&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Special:Redirect/file/https://imgix.bustle.com/uploads/image/2022/9/14/6563cfe0-3ade-42bd-bb6a-5d4db8784a81-screen-shot-2022-09-12-at-121439-pm-min.png?w=1200&amp;amp;h=1200&amp;amp;fit=crop&amp;amp;crop=faces&amp;amp;fm=jpg]]&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/LiterallyAKing/status/1569059332611870722 Chladni figures thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.experienceperception.com/black-panther-moe.html Black Panther Titles]&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cymatics#Influences_on_art_and_music Cymatics]&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/nandocosta_art/status/1574796018713243648 Nando's google grain]&lt;br /&gt;
&lt;br /&gt;
[https://monoskop.org/images/7/78/Jenny_Hans_Cymatics_A_Study_of_Wave_Phenomena_and_Vibration.pdf Jenny_Hans_Cymatics_A_Study_of_Wave_Phenomena_and_Vibration]&lt;br /&gt;
&lt;br /&gt;
[https://fyfluiddynamics.com/2022/11/recreating-the-rings-of-power-opening/?doing_wp_cron=1668464126.1629459857940673828125 recreating-the-rings-of-power-opening]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x400&amp;quot;&amp;gt;https://vimeo.com/313133329&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/85706605/Audible-Theater-Cymatics Audible-Theater-Cymatics]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/752026986&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/832884950&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/426969163&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:6027523799.mp4 | 960px]]&lt;br /&gt;
&lt;br /&gt;
[https://versostudio.es/#portfolio versostudio]&lt;br /&gt;
[https://www.behance.net/gallery/149957151/Verso-Studio-Teaser-Reel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x400&amp;quot;&amp;gt;https://vimeo.com/658608284&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/panoplycreative/status/1572618162776211464 Intermission ~ A Panoply Curiosity]&lt;br /&gt;
&lt;br /&gt;
[https://monoskop.org/Software_art Software Art]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Notes&amp;diff=1311</id>
		<title>Notes</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Notes&amp;diff=1311"/>
		<updated>2024-04-22T10:26:54Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://www.sidefx.com/faq/question/how-do-i-set-up-the-houdini-environment-for-command-line-tools/&lt;br /&gt;
&lt;br /&gt;
https://www.sidefx.com/docs/houdini/basics/config_env.html&lt;br /&gt;
&lt;br /&gt;
https://help.autodesk.com/view/ARNOL/ENU/?guid=arnold_for_houdini_ah_getting_started_ah_Installation_html#using-a-wrapper-script&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='bash'&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# path to houdini install&lt;br /&gt;
HOUDINI_ROOT=&amp;quot;/opt/hfs18.0.348&amp;quot;&lt;br /&gt;
# source houdini environment&lt;br /&gt;
cd ${HOUDINI_ROOT}&lt;br /&gt;
source houdini_setup&lt;br /&gt;
cd - &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
# make a fresh houdini prefs&lt;br /&gt;
export HOUDINI_USER_PREF_DIR=/tmp/__HVER__&lt;br /&gt;
# launch houdini&lt;br /&gt;
houdini $@ &lt;br /&gt;
# For OSX you can simply launch the Houdini Terminal app, then export the HOUDINI_USER_PREF_DIR and launch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/PCUskrvHEyU&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://www.youtube.com/watch?v=F73jwtPeZ4A&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/S-UAi_VA9Ck&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/152761107/LOccitane-Immortelle-Divine LOccitane-Immortelle-Divine]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot; &amp;gt;https://vimeo.com/750079702&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Hidden Film --&amp;gt;&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot; &amp;gt;https://vimeo.com/587822198&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:057267152198639.6319ae685bf2b.gif | 960px]]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/152198639/Rings-Of-Power-Opening-Sequence-%28fanart%29 Rings Of Power Opening Sequence]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/112310559/CYMATIC CYMATIC]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/164712533/FLIP-ROCKS FLIP-ROCKS]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/Ml4rwqT8H9s&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:https://imgix.bustle.com/uploads/image/2022/9/14/6563cfe0-3ade-42bd-bb6a-5d4db8784a81-screen-shot-2022-09-12-at-121439-pm-min.png?w=1200&amp;amp;h=1200&amp;amp;fit=crop&amp;amp;crop=faces&amp;amp;fm=jpg]]&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/LiterallyAKing/status/1569059332611870722 Chladni figures thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.experienceperception.com/black-panther-moe.html Black Panther Titles]&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cymatics#Influences_on_art_and_music Cymatics]&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/nandocosta_art/status/1574796018713243648 Nando's google grain]&lt;br /&gt;
&lt;br /&gt;
[https://monoskop.org/images/7/78/Jenny_Hans_Cymatics_A_Study_of_Wave_Phenomena_and_Vibration.pdf Jenny_Hans_Cymatics_A_Study_of_Wave_Phenomena_and_Vibration]&lt;br /&gt;
&lt;br /&gt;
[https://fyfluiddynamics.com/2022/11/recreating-the-rings-of-power-opening/?doing_wp_cron=1668464126.1629459857940673828125 recreating-the-rings-of-power-opening]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x400&amp;quot;&amp;gt;https://vimeo.com/313133329&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/85706605/Audible-Theater-Cymatics Audible-Theater-Cymatics]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/752026986&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/832884950&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/426969163&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:6027523799.mp4 | 960px]]&lt;br /&gt;
&lt;br /&gt;
[https://versostudio.es/#portfolio versostudio]&lt;br /&gt;
[https://www.behance.net/gallery/149957151/Verso-Studio-Teaser-Reel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x400&amp;quot;&amp;gt;https://vimeo.com/658608284&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/panoplycreative/status/1572618162776211464 Intermission ~ A Panoply Curiosity]&lt;br /&gt;
&lt;br /&gt;
[https://monoskop.org/Software_art Software Art]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Notes&amp;diff=1310</id>
		<title>Notes</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Notes&amp;diff=1310"/>
		<updated>2024-04-22T10:26:09Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://www.sidefx.com/faq/question/how-do-i-set-up-the-houdini-environment-for-command-line-tools/&lt;br /&gt;
&lt;br /&gt;
https://www.sidefx.com/docs/houdini/basics/config_env.html&lt;br /&gt;
&lt;br /&gt;
https://help.autodesk.com/view/ARNOL/ENU/?guid=arnold_for_houdini_ah_getting_started_ah_Installation_html#using-a-wrapper-script&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='bash'&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# path to houdini install&lt;br /&gt;
HOUDINI_ROOT=&amp;quot;/opt/hfs18.0.348&amp;quot;&lt;br /&gt;
# source houdini environment&lt;br /&gt;
cd ${HOUDINI_ROOT}&lt;br /&gt;
source houdini_setup&lt;br /&gt;
cd - &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
# make a fresh houdini prefs&lt;br /&gt;
export HOUDINI_USER_PREF_DIR=/tmp/__HVER__&lt;br /&gt;
# launch houdini&lt;br /&gt;
houdini $@ &lt;br /&gt;
# For OSX you can simply launch the Houdini Terminal app, then export the HOUDINI_USER_PREF_DIR and launch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/PCUskrvHEyU&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://www.youtube.com/watch?v=F73jwtPeZ4A&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/S-UAi_VA9Ck&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/152761107/LOccitane-Immortelle-Divine LOccitane-Immortelle-Divine]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot; &amp;gt;https://vimeo.com/750079702&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Hidden Film --&amp;gt;&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot; &amp;gt;https://vimeo.com/587822198&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:057267152198639.6319ae685bf2b.gif | 960px]]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/152198639/Rings-Of-Power-Opening-Sequence-%28fanart%29 Rings Of Power Opening Sequence]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/112310559/CYMATIC CYMATIC]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/164712533/FLIP-ROCKS FLIP-ROCKS]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/Ml4rwqT8H9s&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
file:https://imgix.bustle.com/uploads/image/2022/9/14/6563cfe0-3ade-42bd-bb6a-5d4db8784a81-screen-shot-2022-09-12-at-121439-pm-min.png?w=1200&amp;amp;h=1200&amp;amp;fit=crop&amp;amp;crop=faces&amp;amp;fm=jpg&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/LiterallyAKing/status/1569059332611870722 Chladni figures thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.experienceperception.com/black-panther-moe.html Black Panther Titles]&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cymatics#Influences_on_art_and_music Cymatics]&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/nandocosta_art/status/1574796018713243648 Nando's google grain]&lt;br /&gt;
&lt;br /&gt;
[https://monoskop.org/images/7/78/Jenny_Hans_Cymatics_A_Study_of_Wave_Phenomena_and_Vibration.pdf Jenny_Hans_Cymatics_A_Study_of_Wave_Phenomena_and_Vibration]&lt;br /&gt;
&lt;br /&gt;
[https://fyfluiddynamics.com/2022/11/recreating-the-rings-of-power-opening/?doing_wp_cron=1668464126.1629459857940673828125 recreating-the-rings-of-power-opening]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x400&amp;quot;&amp;gt;https://vimeo.com/313133329&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/85706605/Audible-Theater-Cymatics Audible-Theater-Cymatics]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/752026986&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/832884950&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/426969163&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:6027523799.mp4 | 960px]]&lt;br /&gt;
&lt;br /&gt;
[https://versostudio.es/#portfolio versostudio]&lt;br /&gt;
[https://www.behance.net/gallery/149957151/Verso-Studio-Teaser-Reel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x400&amp;quot;&amp;gt;https://vimeo.com/658608284&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/panoplycreative/status/1572618162776211464 Intermission ~ A Panoply Curiosity]&lt;br /&gt;
&lt;br /&gt;
[https://monoskop.org/Software_art Software Art]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://testwiki.johnkunz.com/index.php?title=Notes&amp;diff=1309</id>
		<title>Notes</title>
		<link rel="alternate" type="text/html" href="https://testwiki.johnkunz.com/index.php?title=Notes&amp;diff=1309"/>
		<updated>2024-04-22T10:23:54Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
https://www.sidefx.com/faq/question/how-do-i-set-up-the-houdini-environment-for-command-line-tools/&lt;br /&gt;
&lt;br /&gt;
https://www.sidefx.com/docs/houdini/basics/config_env.html&lt;br /&gt;
&lt;br /&gt;
https://help.autodesk.com/view/ARNOL/ENU/?guid=arnold_for_houdini_ah_getting_started_ah_Installation_html#using-a-wrapper-script&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang='bash'&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# path to houdini install&lt;br /&gt;
HOUDINI_ROOT=&amp;quot;/opt/hfs18.0.348&amp;quot;&lt;br /&gt;
# source houdini environment&lt;br /&gt;
cd ${HOUDINI_ROOT}&lt;br /&gt;
source houdini_setup&lt;br /&gt;
cd - &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
# make a fresh houdini prefs&lt;br /&gt;
export HOUDINI_USER_PREF_DIR=/tmp/__HVER__&lt;br /&gt;
# launch houdini&lt;br /&gt;
houdini $@ &lt;br /&gt;
# For OSX you can simply launch the Houdini Terminal app, then export the HOUDINI_USER_PREF_DIR and launch&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/PCUskrvHEyU&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://www.youtube.com/watch?v=F73jwtPeZ4A&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/S-UAi_VA9Ck&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/152761107/LOccitane-Immortelle-Divine LOccitane-Immortelle-Divine]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot; &amp;gt;https://vimeo.com/750079702&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Hidden Film --&amp;gt;&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot; &amp;gt;https://vimeo.com/587822198&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:057267152198639.6319ae685bf2b.gif | 960px]]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/152198639/Rings-Of-Power-Opening-Sequence-%28fanart%29 Rings Of Power Opening Sequence]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/112310559/CYMATIC CYMATIC]&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/164712533/FLIP-ROCKS FLIP-ROCKS]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;youtube&amp;quot; dimensions=&amp;quot;960x540&amp;quot; urlargs=&amp;quot;modestbranding=1&amp;amp;showinfo=0&amp;quot;&amp;gt;https://youtu.be/Ml4rwqT8H9s&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://imgix.bustle.com/uploads/image/2022/9/14/6563cfe0-3ade-42bd-bb6a-5d4db8784a81-screen-shot-2022-09-12-at-121439-pm-min.png?w=1200&amp;amp;h=1200&amp;amp;fit=crop&amp;amp;crop=faces&amp;amp;fm=jpg]&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/LiterallyAKing/status/1569059332611870722 Chladni figures thread]&lt;br /&gt;
&lt;br /&gt;
[https://www.experienceperception.com/black-panther-moe.html Black Panther Titles]&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Cymatics#Influences_on_art_and_music Cymatics]&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/nandocosta_art/status/1574796018713243648 Nando's google grain]&lt;br /&gt;
&lt;br /&gt;
[https://monoskop.org/images/7/78/Jenny_Hans_Cymatics_A_Study_of_Wave_Phenomena_and_Vibration.pdf Jenny_Hans_Cymatics_A_Study_of_Wave_Phenomena_and_Vibration]&lt;br /&gt;
&lt;br /&gt;
[https://fyfluiddynamics.com/2022/11/recreating-the-rings-of-power-opening/?doing_wp_cron=1668464126.1629459857940673828125 recreating-the-rings-of-power-opening]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x400&amp;quot;&amp;gt;https://vimeo.com/313133329&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.behance.net/gallery/85706605/Audible-Theater-Cymatics Audible-Theater-Cymatics]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/752026986&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/832884950&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x540&amp;quot;&amp;gt;https://vimeo.com/426969163&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:6027523799.mp4 | 960px]]&lt;br /&gt;
&lt;br /&gt;
[https://versostudio.es/#portfolio versostudio]&lt;br /&gt;
[https://www.behance.net/gallery/149957151/Verso-Studio-Teaser-Reel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedvideo service=&amp;quot;vimeo&amp;quot; dimensions=&amp;quot;960x400&amp;quot;&amp;gt;https://vimeo.com/658608284&amp;lt;/embedvideo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/panoplycreative/status/1572618162776211464 Intermission ~ A Panoply Curiosity]&lt;br /&gt;
&lt;br /&gt;
[https://monoskop.org/Software_art Software Art]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>