diff --git a/README.md b/README.md
index 89b29b40..4b51d4fd 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,11 @@ MOPs is intended to be an easy way to manipulate lots of copies of things, lever
MOPs is based on an internal framework of nodes that convert point attributes to packed primitive intrinsic attributes and back again, making it easy for technical artists to develop new MOPs modifiers.
+* [MOPs Forum](https://forum.motionoperators.com)
+* [Facebook User's Group](https://www.facebook.com/groups/616993195326231)
+* [Motionoperators Twitter](https://twitter.com/motionoperators)
+* [Motionoperators Instagram](https://www.instagram.com/motionoperators)
+
### Installation:
**INSTALLATION PROCEDURE HAS BEEN SIMPLIFIED FROM PREVIOUS RELEASES. PLEASE READ CAREFULLY.**
@@ -48,6 +53,10 @@ HOUDINI_PATH=$HOUDINI_PATH;$QLIB;$MOPS;&
It's important that your HOUDINI_PATH always ends in ;&. You can append any other paths you like,
but the last path should be `&`. This will ensure that Houdini's built-in operators work normally.
+## Step 3: Test MOPs
+
+To ensure that the installation worked correctly, create a Geometry container and dive inside, then look for the "MOPs" entry in the Tab menu. Also look for a toolbar called "MOPS" in your shelf list. The MOPs Shelf contains some handy tools complete with their own documentation.
+
### Usage basics:
The main types of nodes in MOPs are the Generators, Modifiers, and Falloff nodes. Generators like the MOPs Instancer create copies of objects. Modifiers transform or otherwise change the objects. Falloffs weight the effects of Modifiers.
@@ -58,9 +67,6 @@ Append a MOPs Transform Modifier to the MOPs Instancer. Try playing with the rot
For more detailed examples, see the "examples" folder for HIP files.
-### Data analytics:
-
-MOPs *optionally* collects data about what MOPs nodes are being used via Google Analytics in order to help us prioritize development and get feedback. The *only* information associated with an individual user is a randomized UUID. By default, MOPs follows the same permissions as Houdini does when collecting data (i.e., if you opt out of Houdini's collection, we will not collect either). If you would like to set an override on this behavior, you can add the key MOPS_ALLOW_ANALYTICS to your houdini.env file. Setting MOPS_ALLOW_ANALYTICS = 1 will allow the collection to go ahead. Setting it to 0 will always disable it, regardless of your Houdini data collection settings.
### Developers:
This section is in progress.
diff --git a/VERSION.txt b/VERSION.txt
index 442fd76b..7d2bad93 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1 +1 @@
-v1.1.14 Experimental
\ No newline at end of file
+v1.1.15 Experimental
\ No newline at end of file
diff --git a/examples/animated_instances.hip b/examples/animated_instances.hip
index 8ae2bb63..26b19d73 100644
Binary files a/examples/animated_instances.hip and b/examples/animated_instances.hip differ
diff --git a/otls/MOPS_Audio_Falloff.hda/INDEX__SECTION b/otls/MOPS_Audio_Falloff.hda/INDEX__SECTION
index 658ed6a5..af8c24ed 100644
--- a/otls/MOPS_Audio_Falloff.hda/INDEX__SECTION
+++ b/otls/MOPS_Audio_Falloff.hda/INDEX__SECTION
@@ -24,5 +24,5 @@ Inputs: 1 to 1
Subnet: true
Python: false
Empty: false
-Modified: Sat Jun 13 17:24:31 2020
+Modified: Tue Jun 16 18:54:41 2020
diff --git a/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/Contents.dir/.OPdummydefs b/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/Contents.dir/.OPdummydefs
index 17537bbd..bf65665e 100644
Binary files a/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/Contents.dir/.OPdummydefs and b/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/Contents.dir/.OPdummydefs differ
diff --git a/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/Contents.dir/Contents.mime b/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/Contents.dir/Contents.mime
index 3f57ae1c..64bea1f9 100644
--- a/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/Contents.dir/Contents.mime
+++ b/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/Contents.dir/Contents.mime
@@ -32,9 +32,9 @@ Content-Type: text/plain
sopflags sopflags =
comment ""
-position -2.10393 0.856547
+position 10.5464 -5.97036
connectornextid 0
-flags = lock off model off template off footprint off xray off bypass off display on render on highlight off unload off savedata off compress on colordefault on exposed on
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
outputsNamed3
{
}
@@ -46,8 +46,8 @@ inputs
}
stat
{
- create 1592094175
- modify 1592094269
+ create 1592358726
+ modify 1592358881
author Henry@LAPPY586
access 0777
}
@@ -105,7 +105,7 @@ inputs
stat
{
create 1527119029
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -492,7 +492,7 @@ inputs
stat
{
create 1527124869
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -718,7 +718,7 @@ vex_inplace [ 0 locks=0 ] ( "off" )
vex_selectiongroup [ 0 locks=0 ] ( "" )
vex_precision [ 0 locks=0 ] ( auto )
folder1 [ 0 locks=0 ] ( 0 0 )
-bands [ 8 locks=0 ] ( [ bands 0 ] )
+bands [ 8 locks=0 ] ( [ bands 1 ] )
}
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
@@ -765,7 +765,7 @@ inputs
stat
{
create 1527127477
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -989,167 +989,6 @@ Content-Type: text/plain
}
}
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.init"
-Content-Type: text/plain
-
-type = MOPS::Remap_Falloff::1.0
-matchesdef = 1
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.def"
-Content-Type: text/plain
-
-sopflags sopflags =
-comment ""
-position -5.4715 -1.67104
-connectornextid 2
-flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
-outputsNamed3
-{
-1 "output1"
-}
-inputsNamed3
-{
-0 Combine_Falloffs1 2 1 "input1"
-}
-inputs
-{
-0 Combine_Falloffs1 0 1
-}
-stat
-{
- create 1527133419
- modify 1592094175
- author Henry@LAPPY586
- access 0777
-}
-color UT_Color RGB 0.8 0.8 0.8
-delscript ""
-exprlanguage hscript
-end
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.chn"
-Content-Type: text/plain
-
-{
- channel frame {
- lefttype = extend
- righttype = extend
- default = 1
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../frame\") }
- }
- channel switchfit {
- lefttype = extend
- righttype = extend
- default = 1
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../switchfit\") }
- }
- channel auto_min_max {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../auto_min_max\") }
- }
- channel imin {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../imin\") }
- }
- channel imax {
- lefttype = extend
- righttype = extend
- default = 0.77900000000000003
- flags = 0
- segment { length = 0 value = 0.77900000000000003 0.77900000000000003 expr = ch(\"../imax\") }
- }
- channel omin {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../omin\") }
- }
- channel omax {
- lefttype = extend
- righttype = extend
- default = 1
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../omax\") }
- }
- channel grouptype {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../Combine_Falloffs1/grouptype\") }
- }
- }
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.parm"
-Content-Type: text/plain
-
-{
-version 0.8
-group [ 0 locks=0 ] ( `chs(\"../Combine_Falloffs1/group\")` )
-grouptype [ 8 locks=0 ] ( [ grouptype 0 ] )
-sepparm [ 0 locks=0 ] ( )
-falloff_attr [ 0 locks=0 ] ( mops_falloff )
-output_attr [ 0 locks=0 ] ( mops_falloff )
-do_preview [ 0 locks=0 ] ( "off" )
-folder0 [ 0 locks=0 ] ( 0 )
-do_sprite [ 0 locks=0 ] ( "on" )
-spritescale [ 0 locks=0 ] ( 1 )
-override_scale [ 0 locks=0 ] ( "off" )
-ramp_preset [ 0 locks=0 ] ( "heatmap" )
-falloff_heatmap [ 0 locks=0 ] ( 5 )
-sepparm2 [ 0 locks=0 ] ( )
-fitparams [ 0 locks=0 ] ( 0 )
-switchfit [ 0 locks=0 ] ( [ switchfit 1 ] )
-auto_min_max [ 0 locks=0 ] ( [ auto_min_max 0 ] )
-frame [ 0 locks=0 ] ( [ frame 1 ] )
-imin [ 0 locks=0 ] ( [ imin 0 ] )
-imax [ 0 locks=0 ] ( [ imax 1 ] )
-omin [ 0 locks=0 ] ( [ omin 0 ] )
-omax [ 0 locks=0 ] ( [ omax 1 ] )
-remap_falloff [ 0 locks=0 ] ( 2 )
-falloff_heatmap1pos [ 0 locks=0 ] ( 0 )
-falloff_heatmap1c [ 0 locks=0 ] ( 0.036199998110532761 0 0.5429999828338623 )
-falloff_heatmap1interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap2pos [ 0 locks=0 ] ( 0.27027025818824768 )
-falloff_heatmap2c [ 0 locks=0 ] ( 0.7369999885559082 0 0 )
-falloff_heatmap2interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap3pos [ 0 locks=0 ] ( 0.71814674139022827 )
-falloff_heatmap3c [ 0 locks=0 ] ( 1 0.28333333134651184 0 )
-falloff_heatmap3interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap4pos [ 0 locks=0 ] ( 0.90154439210891724 )
-falloff_heatmap4c [ 0 locks=0 ] ( 0.89999997615814209 0.89999997615814209 0 )
-falloff_heatmap4interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap5pos [ 0 locks=0 ] ( 1 )
-falloff_heatmap5c [ 0 locks=0 ] ( 1 1 1 )
-falloff_heatmap5interp [ 0 locks=0 ] ( "linear" )
-remap_falloff1pos [ 0 locks=0 ] ( 0 )
-remap_falloff1value [ 0 locks=0 ] ( 0 )
-remap_falloff1interp [ 0 locks=0 ] ( "linear" )
-remap_falloff2pos [ 0 locks=0 ] ( 1 )
-remap_falloff2value [ 0 locks=0 ] ( 1 )
-remap_falloff2interp [ 0 locks=0 ] ( "linear" )
-}
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.userdata"
-Content-Type: text/plain
-
-{
- "___Version___":{
- "type":"string",
- "value":""
- }
-}
-
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
Content-Disposition: attachment; filename="hdaroot/Combine_Falloffs1.init"
Content-Type: text/plain
@@ -1183,7 +1022,7 @@ inputs
stat
{
create 1527134483
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -1293,7 +1132,7 @@ Content-Type: text/plain
sopflags sopflags =
comment ""
-position -5.4715 -2.71792
+position -5.4715 -3.85977
connectornextid 2
flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
outputsNamed3
@@ -1311,7 +1150,7 @@ inputs
stat
{
create 1536029968
- modify 1592094175
+ modify 1592358738
author Henry@LAPPY586
access 0777
}
@@ -1619,7 +1458,7 @@ inputs
stat
{
create 1574142951
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -1880,6 +1719,207 @@ Content-Type: text/plain
}
}
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.init"
+Content-Type: text/plain
+
+type = MOPS::Remap_Falloff::1.0
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -4.82473 -1.77537
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 Combine_Falloffs1 2 1 "input1"
+}
+inputs
+{
+0 Combine_Falloffs1 0 1
+}
+stat
+{
+ create 1592358746
+ modify 1592358886
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.multiparm"
+Content-Type: text/plain
+
+3
+remap_falloff#pos ../remap_falloff#pos
+remap_falloff#value ../remap_falloff#value
+remap_falloff#interp ../remap_falloff#interp
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.chn"
+Content-Type: text/plain
+
+{
+ channel auto_min_max {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../auto_min_max\") }
+ }
+ channel frame {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../frame\") }
+ }
+ channel imin {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../imin\") }
+ }
+ channel imax {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../imax\") }
+ }
+ channel omin {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../omin\") }
+ }
+ channel omax {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../omax\") }
+ }
+ channel remap_falloff {
+ lefttype = extend
+ righttype = extend
+ default = 2
+ flags = 0
+ segment { length = 0 value = 2 2 expr = ch(\"../remap_falloff\") }
+ }
+ channel remap_falloff1pos {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../remap_falloff1pos\") }
+ }
+ channel remap_falloff1value {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../remap_falloff1value\") }
+ }
+ channel remap_falloff1interp {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff1interp\") }
+ }
+ channel remap_falloff2pos {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../remap_falloff2pos\") }
+ }
+ channel remap_falloff2value {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../remap_falloff2value\") }
+ }
+ channel remap_falloff2interp {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff2interp\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+group [ 0 locks=0 ] ( "" )
+grouptype [ 0 locks=0 ] ( "guess" )
+sepparm [ 0 locks=0 ] ( )
+falloff_attr [ 0 locks=0 ] ( mops_falloff )
+output_attr [ 0 locks=0 ] ( mops_falloff )
+do_preview [ 0 locks=0 ] ( "off" )
+fitparams [ 0 locks=0 ] ( 0 0 )
+switchfit [ 0 locks=0 ] ( "on" )
+auto_min_max [ 0 locks=0 ] ( [ auto_min_max 0 ] )
+frame [ 0 locks=0 ] ( [ frame 1 ] )
+imin [ 0 locks=0 ] ( [ imin 0 ] )
+imax [ 0 locks=0 ] ( [ imax 1 ] )
+omin [ 0 locks=0 ] ( [ omin 0 ] )
+omax [ 0 locks=0 ] ( [ omax 1 ] )
+remap_falloff [ 0 locks=0 ] ( [ remap_falloff 2 ] )
+do_sprite [ 0 locks=0 ] ( "off" )
+spritescale [ 0 locks=0 ] ( 1 )
+override_scale [ 0 locks=0 ] ( "off" )
+ramp_preset [ 0 locks=0 ] ( "heatmap" )
+falloff_heatmap [ 0 locks=0 ] ( 5 )
+remap_falloff1pos [ 0 locks=0 ] ( [ remap_falloff1pos 0 ] )
+remap_falloff1value [ 0 locks=0 ] ( [ remap_falloff1value 0 ] )
+remap_falloff1interp [ 0 locks=0 ] ( [ remap_falloff1interp 1 ] )
+falloff_heatmap1pos [ 0 locks=0 ] ( 0 )
+falloff_heatmap1c [ 0 locks=0 ] ( 0.036199998110532761 0 0.5429999828338623 )
+falloff_heatmap1interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap2pos [ 0 locks=0 ] ( 0.27027025818824768 )
+falloff_heatmap2c [ 0 locks=0 ] ( 0.7369999885559082 0 0 )
+falloff_heatmap2interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap3pos [ 0 locks=0 ] ( 0.71814674139022827 )
+falloff_heatmap3c [ 0 locks=0 ] ( 1 0.28333333134651184 0 )
+falloff_heatmap3interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap4pos [ 0 locks=0 ] ( 0.90154439210891724 )
+falloff_heatmap4c [ 0 locks=0 ] ( 0.89999997615814209 0.89999997615814209 0 )
+falloff_heatmap4interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap5pos [ 0 locks=0 ] ( 1 )
+falloff_heatmap5c [ 0 locks=0 ] ( 1 1 1 )
+falloff_heatmap5interp [ 0 locks=0 ] ( "linear" )
+remap_falloff2pos [ 0 locks=0 ] ( [ remap_falloff2pos 1 ] )
+remap_falloff2value [ 0 locks=0 ] ( [ remap_falloff2value 1 ] )
+remap_falloff2interp [ 0 locks=0 ] ( [ remap_falloff2interp 1 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
Content-Disposition: attachment; filename="hdaroot/IN_MOPS.init"
Content-Type: text/plain
@@ -2051,7 +2091,7 @@ inputs
stat
{
create 1527115230
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -2460,7 +2500,7 @@ inputs
stat
{
create 1527118714
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -2554,7 +2594,7 @@ inputs
stat
{
create 1527130753
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -2634,7 +2674,7 @@ inputs
stat
{
create 1592093535
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -2868,7 +2908,7 @@ inputs
stat
{
create 1527125854
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -3009,7 +3049,7 @@ inputs
stat
{
create 1527133238
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -3091,7 +3131,7 @@ inputs
stat
{
create 1527133254
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -3183,7 +3223,7 @@ inputs
stat
{
create 1527133507
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -3306,7 +3346,7 @@ inputs
stat
{
create 1527133607
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -3386,7 +3426,7 @@ inputs
stat
{
create 1527556983
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -3514,7 +3554,7 @@ inputs
stat
{
create 1527556988
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -3611,7 +3651,7 @@ inputs
stat
{
create 1527557165
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -3706,7 +3746,7 @@ inputs
stat
{
create 1527985918
- modify 1592094175
+ modify 1592358726
author henry@GlaDOS
access 0777
}
@@ -3795,7 +3835,7 @@ inputs
stat
{
create 1529113730
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -3890,7 +3930,7 @@ inputs
stat
{
create 1529113737
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -4105,7 +4145,7 @@ inputs
stat
{
create 1536032692
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -4200,7 +4240,7 @@ inputs
stat
{
create 1536032699
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -4339,7 +4379,7 @@ inputs
stat
{
create 1536033084
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -4434,7 +4474,7 @@ inputs
stat
{
create 1536033098
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -4600,7 +4640,7 @@ inputs
stat
{
create 1591556271
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -4718,7 +4758,7 @@ inputs
stat
{
create 1591556277
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -4815,7 +4855,7 @@ inputs
stat
{
create 1591556354
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -4945,7 +4985,7 @@ inputs
stat
{
create 1527125024
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -5075,7 +5115,7 @@ sopflags sopflags =
comment ""
position -2.74965 -7.47118
connectornextid 1
-flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+flags = lock off model off template off footprint off xray off bypass off display on render on highlight off unload off savedata off compress on colordefault on exposed on
outputsNamed3
{
}
@@ -5090,7 +5130,7 @@ inputs
stat
{
create 1527134525
- modify 1580276094
+ modify 1592358738
author Henry@LAPPY586
access 0777
}
@@ -5150,7 +5190,7 @@ inputs
stat
{
create 1565317985
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -5212,7 +5252,7 @@ Content-Type: text/plain
sopflags sopflags =
comment ""
-position -5.47495 -3.6905
+position -5.47495 -4.8876
connectornextid 2
flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
outputsNamed3
@@ -5230,7 +5270,7 @@ inputs
stat
{
create 1565317985
- modify 1592094175
+ modify 1592358736
author Henry@LAPPY586
access 0777
}
@@ -5280,7 +5320,7 @@ sopflags sopflags =
comment ""
position -3.51346 2.30475
connectornextid 3
-flags = lock off model off template off footprint off xray off bypass off display on render on highlight off unload off savedata off compress on colordefault on exposed on
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
outputsNamed3
{
1 "output1"
@@ -5298,7 +5338,7 @@ inputs
stat
{
create 1574142891
- modify 1592094175
+ modify 1592358738
author Henry@LAPPY586
access 0777
}
@@ -5373,7 +5413,7 @@ inputs
stat
{
create 1574143044
- modify 1592094175
+ modify 1592358726
author Henry@LAPPY586
access 0777
}
@@ -5429,7 +5469,7 @@ Content-Type: text/plain
sopflags sopflags =
comment ""
-position -7.52479 -1.83082
+position -7.69054 -2.30966
connectornextid 3
flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
outputsNamed3
@@ -5439,17 +5479,17 @@ outputsNamed3
inputsNamed3
{
0 Combine_Falloffs1 2 1 "input1"
-2 MOPs_Remap_Falloff 1 1 "input2"
+2 MOPs_Remap_Falloff1 1 1 "input2"
}
inputs
{
0 Combine_Falloffs1 0 1
-1 MOPs_Remap_Falloff 0 1
+1 MOPs_Remap_Falloff1 0 1
}
stat
{
create 1588874829
- modify 1592094175
+ modify 1592358753
author Henry@LAPPY586
access 0777
}
@@ -5503,7 +5543,6 @@ IN_MOPS
audio
channel1
attribcreate1
-MOPs_Remap_Falloff
Combine_Falloffs1
output1
MOPs_Preview_Falloff
@@ -5513,6 +5552,7 @@ do_preview_bands
pointwrangle1
output_preview_bands
switch1
+MOPs_Remap_Falloff1
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
Content-Disposition: attachment; filename="hdaroot.net"
diff --git a/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/DialogScript b/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/DialogScript
index 27f6c2bc..336959bf 100644
--- a/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/DialogScript
+++ b/otls/MOPS_Audio_Falloff.hda/MOPS_8_8Sop_1Audio__Falloff_8_81.1/DialogScript
@@ -1045,13 +1045,21 @@
}
}
+ parm {
+ name "remap_falloff"
+ label "Remap Falloff"
+ type ramp_flt
+ default { "2" }
+ range { 1! 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "rampfloatdefault" "1pos ( 0 ) 1value ( 0 ) 1interp ( linear ) 2pos ( 1 ) 2value ( 1 ) 2interp ( linear )" }
+ }
}
group {
name "stdswitcher2_5"
label "Preview Falloff"
- tabbreak
- hidewhentab "{ do_preview 0 }"
+ hidewhentab "{ do_preview == 0 }"
parm {
name "do_sprite"
diff --git a/otls/MOPS_Noise_Falloff.hda/INDEX__SECTION b/otls/MOPS_Noise_Falloff.hda/INDEX__SECTION
index 03513bf3..e4c850da 100644
--- a/otls/MOPS_Noise_Falloff.hda/INDEX__SECTION
+++ b/otls/MOPS_Noise_Falloff.hda/INDEX__SECTION
@@ -10,7 +10,7 @@ Inputs: 1 to 2
Subnet: true
Python: false
Empty: false
-Modified: Wed Nov 28 12:04:41 2018
+Modified: Wed Nov 28 04:04:41 2018
Operator: MOPS::Noise_Falloff::1.1
Label: MOPs Noise Falloff
@@ -24,7 +24,7 @@ Inputs: 1 to 2
Subnet: true
Python: false
Empty: false
-Modified: Tue Feb 26 22:39:48 2019
+Modified: Tue Feb 26 14:39:48 2019
Operator: MOPS::Noise_Falloff::1.2
Label: MOPs Noise Falloff
@@ -52,7 +52,7 @@ Inputs: 1 to 2
Subnet: true
Python: false
Empty: false
-Modified: Thu Nov 7 22:39:48 2019
+Modified: Thu Nov 7 14:39:48 2019
Operator: MOPS::Noise_Falloff::1.4
Label: MOPs Noise Falloff
@@ -66,5 +66,5 @@ Inputs: 1 to 2
Subnet: true
Python: false
Empty: false
-Modified: Sat Jun 13 17:29:06 2020
+Modified: Tue Jun 16 18:51:31 2020
diff --git a/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/Contents.dir/.OPdummydefs b/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/Contents.dir/.OPdummydefs
index d8ec9ba1..2de5cad6 100644
Binary files a/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/Contents.dir/.OPdummydefs and b/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/Contents.dir/.OPdummydefs differ
diff --git a/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/Contents.dir/Contents.mime b/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/Contents.dir/Contents.mime
index da45a053..613b768e 100644
--- a/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/Contents.dir/Contents.mime
+++ b/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/Contents.dir/Contents.mime
@@ -32,24 +32,22 @@ Content-Type: text/plain
sopflags sopflags =
comment ""
-position 0.989362 0.0709493
-connectornextid 1
-flags = lock off model off template off footprint off xray off bypass off display on render on highlight off unload off savedata off compress on colordefault on exposed on
+position 8.77369 -4.69789
+connectornextid 0
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
outputsNamed3
{
}
inputsNamed3
{
-0 MOPs_Instancer 1 1 "input1"
}
inputs
{
-0 MOPs_Instancer 0 1
}
stat
{
- create 1592094485
- modify 1592094533
+ create 1592358535
+ modify 1592358694
author Henry@LAPPY586
access 0777
}
@@ -108,7 +106,7 @@ inputs
stat
{
create 1578457255
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -232,221 +230,6 @@ Content-Type: text/plain
}
}
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.init"
-Content-Type: text/plain
-
-type = MOPS::Remap_Falloff::1.0
-matchesdef = 1
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.def"
-Content-Type: text/plain
-
-sopflags sopflags =
-comment ""
-position 4.1148 0.844372
-connectornextid 2
-flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
-outputsNamed3
-{
-1 "output1"
-}
-inputsNamed3
-{
-0 MOPs_Noise_Patterns 0 1 "input1"
-}
-inputs
-{
-0 MOPs_Noise_Patterns 0 1
-}
-stat
-{
- create 1524060463
- modify 1592094485
- author Henry@LAPPY586
- access 0777
-}
-color UT_Color RGB 0.8 0.8 0.8
-delscript ""
-exprlanguage hscript
-end
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.multiparm"
-Content-Type: text/plain
-
-3
-remap_falloff#pos ../remap_falloff#pos
-remap_falloff#value ../remap_falloff#value
-remap_falloff#interp ../remap_falloff#interp
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.chn"
-Content-Type: text/plain
-
-{
- channel frame {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../frame\") }
- }
- channel remap_falloff1pos {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../remap_falloff1pos\") }
- }
- channel remap_falloff1value {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../remap_falloff1value\") }
- }
- channel remap_falloff1interp {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff1interp\") }
- }
- channel remap_falloff2pos {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../remap_falloff2pos\") }
- }
- channel remap_falloff2value {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../remap_falloff2value\") }
- }
- channel remap_falloff2interp {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff2interp\") }
- }
- channel switchfit {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../switchfit\") }
- }
- channel auto_min_max {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../auto_min_max\") }
- }
- channel imin {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../imin\") }
- }
- channel imax {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../imax\") }
- }
- channel omin {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../omin\") }
- }
- channel omax {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../omax\") }
- }
- channel remap_falloff {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 2 2 expr = ch(\"../remap_falloff\") }
- }
- channel group {
- lefttype = extend
- righttype = extend
- defaultString = chs(\"../Perlin/group\")
- flags = 0
- segment { length = 0 expr = chs(\"../group\") }
- }
- channel grouptype {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../grouptype\") }
- }
- }
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.parm"
-Content-Type: text/plain
-
-{
-version 0.8
-group [ 0 locks=0 autoscope=0 ] ( [ group "" ] )
-grouptype [ 0 locks=0 ] ( [ grouptype 0 ] )
-sepparm [ 0 locks=0 ] ( )
-falloff_attr [ 0 locks=0 ] ( mops_falloff )
-output_attr [ 0 locks=0 ] ( mops_falloff )
-do_preview [ 0 locks=0 ] ( "off" )
-folder0 [ 0 locks=0 ] ( 0 )
-do_sprite [ 0 locks=0 ] ( "off" )
-spritescale [ 0 locks=0 ] ( 1 )
-override_scale [ 0 locks=0 ] ( "off" )
-ramp_preset [ 0 locks=0 ] ( "heatmap" )
-falloff_heatmap [ 0 locks=0 ] ( 5 )
-sepparm2 [ 0 locks=0 ] ( )
-fitparams [ 0 locks=0 ] ( 0 )
-switchfit [ 0 locks=0 autoscope=0 ] ( [ switchfit 0 ] )
-auto_min_max [ 0 locks=0 autoscope=0 ] ( [ auto_min_max 0 ] )
-frame [ 0 locks=0 autoscope=0 ] ( [ frame 0 ] )
-imin [ 0 locks=0 autoscope=0 ] ( [ imin 0 ] )
-imax [ 0 locks=0 autoscope=0 ] ( [ imax 1 ] )
-omin [ 0 locks=0 autoscope=0 ] ( [ omin 0 ] )
-omax [ 0 locks=0 autoscope=0 ] ( [ omax 1 ] )
-remap_falloff [ 0 locks=0 autoscope=0 ] ( [ remap_falloff 2 ] )
-falloff_heatmap1pos [ 0 locks=0 ] ( 0 )
-falloff_heatmap1c [ 0 locks=0 ] ( 0.036199998110532761 0 0.5429999828338623 )
-falloff_heatmap1interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap2pos [ 0 locks=0 ] ( 0.27027025818824768 )
-falloff_heatmap2c [ 0 locks=0 ] ( 0.7369999885559082 0 0 )
-falloff_heatmap2interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap3pos [ 0 locks=0 ] ( 0.71814674139022827 )
-falloff_heatmap3c [ 0 locks=0 ] ( 1 0.28333333134651184 0 )
-falloff_heatmap3interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap4pos [ 0 locks=0 ] ( 0.90154439210891724 )
-falloff_heatmap4c [ 0 locks=0 ] ( 0.89999997615814209 0.89999997615814209 0 )
-falloff_heatmap4interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap5pos [ 0 locks=0 ] ( 1 )
-falloff_heatmap5c [ 0 locks=0 ] ( 1 1 1 )
-falloff_heatmap5interp [ 0 locks=0 ] ( "linear" )
-remap_falloff1pos [ 0 locks=0 autoscope=0 ] ( [ remap_falloff1pos 0 ] )
-remap_falloff1value [ 0 locks=0 autoscope=0 ] ( [ remap_falloff1value 0 ] )
-remap_falloff1interp [ 0 locks=0 autoscope=0 ] ( [ remap_falloff1interp 1 ] )
-remap_falloff2pos [ 0 locks=0 autoscope=0 ] ( [ remap_falloff2pos 1 ] )
-remap_falloff2value [ 0 locks=0 autoscope=0 ] ( [ remap_falloff2value 1 ] )
-remap_falloff2interp [ 0 locks=0 autoscope=0 ] ( [ remap_falloff2interp 1 ] )
-}
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.userdata"
-Content-Type: text/plain
-
-{
- "___Version___":{
- "type":"string",
- "value":""
- }
-}
-
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
Content-Disposition: attachment; filename="hdaroot/Combine_Falloffs1.init"
Content-Type: text/plain
@@ -480,7 +263,7 @@ inputs
stat
{
create 1524060463
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -599,7 +382,7 @@ inputs
stat
{
create 1524060464
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -885,7 +668,7 @@ inputs
stat
{
create 1524060464
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -964,7 +747,7 @@ inputs
stat
{
create 1536023491
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -1273,7 +1056,7 @@ inputs
stat
{
create 1550356490
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -1353,7 +1136,7 @@ inputs
stat
{
create 1568176106
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -1563,6 +1346,209 @@ Content-Type: text/plain
}
}
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.init"
+Content-Type: text/plain
+
+type = MOPS::Remap_Falloff::1.0
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position 3.69688 0.148791
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 MOPs_Noise_Patterns 0 1 "input1"
+}
+inputs
+{
+0 MOPs_Noise_Patterns 0 1
+}
+stat
+{
+ create 1592358543
+ modify 1592358681
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.multiparm"
+Content-Type: text/plain
+
+3
+remap_falloff#pos ../remap_falloff#pos
+remap_falloff#value ../remap_falloff#value
+remap_falloff#interp ../remap_falloff#interp
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.chn"
+Content-Type: text/plain
+
+{
+ channel auto_min_max {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../auto_min_max\") }
+ }
+ channel frame {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../frame\") }
+ }
+ channel imin {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../imin\") }
+ }
+ channel imax {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../imax\") }
+ }
+ channel omin {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../omin\") }
+ }
+ channel omax {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../omax\") }
+ }
+ channel remap_falloff {
+ lefttype = extend
+ righttype = extend
+ default = 2
+ flags = 0
+ segment { length = 0 value = 2 2 expr = ch(\"../remap_falloff\") }
+ }
+ channel remap_falloff1pos {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../remap_falloff1pos\") }
+ }
+ channel remap_falloff1value {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../remap_falloff1value\") }
+ }
+ channel remap_falloff1interp {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff1interp\") }
+ }
+ channel remap_falloff2pos {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff2pos\") }
+ }
+ channel remap_falloff2value {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff2value\") }
+ }
+ channel remap_falloff2interp {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff2interp\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+group [ 0 locks=0 ] ( "" )
+grouptype [ 0 locks=0 ] ( "guess" )
+sepparm [ 0 locks=0 ] ( )
+falloff_attr [ 0 locks=0 ] ( mops_falloff )
+output_attr [ 0 locks=0 ] ( mops_falloff )
+do_preview [ 0 locks=0 ] ( "off" )
+fitparams [ 0 locks=0 ] ( 0 0 )
+switchfit [ 0 locks=0 ] ( "on" )
+auto_min_max [ 0 locks=0 ] ( [ auto_min_max 0 ] )
+frame [ 0 locks=0 ] ( [ frame 1 ] )
+imin [ 0 locks=0 ] ( [ imin 0 ] )
+imax [ 0 locks=0 ] ( [ imax 1 ] )
+omin [ 0 locks=0 ] ( [ omin 0 ] )
+omax [ 0 locks=0 ] ( [ omax 1 ] )
+remap_falloff [ 0 locks=0 ] ( [ remap_falloff 2 ] )
+do_sprite [ 0 locks=0 ] ( "off" )
+spritescale [ 0 locks=0 ] ( 1 )
+override_scale [ 0 locks=0 ] ( "off" )
+ramp_preset [ 0 locks=0 ] ( "heatmap" )
+falloff_heatmap [ 0 locks=0 ] ( 5 )
+remap_falloff1pos [ 0 locks=0 ] ( [ remap_falloff1pos 0 ] )
+remap_falloff1value [ 0 locks=0 ] ( [ remap_falloff1value 0 ] )
+remap_falloff1interp [ 0 locks=0 ] ( [ remap_falloff1interp 1 ] )
+remap_falloff2pos [ 0 locks=0 ] ( [ remap_falloff2pos 1 ] )
+remap_falloff2value [ 0 locks=0 ] ( [ remap_falloff2value 1 ] )
+remap_falloff2interp [ 0 locks=0 ] ( [ remap_falloff2interp 1 ] )
+falloff_heatmap1pos [ 0 locks=0 ] ( 0 )
+falloff_heatmap1c [ 0 locks=0 ] ( 0.036199998110532761 0 0.5429999828338623 )
+falloff_heatmap1interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap2pos [ 0 locks=0 ] ( 0.27027025818824768 )
+falloff_heatmap2c [ 0 locks=0 ] ( 0.7369999885559082 0 0 )
+falloff_heatmap2interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap3pos [ 0 locks=0 ] ( 0.71814674139022827 )
+falloff_heatmap3c [ 0 locks=0 ] ( 1 0.28333333134651184 0 )
+falloff_heatmap3interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap4pos [ 0 locks=0 ] ( 0.90154439210891724 )
+falloff_heatmap4c [ 0 locks=0 ] ( 0.89999997615814209 0.89999997615814209 0 )
+falloff_heatmap4interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap5pos [ 0 locks=0 ] ( 1 )
+falloff_heatmap5c [ 0 locks=0 ] ( 1 1 1 )
+falloff_heatmap5interp [ 0 locks=0 ] ( "linear" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
Content-Disposition: attachment; filename="hdaroot/output1.init"
Content-Type: text/plain
@@ -1716,7 +1702,7 @@ inputs
stat
{
create 1524060464
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -1867,7 +1853,7 @@ inputs
stat
{
create 1524060464
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -2121,7 +2107,7 @@ inputs
stat
{
create 1565319729
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -2201,7 +2187,7 @@ inputs
stat
{
create 1565319729
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -2259,17 +2245,17 @@ outputsNamed3
inputsNamed3
{
2 MOPs_Noise_Patterns 0 1 "input1"
-0 MOPs_Remap_Falloff 1 1 "input2"
+0 MOPs_Remap_Falloff1 1 1 "input2"
}
inputs
{
0 MOPs_Noise_Patterns 0 1
-1 MOPs_Remap_Falloff 0 1
+1 MOPs_Remap_Falloff1 0 1
}
stat
{
create 1588874570
- modify 1592094485
+ modify 1592358552
author Henry@LAPPY586
access 0777
}
@@ -2344,7 +2330,7 @@ inputs
stat
{
create 1588875069
- modify 1592094485
+ modify 1592358536
author Henry@LAPPY586
access 0777
}
@@ -2372,7 +2358,7 @@ Content-Type: text/plain
{
version 0.8
-input [ 8 locks=0 ] ( [ input 1 ] )
+input [ 8 locks=0 ] ( [ input 0 ] )
}
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
@@ -2398,7 +2384,6 @@ do_generate_xform_placeholder
add1
pack1
XFORM_MATRIX
-MOPs_Remap_Falloff
Combine_Falloffs1
rest
IN_MOPS
@@ -2411,6 +2396,7 @@ attribswap1
attribswap2
do_remap
switch1
+MOPs_Remap_Falloff1
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
Content-Disposition: attachment; filename="hdaroot.net"
diff --git a/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/DialogScript b/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/DialogScript
index 0b516177..10b073b0 100644
--- a/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/DialogScript
+++ b/otls/MOPS_Noise_Falloff.hda/MOPS_8_8Sop_1Noise__Falloff_8_81.4/DialogScript
@@ -364,9 +364,8 @@
}
group {
- name "folder2"
+ name "folder0_3"
label "Falloff Preview"
- tabbreak
hidewhentab "{ do_preview == 0 }"
parm {
diff --git a/otls/MOPS_Shape_Falloff.hda/INDEX__SECTION b/otls/MOPS_Shape_Falloff.hda/INDEX__SECTION
index f835d744..2753b9b2 100644
--- a/otls/MOPS_Shape_Falloff.hda/INDEX__SECTION
+++ b/otls/MOPS_Shape_Falloff.hda/INDEX__SECTION
@@ -24,7 +24,7 @@ Inputs: 1 to 2
Subnet: true
Python: false
Empty: false
-Modified: Fri Nov 23 08:47:41 2018
+Modified: Fri Nov 23 00:47:41 2018
Operator: MOPS::Shape_Falloff::1.2
Label: MOPs Shape Falloff
@@ -38,7 +38,7 @@ Inputs: 1 to 2
Subnet: true
Python: false
Empty: false
-Modified: Sat Feb 23 09:38:19 2019
+Modified: Sat Feb 23 01:38:19 2019
Operator: MOPS::Shape_Falloff::1.3
Label: MOPs Shape Falloff
@@ -66,5 +66,5 @@ Inputs: 1 to 2
Subnet: true
Python: false
Empty: false
-Modified: Thu May 7 11:14:06 2020
+Modified: Tue Jun 16 18:48:23 2020
diff --git a/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/.OPdummydefs b/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/.OPdummydefs
index abbae506..5ac937b5 100644
Binary files a/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/.OPdummydefs and b/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/.OPdummydefs differ
diff --git a/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/.OPfallbacks b/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/.OPfallbacks
index 84a70062..1de5212d 100644
--- a/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/.OPfallbacks
+++ b/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/.OPfallbacks
@@ -12,53 +12,53 @@ MOPS::Sop/Remap_Falloff::1.0 C:/Users/Henry/Projects/VFX/MOPS/otls/MOPS_Remap_Fa
MOPS::Sop/Remap_Falloff::1.0 otls/MOPS_Remap_Falloff.hda
MOPS::Sop/Transform_Modifier::1.0 C:/Users/Henry/Projects/VFX/MOPS/otls/MOPS_transform.hda
MOPS::Sop/Transform_Modifier::1.0 otls/MOPS_transform.hda
-Sop/attribdelete C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibSop.hda
+Sop/attribdelete C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibSop.hda
Sop/attribdelete otls/OPlibSop.hda
-Sop/attribwrangle C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibSop.hda
+Sop/attribwrangle C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibSop.hda
Sop/attribwrangle otls/OPlibSop.hda
-Vop/avgcomp C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/avgcomp C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/avgcomp otls/OPlibScripted.hda
-Vop/clamp C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/clamp C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/clamp otls/OPlibScripted.hda
-Vop/floattohvec C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/floattohvec C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/floattohvec otls/OPlibScripted.hda
-Vop/floattovec C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/floattovec C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/floattovec otls/OPlibScripted.hda
-Vop/geometryvopglobal::2.0 C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibVop.hda
+Vop/geometryvopglobal::2.0 C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibVop.hda
Vop/geometryvopglobal::2.0 otls/OPlibVop.hda
-Vop/geometryvopoutput C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibVop.hda
+Vop/geometryvopoutput C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibVop.hda
Vop/geometryvopoutput otls/OPlibVop.hda
-Vop/hvectovec C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/hvectovec C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/hvectovec otls/OPlibScripted.hda
-Vop/inttofloat C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/inttofloat C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/inttofloat otls/OPlibScripted.hda
-Vop/invert C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/invert C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/invert otls/OPlibScripted.hda
-Vop/isconnected C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/isconnected C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/isconnected otls/OPlibScripted.hda
-Vop/lighting C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/lighting C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/lighting otls/OPlibScripted.hda
-Vop/mix C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/mix C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/mix otls/OPlibScripted.hda
-Vop/modulo C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/modulo C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/modulo otls/OPlibScripted.hda
-Vop/primintrinsic C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/primintrinsic C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/primintrinsic otls/OPlibScripted.hda
-Vop/renderstate C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/renderstate C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/renderstate otls/OPlibScripted.hda
-Vop/sprite C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/sprite C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/sprite otls/OPlibScripted.hda
-Sop/sprite C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibSop.hda
+Sop/sprite C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibSop.hda
Sop/sprite otls/OPlibSop.hda
-Vop/subconst C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/subconst C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/subconst otls/OPlibScripted.hda
-Vop/surfacecolor C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibVop.hda
+Vop/surfacecolor C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibVop.hda
Vop/surfacecolor otls/OPlibVop.hda
-Vop/texture C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/texture C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/texture otls/OPlibScripted.hda
-Vop/twoway C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/twoway C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/twoway otls/OPlibScripted.hda
-Vop/uvcoords C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibVop.hda
+Vop/uvcoords C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibVop.hda
Vop/uvcoords otls/OPlibVop.hda
-Vop/vectofloat C:/PROGRA~1/SIDEEF~1/HOUDIN~1.391/houdini/otls/OPlibScripted.hda
+Vop/vectofloat C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibScripted.hda
Vop/vectofloat otls/OPlibScripted.hda
diff --git a/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/Contents.mime b/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/Contents.mime
index 09496371..9bec679c 100644
--- a/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/Contents.mime
+++ b/otls/MOPS_Shape_Falloff.hda/MOPS_8_8Sop_1Shape__Falloff_8_81.4/Contents.dir/Contents.mime
@@ -32,7 +32,7 @@ Content-Type: text/plain
sopflags sopflags =
comment ""
-position -13.3743 0.630454
+position 12.0012 -3.62434
connectornextid 1
flags = lock off model off template off footprint off xray off bypass off display on render on highlight off unload off savedata off compress on colordefault on exposed on
outputsNamed3
@@ -40,16 +40,16 @@ outputsNamed3
}
inputsNamed3
{
-0 MOPs_Plain_Falloff 1 1 "input1"
+0 MOPs_Instancer1 1 1 "input1"
}
inputs
{
-0 MOPs_Plain_Falloff 0 1
+0 MOPs_Instancer1 0 1
}
stat
{
- create 1588875163
- modify 1588875277
+ create 1592358019
+ modify 1592359028
author Henry@LAPPY586
access 0777
}
@@ -110,7 +110,7 @@ inputs
stat
{
create 1524060597
- modify 1588875163
+ modify 1592358238
author Henry@LAPPY586
access 0777
}
@@ -394,214 +394,6 @@ Content-Type: text/plain
}
}
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.init"
-Content-Type: text/plain
-
-type = MOPS::Remap_Falloff::1.0
-matchesdef = 1
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.def"
-Content-Type: text/plain
-
-sopflags sopflags =
-comment ""
-position -1.80129 -3.78817
-connectornextid 2
-flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
-outputsNamed3
-{
-1 "output1"
-}
-inputsNamed3
-{
-0 switch_falloff_type 0 1 "input1"
-}
-inputs
-{
-0 switch_falloff_type 0 1
-}
-stat
-{
- create 1524060597
- modify 1588875181
- author Henry@LAPPY586
- access 0777
-}
-color UT_Color RGB 0.8 0.8 0.8
-delscript ""
-exprlanguage hscript
-end
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.multiparm"
-Content-Type: text/plain
-
-3
-remap_falloff#pos ../remap_falloff#pos
-remap_falloff#value ../remap_falloff#value
-remap_falloff#interp ../remap_falloff#interp
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.chn"
-Content-Type: text/plain
-
-{
- channel frame {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../frame\") }
- }
- channel remap_falloff1pos {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../remap_falloff1pos\") }
- }
- channel remap_falloff1value {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../remap_falloff1value\") }
- }
- channel remap_falloff1interp {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff1interp\") }
- }
- channel remap_falloff2pos {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../remap_falloff2pos\") }
- }
- channel remap_falloff2value {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../remap_falloff2value\") }
- }
- channel remap_falloff2interp {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff2interp\") }
- }
- channel group {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = chs(\"../group\") }
- }
- channel switchfit {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../switchfit\") }
- }
- channel auto_min_max {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../auto_min_max\") }
- }
- channel imin {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../imin\") }
- }
- channel imax {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../imax\") }
- }
- channel omin {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 expr = ch(\"../omin\") }
- }
- channel omax {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 1 1 expr = ch(\"../omax\") }
- }
- channel remap_falloff {
- lefttype = extend
- righttype = extend
- flags = 0
- segment { length = 0 value = 2 2 expr = ch(\"../remap_falloff\") }
- }
- }
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.parm"
-Content-Type: text/plain
-
-{
-version 0.8
-group [ 0 locks=0 autoscope=0 ] ( [ group "" ] )
-grouptype [ 0 locks=0 ] ( "guess" )
-sepparm [ 0 locks=0 ] ( )
-falloff_attr [ 0 locks=0 ] ( mops_falloff )
-output_attr [ 0 locks=0 ] ( mops_falloff )
-do_preview [ 0 locks=0 ] ( "off" )
-folder0 [ 0 locks=0 ] ( 0 )
-do_sprite [ 0 locks=0 ] ( "on" )
-spritescale [ 0 locks=0 ] ( 1 )
-override_scale [ 0 locks=0 ] ( "off" )
-ramp_preset [ 0 locks=0 ] ( "heatmap" )
-falloff_heatmap [ 0 locks=0 ] ( 5 )
-sepparm2 [ 0 locks=0 ] ( )
-fitparams [ 0 locks=0 ] ( 0 )
-switchfit [ 0 locks=0 autoscope=0 ] ( [ switchfit 0 ] )
-auto_min_max [ 0 locks=0 autoscope=0 ] ( [ auto_min_max 0 ] )
-frame [ 0 locks=0 autoscope=0 ] ( [ frame 0 ] )
-imin [ 0 locks=0 autoscope=0 ] ( [ imin 0 ] )
-imax [ 0 locks=0 autoscope=0 ] ( [ imax 1 ] )
-omin [ 0 locks=0 autoscope=0 ] ( [ omin 0 ] )
-omax [ 0 locks=0 autoscope=0 ] ( [ omax 1 ] )
-remap_falloff [ 0 locks=0 autoscope=0 ] ( [ remap_falloff 2 ] )
-falloff_heatmap1pos [ 0 locks=0 ] ( 0 )
-falloff_heatmap1c [ 0 locks=0 ] ( 0.036199998110532761 0 0.5429999828338623 )
-falloff_heatmap1interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap2pos [ 0 locks=0 ] ( 0.27027025818824768 )
-falloff_heatmap2c [ 0 locks=0 ] ( 0.7369999885559082 0 0 )
-falloff_heatmap2interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap3pos [ 0 locks=0 ] ( 0.71814674139022827 )
-falloff_heatmap3c [ 0 locks=0 ] ( 1 0.28333333134651184 0 )
-falloff_heatmap3interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap4pos [ 0 locks=0 ] ( 0.90154439210891724 )
-falloff_heatmap4c [ 0 locks=0 ] ( 0.89999997615814209 0.89999997615814209 0 )
-falloff_heatmap4interp [ 0 locks=0 ] ( "linear" )
-falloff_heatmap5pos [ 0 locks=0 ] ( 1 )
-falloff_heatmap5c [ 0 locks=0 ] ( 1 1 1 )
-falloff_heatmap5interp [ 0 locks=0 ] ( "linear" )
-remap_falloff1pos [ 0 locks=0 autoscope=0 ] ( [ remap_falloff1pos 0 ] )
-remap_falloff1value [ 0 locks=0 autoscope=0 ] ( [ remap_falloff1value 0 ] )
-remap_falloff1interp [ 0 locks=0 autoscope=0 ] ( [ remap_falloff1interp 1 ] )
-remap_falloff2pos [ 0 locks=0 autoscope=0 ] ( [ remap_falloff2pos 1 ] )
-remap_falloff2value [ 0 locks=0 autoscope=0 ] ( [ remap_falloff2value 1 ] )
-remap_falloff2interp [ 0 locks=0 autoscope=0 ] ( [ remap_falloff2interp 1 ] )
-}
-
---HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
-Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff.userdata"
-Content-Type: text/plain
-
-{
- "___Version___":{
- "type":"string",
- "value":""
- }
-}
-
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
Content-Disposition: attachment; filename="hdaroot/falloff_spherical.init"
Content-Type: text/plain
@@ -635,7 +427,7 @@ inputs
stat
{
create 1524060597
- modify 1588875163
+ modify 1592358238
author Henry@LAPPY586
access 0777
}
@@ -928,7 +720,7 @@ inputs
stat
{
create 1524060597
- modify 1588875163
+ modify 1592358238
author Henry@LAPPY586
access 0777
}
@@ -1243,7 +1035,7 @@ inputs
stat
{
create 1524060597
- modify 1588875163
+ modify 1592358238
author Henry@LAPPY586
access 0777
}
@@ -1554,7 +1346,7 @@ inputs
stat
{
create 1524060597
- modify 1588875187
+ modify 1592358238
author Henry@LAPPY586
access 0777
}
@@ -1675,7 +1467,7 @@ inputs
stat
{
create 1524060597
- modify 1588875163
+ modify 1592358238
author Henry@LAPPY586
access 0777
}
@@ -3527,6 +3319,209 @@ Content-Type: text/plain
}
}
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.init"
+Content-Type: text/plain
+
+type = MOPS::Remap_Falloff::1.0
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -1.87183 -3.5693
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 switch_falloff_type 0 1 "input1"
+}
+inputs
+{
+0 switch_falloff_type 0 1
+}
+stat
+{
+ create 1592358223
+ modify 1592358431
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.multiparm"
+Content-Type: text/plain
+
+3
+remap_falloff#pos ../remap_falloff#pos
+remap_falloff#value ../remap_falloff#value
+remap_falloff#interp ../remap_falloff#interp
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.chn"
+Content-Type: text/plain
+
+{
+ channel auto_min_max {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../auto_min_max\") }
+ }
+ channel frame {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../frame\") }
+ }
+ channel imin {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../imin\") }
+ }
+ channel imax {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../imax\") }
+ }
+ channel omin {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../omin\") }
+ }
+ channel omax {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../omax\") }
+ }
+ channel remap_falloff {
+ lefttype = extend
+ righttype = extend
+ default = 2
+ flags = 0
+ segment { length = 0 value = 2 2 expr = ch(\"../remap_falloff\") }
+ }
+ channel remap_falloff1pos {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../remap_falloff1pos\") }
+ }
+ channel remap_falloff1value {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../remap_falloff1value\") }
+ }
+ channel remap_falloff1interp {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff1interp\") }
+ }
+ channel remap_falloff2pos {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff2pos\") }
+ }
+ channel remap_falloff2value {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff2value\") }
+ }
+ channel remap_falloff2interp {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../remap_falloff2interp\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+group [ 0 locks=0 ] ( "" )
+grouptype [ 0 locks=0 ] ( "guess" )
+sepparm [ 0 locks=0 ] ( )
+falloff_attr [ 0 locks=0 ] ( mops_falloff )
+output_attr [ 0 locks=0 ] ( mops_falloff )
+do_preview [ 0 locks=0 ] ( "off" )
+fitparams [ 0 locks=0 ] ( 0 0 )
+switchfit [ 0 locks=0 ] ( "on" )
+auto_min_max [ 0 locks=0 ] ( [ auto_min_max 0 ] )
+frame [ 0 locks=0 ] ( [ frame 1 ] )
+imin [ 0 locks=0 ] ( [ imin 0 ] )
+imax [ 0 locks=0 ] ( [ imax 1 ] )
+omin [ 0 locks=0 ] ( [ omin 0 ] )
+omax [ 0 locks=0 ] ( [ omax 1 ] )
+remap_falloff [ 0 locks=0 ] ( [ remap_falloff 2 ] )
+do_sprite [ 0 locks=0 ] ( "off" )
+spritescale [ 0 locks=0 ] ( 1 )
+override_scale [ 0 locks=0 ] ( "off" )
+ramp_preset [ 0 locks=0 ] ( "heatmap" )
+falloff_heatmap [ 0 locks=0 ] ( 5 )
+remap_falloff1pos [ 0 locks=0 ] ( [ remap_falloff1pos 0 ] )
+remap_falloff1value [ 0 locks=0 ] ( [ remap_falloff1value 0 ] )
+remap_falloff1interp [ 0 locks=0 ] ( [ remap_falloff1interp 1 ] )
+remap_falloff2pos [ 0 locks=0 ] ( [ remap_falloff2pos 1 ] )
+remap_falloff2value [ 0 locks=0 ] ( [ remap_falloff2value 1 ] )
+remap_falloff2interp [ 0 locks=0 ] ( [ remap_falloff2interp 1 ] )
+falloff_heatmap1pos [ 0 locks=0 ] ( 0 )
+falloff_heatmap1c [ 0 locks=0 ] ( 0.036199998110532761 0 0.5429999828338623 )
+falloff_heatmap1interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap2pos [ 0 locks=0 ] ( 0.27027025818824768 )
+falloff_heatmap2c [ 0 locks=0 ] ( 0.7369999885559082 0 0 )
+falloff_heatmap2interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap3pos [ 0 locks=0 ] ( 0.71814674139022827 )
+falloff_heatmap3c [ 0 locks=0 ] ( 1 0.28333333134651184 0 )
+falloff_heatmap3interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap4pos [ 0 locks=0 ] ( 0.90154439210891724 )
+falloff_heatmap4c [ 0 locks=0 ] ( 0.89999997615814209 0.89999997615814209 0 )
+falloff_heatmap4interp [ 0 locks=0 ] ( "linear" )
+falloff_heatmap5pos [ 0 locks=0 ] ( 1 )
+falloff_heatmap5c [ 0 locks=0 ] ( 1 1 1 )
+falloff_heatmap5interp [ 0 locks=0 ] ( "linear" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Remap_Falloff1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
Content-Disposition: attachment; filename="hdaroot/grid_end.init"
Content-Type: text/plain
@@ -3592,7 +3587,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -3661,7 +3656,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -3722,7 +3717,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -3782,7 +3777,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -3843,7 +3838,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -3904,7 +3899,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -3965,7 +3960,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4040,7 +4035,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4118,7 +4113,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4186,7 +4181,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4247,7 +4242,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4326,7 +4321,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4409,7 +4404,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4468,7 +4463,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4554,7 +4549,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4640,7 +4635,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4701,7 +4696,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4762,7 +4757,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4845,7 +4840,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -4941,7 +4936,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5040,7 +5035,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5101,7 +5096,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5162,7 +5157,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5257,7 +5252,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5318,7 +5313,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5413,7 +5408,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5474,7 +5469,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5572,7 +5567,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5633,7 +5628,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5694,7 +5689,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5792,7 +5787,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5867,7 +5862,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -5942,7 +5937,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -6086,7 +6081,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -6152,7 +6147,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -6241,7 +6236,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -6302,7 +6297,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -6377,7 +6372,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -6460,7 +6455,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -6520,7 +6515,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -6588,7 +6583,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -6615,17 +6610,17 @@ outputsNamed3
inputsNamed3
{
0 switch_falloff_type 0 1 "input1"
-1 MOPs_Remap_Falloff 1 1 "input2"
+1 MOPs_Remap_Falloff1 1 1 "input2"
}
inputs
{
0 switch_falloff_type 0 1
-1 MOPs_Remap_Falloff 0 1
+1 MOPs_Remap_Falloff1 0 1
}
stat
{
create 1588875175
- modify 1588875195
+ modify 1592358232
author Henry@LAPPY586
access 0777
}
@@ -6653,7 +6648,7 @@ Content-Type: text/plain
{
version 0.8
-input [ 8 locks=0 ] ( [ input 0 ] )
+input [ 8 locks=0 ] ( [ input 1 ] )
}
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
@@ -6663,7 +6658,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -6738,7 +6733,7 @@ Content-Type: text/plain
{
"___Version___":{
"type":"string",
- "value":"18.0.391"
+ "value":"18.0.460"
}
}
@@ -6750,7 +6745,6 @@ Content-Type: text/plain
falloff_linear
do_local_transform
transform_guide
-MOPs_Remap_Falloff
grid_end
grid_start
merge1
@@ -6808,6 +6802,7 @@ unpack1
pointwrangle3
switch2
switch3
+MOPs_Remap_Falloff1
--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
Content-Disposition: attachment; filename="hdaroot.net"
diff --git a/otls/MOPS_noise_modifier.hda/INDEX__SECTION b/otls/MOPS_noise_modifier.hda/INDEX__SECTION
index 82f19562..0d8be6c7 100644
--- a/otls/MOPS_noise_modifier.hda/INDEX__SECTION
+++ b/otls/MOPS_noise_modifier.hda/INDEX__SECTION
@@ -24,5 +24,18 @@ Inputs: 1 to 1
Subnet: true
Python: false
Empty: false
-Modified: Sun May 3 15:06:31 2020
+Modified: Sun May 3 15:06:25 2020
+Operator: MOPS::Noise_Modifier::1.2
+Label: MOPs Noise Modifier
+Path: oplib:/MOPS::Sop/Noise_Modifier::1.1?MOPS::Sop/Noise_Modifier::1.2
+Icon: opdef:/MOPS::Sop/Noise_Modifier::1.1?IconSVG
+Table: Sop
+License:
+Extra:
+User:
+Inputs: 1 to 1
+Subnet: true
+Python: false
+Empty: false
+Modified: Mon Jun 22 15:06:25 2020
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.1/Contents.dir/.OPdummydefs b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.1/Contents.dir/.OPdummydefs
index 90f0f811..67696691 100644
Binary files a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.1/Contents.dir/.OPdummydefs and b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.1/Contents.dir/.OPdummydefs differ
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.1/Contents.dir/Contents.mime b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.1/Contents.dir/Contents.mime
index b6f83997..9a659c8a 100644
--- a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.1/Contents.dir/Contents.mime
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.1/Contents.dir/Contents.mime
@@ -49,7 +49,7 @@ inputs
stat
{
create 1588543198
- modify 1588543656
+ modify 1588543644
author Henry@LAPPY586
access 0777
}
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/.OPdummydefs b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/.OPdummydefs
new file mode 100644
index 00000000..3d0e0cf3
Binary files /dev/null and b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/.OPdummydefs differ
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/.OPfallbacks b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/.OPfallbacks
new file mode 100644
index 00000000..b892fa34
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/.OPfallbacks
@@ -0,0 +1,14 @@
+MOPS::Sop/Apply_Attributes::1.4 C:/Users/Henry/Projects/VFX/MOPS/otls/MOPS_applyAttributes.hda
+MOPS::Sop/Apply_Attributes::1.4 otls/MOPS_applyAttributes.hda
+MOPS::Sop/Extract_Attributes::1.0 C:/Users/Henry/Projects/VFX/MOPS/otls/MOPS_extractAttributes.hda
+MOPS::Sop/Extract_Attributes::1.0 otls/MOPS_extractAttributes.hda
+MOPS::Sop/Noise_Patterns::1.2 C:/Users/Henry/Projects/VFX/MOPS/otls/MOPS_Noise_Patterns.hda
+MOPS::Sop/Noise_Patterns::1.2 otls/MOPS_Noise_Patterns.hda
+Sop/attribdelete C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibSop.hda
+Sop/attribdelete otls/OPlibSop.hda
+Sop/attribwrangle C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibSop.hda
+Sop/attribwrangle otls/OPlibSop.hda
+Sop/solver C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibSop.hda
+Sop/solver otls/OPlibSop.hda
+Sop/split C:/PROGRA~1/SIDEEF~1/HOUDIN~1.460/houdini/otls/OPlibSop.hda
+Sop/split otls/OPlibSop.hda
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/Contents.mime b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/Contents.mime
new file mode 100644
index 00000000..69b4ecc3
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/Contents.mime
@@ -0,0 +1,6261 @@
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY"
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename=".OPfallbacks"
+Content-Type: application/external-reference
+
+.OPfallbacks
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename=".OPdummydefs"
+Content-Type: application/external-reference
+
+.OPdummydefs
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="node_type"
+Content-Type: text/plain
+
+Sop
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot.init"
+Content-Type: text/plain
+
+type = MOPS::Noise_Modifier::1.1
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position 2.62677 -7.39388
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 MOPs_Shape_Falloff 1 1 "input1"
+}
+inputs
+{
+0 MOPs_Shape_Falloff 0 1
+}
+stat
+{
+ create 1592787428
+ modify 1592879674
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot.inp"
+Content-Type: text/plain
+
+1
+0 -9.0211399888241299 16.085006882380917 2 0 __NO_OWNER_NETWORK_BOX__ "FROMOUTPUT"
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/__stickynote1.postitinit"
+Content-Type: text/plain
+
+type = postitnote
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/__stickynote1.postitdef"
+Content-Type: text/plain
+
+text "- switch out the do_polylines so they're joined either way.
+-optionally compute curveu for trails
+-optionally fade falloff attributes over lengths
+-then delete primitives if point trails are desired"
+position -3.58462 -5.41535
+size 6.17889 5.66822
+flags = minimize off
+stat
+{
+ create 1546928693
+ modify 1546928867
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 1 0.969 0.522
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/__stickynote2.postitinit"
+Content-Type: text/plain
+
+type = postitnote
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/__stickynote2.postitdef"
+Content-Type: text/plain
+
+text "noise signature can be scalar or vector.
+scalar noise always goes along N. vector can go in world or local space."
+position -19.8445 5.97869
+size 3.88217 2.15919
+flags = minimize off
+stat
+{
+ create 1554925385
+ modify 1554925409
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 1 0.969 0.522
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Apply_Attributes.init"
+Content-Type: text/plain
+
+type = MOPS::Apply_Attributes::1.4
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Apply_Attributes.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -12.0983 -3.43131
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+0 "output1"
+}
+inputsNamed3
+{
+1 group1 1 1 "input1"
+2 pointwrangle1 1 1 "input2"
+}
+inputs
+{
+0 group1 0 1
+1 pointwrangle1 0 1
+}
+stat
+{
+ create 1583723904
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Apply_Attributes.chn"
+Content-Type: text/plain
+
+{
+ channel do_rotate {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../orientclones\") }
+ }
+ channel do_scale {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../compute_transform_scalar/do_scale\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Apply_Attributes.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+group [ 0 locks=0 autoscope=0 ] ( __mops_orig )
+grouptype [ 0 locks=0 autoscope=0 ] ( "guess" )
+sepparm [ 0 locks=0 ] ( )
+matchmode [ 0 locks=0 autoscope=0 ] ( "0" )
+folder0 [ 0 locks=0 autoscope=0 ] ( 0 0 0 )
+do_translate [ 0 locks=0 autoscope=0 ] ( "on" )
+do_rotate [ 0 locks=0 autoscope=0 ] ( [ do_rotate 1 ] )
+do_scale [ 0 locks=0 autoscope=0 ] ( [ do_scale 0 ] )
+do_pivots [ 0 locks=0 autoscope=0 ] ( "on" )
+sepparm2 [ 0 locks=0 ] ( )
+local_space [ 0 locks=0 autoscope=0 ] ( "on" )
+rotate_mode [ 0 locks=0 autoscope=0 ] ( 1 )
+rotate_order [ 0 locks=0 autoscope=0 ] ( 0 )
+scale_mode [ 0 locks=0 autoscope=0 ] ( 0 )
+do_falloff [ 0 locks=0 autoscope=0 ] ( "off" )
+falloff_attribute [ 0 locks=0 autoscope=0 ] ( mops_falloff )
+ignore_no_falloff [ 0 locks=0 autoscope=0 ] ( "off" )
+do_copy_attrs [ 0 locks=0 autoscope=1 ] ( "off" )
+attribname [ 0 locks=0 autoscope=0 ] ( "" )
+do_make_id [ 0 locks=0 autoscope=0 ] ( "on" )
+do_orient [ 0 locks=0 autoscope=0 ] ( "on" )
+do_output_scale [ 0 locks=0 autoscope=0 ] ( "on" )
+sepparm3 [ 0 locks=0 ] ( )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Apply_Attributes.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Extract_Attributes.init"
+Content-Type: text/plain
+
+type = MOPS::Extract_Attributes::1.0
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Extract_Attributes.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -8.24144 6.70216
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 group1 1 1 "input1"
+}
+inputs
+{
+0 group1 0 1
+}
+stat
+{
+ create 1546923011
+ modify 1586108130
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Extract_Attributes.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+do_pivot [ 0 locks=0 ] ( "on" )
+do_mops_orient [ 0 locks=0 ] ( "on" )
+do_full_transform [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Extract_Attributes.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/test_group_mask.init"
+Content-Type: text/plain
+
+type = attribwrangle
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/test_group_mask.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.17829 10.9101
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 make_id_if_none 1 1 "input1"
+}
+inputs
+{
+0 make_id_if_none 0 1
+}
+stat
+{
+ create 1546924805
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/test_group_mask.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+folder0 [ 0 locks=0 ] ( 0 0 )
+group [ 0 locks=0 ] ( "" )
+grouptype [ 0 locks=0 ] ( "guess" )
+class [ 0 locks=0 ] ( "detail" )
+vex_numcount [ 0 locks=0 ] ( 10 )
+vex_threadjobsize [ 0 locks=0 ] ( 1024 )
+snippet [ 0 locks=0 ] ( "// if the provided group is a primitive group, promote it to a point group.
+string group_name = chs(\"../group\");
+if(nprimitivesgroup(0, group_name) > 0) {
+ i@__promote_group = 1;
+}" )
+exportlist [ 0 locks=0 ] ( * )
+vex_strict [ 0 locks=0 ] ( "off" )
+autobind [ 0 locks=0 ] ( "on" )
+bindings [ 0 locks=0 ] ( 0 )
+groupautobind [ 0 locks=0 ] ( "on" )
+groupbindings [ 0 locks=0 ] ( 0 )
+vex_cwdpath [ 0 locks=0 ] ( . )
+vex_outputmask [ 0 locks=0 ] ( * )
+vex_updatenmls [ 0 locks=0 ] ( "off" )
+vex_matchattrib [ 0 locks=0 ] ( id )
+vex_inplace [ 0 locks=0 ] ( "off" )
+vex_selectiongroup [ 0 locks=0 ] ( "" )
+vex_precision [ 0 locks=0 ] ( auto )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/test_group_mask.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Noise_Patterns.init"
+Content-Type: text/plain
+
+type = MOPS::Noise_Patterns::1.2
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Noise_Patterns.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -11.8843 5.65482
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+0 "output1"
+}
+inputsNamed3
+{
+1 MOPs_Extract_Attributes 1 1 "input1"
+}
+inputs
+{
+0 MOPs_Extract_Attributes 0 1
+}
+stat
+{
+ create 1568176217
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Noise_Patterns.chn"
+Content-Type: text/plain
+
+{
+ channel signature {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../signature\") }
+ }
+ channel input {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 9 9 expr = ch(\"../noisetype\") }
+ }
+ channel use_rest {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../use_rest\") }
+ }
+ channel ampx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../ampx\") }
+ }
+ channel ampy {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../ampy\") }
+ }
+ channel ampz {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../ampz\") }
+ }
+ channel freqx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../freqx\") }
+ }
+ channel freqy {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../freqy\") }
+ }
+ channel freqz {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../freqz\") }
+ }
+ channel freqw {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../freqw\") }
+ }
+ channel uniform {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../uniform\") }
+ }
+ channel roughness {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 0.5 0.5 expr = ch(\"../roughness\") }
+ }
+ channel octaves {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../octaves\") }
+ }
+ channel offsetx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../offsetx\") }
+ }
+ channel offsety {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../offsety\") }
+ }
+ channel offsetz {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../offsetz\") }
+ }
+ channel offsetw {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../offsetw\") }
+ }
+ channel tile_sizex {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../tile_sizex\") }
+ }
+ channel tile_sizey {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../tile_sizey\") }
+ }
+ channel tile_sizez {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../tile_sizez\") }
+ }
+ channel Distortx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../Distortx\") }
+ }
+ channel Distorty {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../Distorty\") }
+ }
+ channel Distortz {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../Distortz\") }
+ }
+ channel time_varying {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../time_varying\") }
+ }
+ channel time_scale {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../time_scale\") }
+ }
+ channel input_rangevx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../input_rangevx\") }
+ }
+ channel input_rangevy {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../input_rangevy\") }
+ }
+ channel output_rangevx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../output_rangevx\") }
+ }
+ channel output_rangevy {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../output_rangevy\") }
+ }
+ channel do_remap_2D {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../do_remap\") }
+ }
+ channel do_remap_3D {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../do_remap\") }
+ }
+ channel input_rangex {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../input_rangevx\") }
+ }
+ channel input_rangey {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../input_rangevy\") }
+ }
+ channel output_rangex {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../output_rangevx\") }
+ }
+ channel output_rangey {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../output_rangevy\") }
+ }
+ channel input_min_3Dx {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../input_min_3Dx\") }
+ }
+ channel input_min_3Dy {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../input_min_3Dy\") }
+ }
+ channel input_min_3Dz {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../input_min_3Dz\") }
+ }
+ channel input_max_3Dx {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../input_max_3Dx\") }
+ }
+ channel input_max_3Dy {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../input_max_3Dy\") }
+ }
+ channel input_max_3Dz {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../input_max_3Dz\") }
+ }
+ channel output_min_3Dx {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../output_min_3Dx\") }
+ }
+ channel output_min_3Dy {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../output_min_3Dy\") }
+ }
+ channel output_min_3Dz {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../output_min_3Dz\") }
+ }
+ channel output_max_3Dx {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../output_max_3Dx\") }
+ }
+ channel output_max_3Dy {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../output_max_3Dy\") }
+ }
+ channel output_max_3Dz {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../output_max_3Dz\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Noise_Patterns.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+group [ 0 locks=0 ] ( "" )
+grouptype [ 0 locks=0 ] ( "guess" )
+sepparm3 [ 0 locks=0 ] ( )
+signature [ 0 locks=0 autoscope=0 ] ( [ signature 1 ] )
+attrname [ 0 locks=0 autoscope=0 ] ( __offset )
+attrnamev [ 0 locks=0 autoscope=0 ] ( __offset )
+sepparm [ 0 locks=0 ] ( )
+folder0 [ 0 locks=0 autoscope=0 ] ( 0 0 0 )
+input [ 0 locks=0 autoscope=0 ] ( [ input 9 ] )
+use_rest [ 0 locks=0 autoscope=0 ] ( [ use_rest 0 ] )
+sepparm2 [ 0 locks=0 ] ( )
+amp [ 0 locks=0 autoscope=0 ] ( [ ampx 1 ] [ ampy 1 ] [ ampz 1 ] )
+freq [ 0 locks=0 autoscope=0 ] ( [ freqx 1 ] [ freqy 1 ] [ freqz 1 ] [ freqw 1 ] )
+uniform [ 0 locks=0 autoscope=0 ] ( [ uniform 0 ] )
+roughness [ 0 locks=0 autoscope=0 ] ( [ roughness 0.5 ] )
+octaves [ 0 locks=0 autoscope=0 ] ( [ octaves 1 ] )
+offset [ 0 locks=0 autoscope=0 ] ( [ offsetx 0 ] [ offsety 0 ] [ offsetz 0 ] [ offsetw 0 ] )
+tile_size [ 0 locks=0 autoscope=0 ] ( [ tile_sizex 1 ] [ tile_sizey 1 ] [ tile_sizez 1 ] )
+Distort [ 0 locks=0 autoscope=0 ] ( [ Distortx 0 ] [ Distorty 0 ] [ Distortz 0 ] )
+time_varying [ 0 locks=0 autoscope=0 ] ( [ time_varying 1 ] )
+time_scale [ 0 locks=0 autoscope=0 ] ( [ time_scale 1 ] )
+do_remap_2D [ 0 locks=0 ] ( [ do_remap_2D 0 ] )
+input_rangev [ 0 locks=0 autoscope=0 ] ( [ input_rangevx -1 ] [ input_rangevy 1 ] )
+output_rangev [ 0 locks=0 autoscope=0 ] ( [ output_rangevx -1 ] [ output_rangevy 1 ] )
+do_remap_3D [ 0 locks=0 ] ( [ do_remap_3D 0 ] )
+input_range [ 0 locks=0 autoscope=0 ] ( [ input_rangex -1 ] [ input_rangey 1 ] )
+output_range [ 0 locks=0 autoscope=0 ] ( [ output_rangex -1 ] [ output_rangey 1 ] )
+input_min_3D [ 0 locks=0 ] ( [ input_min_3Dx -1 ] [ input_min_3Dy -1 ] [ input_min_3Dz -1 ] )
+input_max_3D [ 0 locks=0 ] ( [ input_max_3Dx 1 ] [ input_max_3Dy 1 ] [ input_max_3Dz 1 ] )
+output_min_3D [ 0 locks=0 ] ( [ output_min_3Dx -1 ] [ output_min_3Dy -1 ] [ output_min_3Dz -1 ] )
+output_max_3D [ 0 locks=0 ] ( [ output_max_3Dx 1 ] [ output_max_3Dy 1 ] [ output_max_3Dz 1 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/MOPs_Noise_Patterns.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_scalar.init"
+Content-Type: text/plain
+
+type = attribwrangle
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_scalar.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -15.1538 4.42726
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 MOPs_Noise_Patterns 0 1 "input1"
+}
+inputs
+{
+0 MOPs_Noise_Patterns 0 1
+}
+stat
+{
+ create 1554928384
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_scalar.spareparmdef"
+Content-Type: text/plain
+
+ group {
+ name "folder1"
+ label "Code"
+
+ parm {
+ name "group"
+ baseparm
+ label "Group"
+ export none
+ bindselector points "Modify Points"
+ "Select the points to affect and press Enter to complete."
+ 0 1 0xffffffff 0 grouptype 0
+ }
+ parm {
+ name "grouptype"
+ baseparm
+ label "Group Type"
+ export none
+ }
+ parm {
+ name "class"
+ baseparm
+ label "Run Over"
+ export none
+ }
+ parm {
+ name "vex_numcount"
+ baseparm
+ label "Number Count"
+ export none
+ }
+ parm {
+ name "vex_threadjobsize"
+ baseparm
+ label "Thread Job Size"
+ export none
+ }
+ parm {
+ name "snippet"
+ baseparm
+ label "VEXpression"
+ export all
+ }
+ parm {
+ name "exportlist"
+ baseparm
+ label "Attributes to Create"
+ export none
+ }
+ parm {
+ name "vex_strict"
+ baseparm
+ label "Enforce Prototypes"
+ export none
+ }
+ }
+
+ group {
+ name "folder1_1"
+ label "Bindings"
+
+ parm {
+ name "autobind"
+ baseparm
+ label "Autobind by Name"
+ export none
+ }
+ multiparm {
+ name "bindings"
+ label "Number of Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindname#"
+ baseparm
+ label "Attribute Name"
+ export none
+ }
+ parm {
+ name "bindparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "groupautobind"
+ baseparm
+ label "Autobind Groups by Name"
+ export none
+ }
+ multiparm {
+ name "groupbindings"
+ label "Group Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindgroupname#"
+ baseparm
+ label "Group Name"
+ export none
+ }
+ parm {
+ name "bindgroupparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "vex_cwdpath"
+ baseparm
+ label "Evaluation Node Path"
+ export none
+ }
+ parm {
+ name "vex_outputmask"
+ baseparm
+ label "Export Parameters"
+ export none
+ }
+ parm {
+ name "vex_updatenmls"
+ baseparm
+ label "Update Normals If Displaced"
+ export none
+ }
+ parm {
+ name "vex_matchattrib"
+ baseparm
+ label "Attribute to Match"
+ export none
+ }
+ parm {
+ name "vex_inplace"
+ baseparm
+ label "Compute Results In Place"
+ export none
+ }
+ parm {
+ name "vex_selectiongroup"
+ baseparm
+ label "Output Selection Group"
+ export none
+ }
+ }
+
+ parm {
+ name "do_falloff"
+ label "Do Falloff"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "scale"
+ label "Scale"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "do_scale"
+ label "Do Scale"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "oldmin"
+ label "Oldmin"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "oldmax"
+ label "Oldmax"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "min"
+ label "Min"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "max"
+ label "Max"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "vex_precision"
+ baseparm
+ label "VEX Precision"
+ export none
+ }
+ parm {
+ name "do_P"
+ label "Do P"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_scalar.chn"
+Content-Type: text/plain
+
+{
+ channel do_falloff {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../do_falloff\") }
+ }
+ channel scale {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../scale\") }
+ }
+ channel bindname1 {
+ lefttype = extend
+ righttype = extend
+ defaultString = \"N\"
+ flags = 0
+ segment { length = 0 expr = chs(\"../forwardaxis\") }
+ }
+ channel do_scale {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../do_scale\") }
+ }
+ channel oldmax {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../MOPs_Noise_Patterns/input_rangevy\") }
+ }
+ channel oldmin {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../MOPs_Noise_Patterns/input_rangevx\") }
+ }
+ channel min {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../scale_rangex\") }
+ }
+ channel max {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../scale_rangey\") }
+ }
+ channel do_P {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../do_P\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_scalar.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+folder0 [ 0 locks=0 ] ( 0 0 )
+group [ 0 locks=0 ] ( "" )
+grouptype [ 0 locks=0 ] ( "guess" )
+class [ 0 locks=0 ] ( "point" )
+vex_numcount [ 0 locks=0 ] ( 10 )
+vex_threadjobsize [ 0 locks=0 ] ( 1024 )
+snippet [ 0 locks=0 ] ( "// compute displaced position
+float scale = ch(\"scale\");
+if(!haspointattrib(0, \"mops_falloff\")) {
+ f@mops_falloff = 1;
+}
+float falloff = @mops_falloff;
+if(!chi(\"do_falloff\")) {
+ falloff = 1;
+}
+vector disp = v@axis * f@__offset * falloff * scale;
+
+if(chi(\"do_scale\")) {
+ float pscale = fit(length(disp), ch(\"oldmin\"), ch(\"oldmax\"), ch(\"min\"), ch(\"max\"));
+ f@pscale = lerp(1, pscale, scale);
+ v@scale = 1;
+}
+if(chi(\"do_P\")) {
+ @P += disp;
+}" )
+exportlist [ 0 locks=0 ] ( * )
+vex_strict [ 0 locks=0 ] ( "off" )
+autobind [ 0 locks=0 ] ( "on" )
+bindings [ 0 locks=0 ] ( 1 )
+groupautobind [ 0 locks=0 ] ( "on" )
+groupbindings [ 0 locks=0 ] ( 0 )
+vex_cwdpath [ 0 locks=0 ] ( . )
+vex_outputmask [ 0 locks=0 ] ( * )
+vex_updatenmls [ 0 locks=0 ] ( "off" )
+vex_matchattrib [ 0 locks=0 ] ( id )
+vex_inplace [ 0 locks=0 ] ( "off" )
+vex_selectiongroup [ 0 locks=0 ] ( "" )
+vex_precision [ 0 locks=0 ] ( auto )
+folder1 [ 0 locks=0 ] ( 0 0 )
+do_falloff [ 0 locks=0 ] ( [ do_falloff 1 ] )
+scale [ 0 locks=0 ] ( [ scale 1 ] )
+do_scale [ 0 locks=0 ] ( [ do_scale 0 ] )
+oldmin [ 0 locks=0 ] ( [ oldmin -1 ] )
+oldmax [ 0 locks=0 ] ( [ oldmax 1 ] )
+min [ 0 locks=0 ] ( [ min 0 ] )
+max [ 0 locks=0 ] ( [ max 1 ] )
+do_P [ 0 locks=0 ] ( [ do_P 0 ] )
+bindname1 [ 0 locks=0 ] ( [ bindname1 N ] )
+bindparm1 [ 0 locks=0 ] ( axis )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_scalar.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_vector.init"
+Content-Type: text/plain
+
+type = attribwrangle
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_vector.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -12.5444 3.91202
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 MOPs_Noise_Patterns 0 1 "input1"
+}
+inputs
+{
+0 MOPs_Noise_Patterns 0 1
+}
+stat
+{
+ create 1554928384
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_vector.spareparmdef"
+Content-Type: text/plain
+
+ group {
+ name "folder1"
+ label "Code"
+
+ parm {
+ name "group"
+ baseparm
+ label "Group"
+ export none
+ bindselector points "Modify Points"
+ "Select the points to affect and press Enter to complete."
+ 0 1 0xffffffff 0 grouptype 0
+ }
+ parm {
+ name "grouptype"
+ baseparm
+ label "Group Type"
+ export none
+ }
+ parm {
+ name "class"
+ baseparm
+ label "Run Over"
+ export none
+ }
+ parm {
+ name "vex_numcount"
+ baseparm
+ label "Number Count"
+ export none
+ }
+ parm {
+ name "vex_threadjobsize"
+ baseparm
+ label "Thread Job Size"
+ export none
+ }
+ parm {
+ name "snippet"
+ baseparm
+ label "VEXpression"
+ export all
+ }
+ parm {
+ name "exportlist"
+ baseparm
+ label "Attributes to Create"
+ export none
+ }
+ parm {
+ name "vex_strict"
+ baseparm
+ label "Enforce Prototypes"
+ export none
+ }
+ }
+
+ group {
+ name "folder1_1"
+ label "Bindings"
+
+ parm {
+ name "autobind"
+ baseparm
+ label "Autobind by Name"
+ export none
+ }
+ multiparm {
+ name "bindings"
+ label "Number of Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindname#"
+ baseparm
+ label "Attribute Name"
+ export none
+ }
+ parm {
+ name "bindparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "groupautobind"
+ baseparm
+ label "Autobind Groups by Name"
+ export none
+ }
+ multiparm {
+ name "groupbindings"
+ label "Group Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindgroupname#"
+ baseparm
+ label "Group Name"
+ export none
+ }
+ parm {
+ name "bindgroupparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "vex_cwdpath"
+ baseparm
+ label "Evaluation Node Path"
+ export none
+ }
+ parm {
+ name "vex_outputmask"
+ baseparm
+ label "Export Parameters"
+ export none
+ }
+ parm {
+ name "vex_updatenmls"
+ baseparm
+ label "Update Normals If Displaced"
+ export none
+ }
+ parm {
+ name "vex_matchattrib"
+ baseparm
+ label "Attribute to Match"
+ export none
+ }
+ parm {
+ name "vex_inplace"
+ baseparm
+ label "Compute Results In Place"
+ export none
+ }
+ parm {
+ name "vex_selectiongroup"
+ baseparm
+ label "Output Selection Group"
+ export none
+ }
+ }
+
+ parm {
+ name "scale"
+ label "Scale"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "do_falloff"
+ label "Do Falloff"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "do_scale"
+ label "Do Scale"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "oldmin"
+ label "Oldmin"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "oldmax"
+ label "Oldmax"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "min"
+ label "Min"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "max"
+ label "Max"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "vex_precision"
+ baseparm
+ label "VEX Precision"
+ export none
+ }
+ parm {
+ name "do_P"
+ label "Do P"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "scale_amount"
+ label "Scale Amount"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_vector.chn"
+Content-Type: text/plain
+
+{
+ channel do_falloff {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../do_falloff\") }
+ }
+ channel scale {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../scale\") }
+ }
+ channel do_scale {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../compute_transform_scalar/do_scale\") }
+ }
+ channel min {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../scale_rangex\") }
+ }
+ channel max {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../scale_rangey\") }
+ }
+ channel oldmin {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../scale_range_inputx\") }
+ }
+ channel oldmax {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../scale_range_inputy\") }
+ }
+ channel do_P {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../do_P\") }
+ }
+ channel scale_amount {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../scale_amount\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_vector.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+folder0 [ 0 locks=0 ] ( 0 0 )
+group [ 0 locks=0 ] ( "" )
+grouptype [ 0 locks=0 ] ( "guess" )
+class [ 0 locks=0 ] ( "point" )
+vex_numcount [ 0 locks=0 ] ( 10 )
+vex_threadjobsize [ 0 locks=0 ] ( 1024 )
+snippet [ 0 locks=0 ] ( "if(!haspointattrib(0, \"mops_falloff\")) {
+ f@mops_falloff = 1;
+}
+float falloff = @mops_falloff;
+if(!chi(\"do_falloff\")) {
+ falloff = 1;
+}
+
+// compute displaced position
+float scale = chf(\"scale\");
+vector orig_P = @P;
+vector disp = v@__offset * scale * falloff;
+@P += disp;
+
+// compute displaced orientation
+// gonna switch this up to create single-axis quaternion offsets for less twitchy movement
+/*
+vector outN = normalize(@P - orig_P);
+matrix3 delta = dihedral(v@N, outN);
+vector out_up = normalize(delta * v@up);
+vector4 orig_orient = quaternion(maketransform(v@N, v@up));
+vector4 out_orient = quaternion(maketransform(outN, out_up));
+p@orient = slerp(orig_orient, out_orient, scale * falloff);
+*/
+vector4 rx = quaternion(v@__offset.x, {1,0,0});
+vector4 ry = quaternion(v@__offset.y, {0,1,0});
+vector4 rz = quaternion(v@__offset.z, {0,0,1});
+
+vector4 orient = p@orient;
+orient = qmultiply(orient, rx);
+orient = qmultiply(orient, ry);
+orient = qmultiply(orient, rz);
+p@orient = slerp(p@orient, orient, falloff);
+
+
+if(chi(\"do_scale\")) {
+ disp = v@__offset * falloff;
+ float pscale = fit(length(disp), ch(\"oldmin\"), ch(\"oldmax\"), ch(\"min\"), ch(\"max\"));
+ f@__test = pscale;
+ pscale = lerp(1, pscale, ch(\"scale_amount\"));
+ f@pscale = lerp(1, pscale, falloff);
+ v@scale = 1;
+}
+
+if(!chi(\"do_P\")) {
+ @P = orig_P;
+}" )
+exportlist [ 0 locks=0 ] ( * )
+vex_strict [ 0 locks=0 ] ( "off" )
+autobind [ 0 locks=0 ] ( "on" )
+bindings [ 0 locks=0 ] ( 0 )
+groupautobind [ 0 locks=0 ] ( "on" )
+groupbindings [ 0 locks=0 ] ( 0 )
+vex_cwdpath [ 0 locks=0 ] ( . )
+vex_outputmask [ 0 locks=0 ] ( * )
+vex_updatenmls [ 0 locks=0 ] ( "off" )
+vex_matchattrib [ 0 locks=0 ] ( id )
+vex_inplace [ 0 locks=0 ] ( "off" )
+vex_selectiongroup [ 0 locks=0 ] ( "" )
+vex_precision [ 0 locks=0 ] ( auto )
+folder1 [ 0 locks=0 ] ( 0 0 )
+scale [ 0 locks=0 ] ( [ scale 1 ] )
+do_falloff [ 0 locks=0 ] ( [ do_falloff 1 ] )
+do_scale [ 8 locks=0 ] ( [ do_scale 0 ] )
+oldmin [ 8 locks=0 ] ( [ oldmin 0 ] )
+oldmax [ 8 locks=0 ] ( [ oldmax 1 ] )
+min [ 0 locks=0 ] ( [ min 0 ] )
+max [ 0 locks=0 ] ( [ max 1 ] )
+do_P [ 0 locks=0 ] ( [ do_P 0 ] )
+scale_amount [ 0 locks=0 ] ( [ scale_amount 1 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/compute_transform_vector.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise.init"
+Content-Type: text/plain
+
+type = solver
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -7.55855 3.91302
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault off exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 MOPs_Extract_Attributes 1 1 "input1"
+}
+inputs
+{
+0 MOPs_Extract_Attributes 0 1
+}
+stat
+{
+ create 1546815258
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 1 1 1
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise.chn"
+Content-Type: text/plain
+
+{
+ channel resimulate {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../resimulate\") }
+ }
+ channel startframe {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../startframe\") }
+ }
+ channel substep {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../substep\") }
+ }
+ channel cacheenabled {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../cacheenabled\") }
+ }
+ channel cachetodisk {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../cachetodisk\") }
+ }
+ channel cachemaxsize {
+ lefttype = extend
+ righttype = extend
+ default = 5000
+ flags = 0
+ segment { length = 0 value = 5000 5000 expr = ch(\"../cachemaxsize\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+resimulate [ 0 locks=0 ] ( [ resimulate 0 ] )
+useinitialsop [ 0 locks=0 ] ( "off" )
+initialsop [ 0 locks=0 ] ( "" )
+startframe [ 0 locks=0 ] ( [ startframe 1 ] )
+substep [ 0 locks=0 ] ( [ substep 1 ] )
+cacheenabled [ 0 locks=0 ] ( [ cacheenabled 1 ] )
+cachetodisk [ 0 locks=0 ] ( [ cachetodisk 0 ] )
+cachemaxsize [ 0 locks=0 ] ( [ cachemaxsize 5000 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s.def"
+Content-Type: text/plain
+
+comment ""
+position 1.88226 0.517618
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display on render off highlight off unload off savedata off compress on colordefault off exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 sopgeo1 1 1 "input1"
+}
+inputs
+{
+0 sopgeo1 0 1
+}
+stat
+{
+ create 1324348265
+ modify 1586049943
+ author nobody@nowhere.sidefx.com
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+parmop_usesoppath [ 0 locks=0 autoscope=0 ] ( "default" )
+usesoppath [ 0 locks=0 autoscope=0 ] ( "off" )
+parmop_soppath [ 0 locks=0 autoscope=0 ] ( "default" )
+soppath [ 0 locks=0 autoscope=0 ] ( "" )
+parmop_datapath [ 0 locks=0 autoscope=0 ] ( "default" )
+datapath [ 0 locks=0 autoscope=0 ] ( Geometry )
+parmop_doinvoke [ 0 locks=0 ] ( "default" )
+doinvoke [ 0 locks=0 ] ( "off" )
+parmop_primaryinputname [ 0 locks=0 ] ( "default" )
+primaryinputname [ 0 locks=0 ] ( data )
+parmop_numinputs [ 0 locks=0 ] ( "default" )
+numinputs [ 0 locks=0 ] ( 0 )
+parmop_numoutputs [ 0 locks=0 ] ( "default" )
+numoutputs [ 0 locks=0 ] ( 0 )
+parmop_transformsopoutput [ 0 locks=0 autoscope=0 ] ( "default" )
+transformsopoutput [ 0 locks=0 autoscope=0 ] ( "on" )
+parmop_solveinitframe [ 0 locks=0 autoscope=0 ] ( "default" )
+solveinitframe [ 0 locks=0 autoscope=0 ] ( "on" )
+parmop_numstamps [ 0 locks=0 ] ( "default" )
+numstamps [ 0 locks=0 ] ( 0 )
+parmop_usetimestep [ 0 locks=0 ] ( "default" )
+usetimestep [ 0 locks=0 ] ( "on" )
+parmop_timescale [ 0 locks=0 ] ( "default" )
+timescale [ 0 locks=0 ] ( 1 )
+defaultparmop [ 0 locks=0 autoscope=0 ] ( "initial" )
+addaffectors [ 0 locks=0 autoscope=0 ] ( "on" )
+group [ 0 locks=0 autoscope=0 ] ( * )
+dataname [ 0 locks=0 autoscope=0 ] ( $OS )
+uniquedataname [ 0 locks=0 autoscope=0 ] ( "on" )
+solverperobject [ 0 locks=0 autoscope=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/__stickynote1.postitinit"
+Content-Type: text/plain
+
+type = postitnote
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/__stickynote1.postitdef"
+Content-Type: text/plain
+
+text "add local space toggle"
+position 3.3721 -8.97784
+size 2.5 2.5
+flags = minimize off
+stat
+{
+ create 1554934410
+ modify 1554934416
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 1 0.969 0.522
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/attribwrangle1.init"
+Content-Type: text/plain
+
+type = attribwrangle
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/attribwrangle1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position 3.63186 -4.48454
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 update_attrs 2 1 "input1"
+}
+inputs
+{
+0 update_attrs 0 1
+}
+stat
+{
+ create 1546816119
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/attribwrangle1.spareparmdef"
+Content-Type: text/plain
+
+ group {
+ name "folder1"
+ label "Code"
+
+ parm {
+ name "group"
+ baseparm
+ label "Group"
+ export none
+ bindselector points "Modify Points"
+ "Select the points to affect and press Enter to complete."
+ 0 1 0xffffffff 0 grouptype 0
+ }
+ parm {
+ name "grouptype"
+ baseparm
+ label "Group Type"
+ export none
+ }
+ parm {
+ name "class"
+ baseparm
+ label "Run Over"
+ export none
+ }
+ parm {
+ name "vex_numcount"
+ baseparm
+ label "Number Count"
+ export none
+ }
+ parm {
+ name "vex_threadjobsize"
+ baseparm
+ label "Thread Job Size"
+ export none
+ }
+ parm {
+ name "snippet"
+ baseparm
+ label "VEXpression"
+ export all
+ }
+ parm {
+ name "exportlist"
+ baseparm
+ label "Attributes to Create"
+ export none
+ }
+ parm {
+ name "vex_strict"
+ baseparm
+ label "Enforce Prototypes"
+ export none
+ }
+ }
+
+ group {
+ name "folder1_1"
+ label "Bindings"
+
+ parm {
+ name "autobind"
+ baseparm
+ label "Autobind by Name"
+ export none
+ }
+ multiparm {
+ name "bindings"
+ label "Number of Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindname#"
+ baseparm
+ label "Attribute Name"
+ export none
+ }
+ parm {
+ name "bindparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "groupautobind"
+ baseparm
+ label "Autobind Groups by Name"
+ export none
+ }
+ multiparm {
+ name "groupbindings"
+ label "Group Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindgroupname#"
+ baseparm
+ label "Group Name"
+ export none
+ }
+ parm {
+ name "bindgroupparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "vex_cwdpath"
+ baseparm
+ label "Evaluation Node Path"
+ export none
+ }
+ parm {
+ name "vex_outputmask"
+ baseparm
+ label "Export Parameters"
+ export none
+ }
+ parm {
+ name "vex_updatenmls"
+ baseparm
+ label "Update Normals If Displaced"
+ export none
+ }
+ parm {
+ name "vex_matchattrib"
+ baseparm
+ label "Attribute to Match"
+ export none
+ }
+ parm {
+ name "vex_inplace"
+ baseparm
+ label "Compute Results In Place"
+ export none
+ }
+ parm {
+ name "vex_selectiongroup"
+ baseparm
+ label "Output Selection Group"
+ export none
+ }
+ }
+
+ parm {
+ name "scale"
+ label "Scale"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "amplitude"
+ label "Amplitude"
+ type vector
+ size 3
+ default { "0" "0" "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "frequency"
+ label "Frequency"
+ type vector
+ size 3
+ default { "0" "0" "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "offset"
+ label "Offset"
+ type vector
+ size 3
+ default { "0" "0" "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "aim_weight"
+ label "Aim Weight"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "do_trails"
+ label "Do Trails"
+ type toggle
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "do_falloff"
+ label "Do Falloff"
+ type toggle
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "do_vexpression"
+ label "Do Vexpression"
+ type toggle
+ default { "0" }
+ }
+ parm {
+ name "vexpression"
+ label "Vexpression"
+ type string
+ default { "" }
+ parmtag { "editor" "1" }
+ parmtag { "editorlang" "vex" }
+ }
+ parm {
+ name "vex_precision"
+ baseparm
+ label "VEX Precision"
+ export none
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/attribwrangle1.chn"
+Content-Type: text/plain
+
+{
+ channel scale {
+ lefttype = extend
+ righttype = extend
+ default = 0.5
+ flags = 0
+ segment { length = 0 value = 0.5 0.5 expr = ch(\"../../../../scale\") }
+ }
+ channel do_trails {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../do_trails\") }
+ }
+ channel do_falloff {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../do_falloff\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/attribwrangle1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+folder0 [ 0 locks=0 ] ( 0 0 )
+group [ 0 locks=0 ] ( __mops_orig )
+grouptype [ 0 locks=0 ] ( "points" )
+class [ 0 locks=0 ] ( "point" )
+vex_numcount [ 0 locks=0 ] ( 10 )
+vex_threadjobsize [ 0 locks=0 ] ( 1024 )
+snippet [ 0 locks=0 ] ( "float scale = chf(\"scale\");
+vector amp = chv(\"amplitude\");
+vector freq = chv(\"frequency\");
+vector offset = chv(\"offset\");
+float aim_weight = ch(\"aim_weight\");
+
+if(!haspointattrib(0, \"mops_falloff\")) {
+ f@mops_falloff = 1;
+}
+float falloff = @mops_falloff;
+if(!chi(\"do_falloff\")) {
+ falloff = 1;
+}
+
+`ifs(ch(\"do_vexpression\"), chs(\"vexpression\"), \"\")`
+
+vector move = curlxnoise(v@P * freq + offset) * amp * scale * falloff * @TimeInc;
+v@P += move;
+
+// compute orientation
+vector aim = normalize(move);
+// compare against previous step's N and build a quaternion to rotate by
+vector4 aim_delta = dihedral(v@N, aim);
+vector up = qrotate(aim_delta, v@up);
+
+// blend output orientation with last timestep's orientation, based on aim_weight.
+vector4 prev_orient = quaternion(maketransform(v@N, v@up));
+vector4 this_orient = quaternion(maketransform(aim, up));
+vector4 out_orient = slerp(prev_orient, this_orient, aim_weight*falloff);
+
+// convert output orientation into vectors
+p@orient = out_orient;
+matrix3 m = qconvert(out_orient);
+v@N = m * {0,0,1};
+v@up = m * {0,1,0};
+
+// optional trails
+if(chi(\"do_trails\")) {
+ int newpt = addpoint(0, @ptnum);
+ setpointgroup(0, \"__mops_orig\", newpt, 0, \"set\");
+}" )
+exportlist [ 0 locks=0 ] ( * )
+vex_strict [ 0 locks=0 ] ( "off" )
+autobind [ 0 locks=0 ] ( "on" )
+bindings [ 0 locks=0 ] ( 0 )
+groupautobind [ 0 locks=0 ] ( "on" )
+groupbindings [ 0 locks=0 ] ( 0 )
+vex_cwdpath [ 0 locks=0 ] ( . )
+vex_outputmask [ 0 locks=0 ] ( * )
+vex_updatenmls [ 0 locks=0 ] ( "off" )
+vex_matchattrib [ 0 locks=0 ] ( id )
+vex_inplace [ 0 locks=0 ] ( "off" )
+vex_selectiongroup [ 0 locks=0 ] ( "" )
+vex_precision [ 0 locks=0 ] ( auto )
+folder1 [ 0 locks=0 ] ( 0 0 )
+scale [ 8 locks=0 ] ( [ scale 1 ] )
+amplitude [ 0 locks=0 ] ( 0.5 0.5 0.5 )
+frequency [ 0 locks=0 ] ( 1 1 1 )
+offset [ 0 locks=0 ] ( 0 0 0 )
+aim_weight [ 0 locks=0 ] ( 0.10000000000000001 )
+do_trails [ 0 locks=0 ] ( [ do_trails 0 ] )
+do_falloff [ 0 locks=0 ] ( [ do_falloff 1 ] )
+do_vexpression [ 0 locks=0 ] ( "off" )
+vexpression [ 0 locks=0 ] ( "// scale = 1;
+// freq = {1,1,1};
+// amp = {1,1,1};
+// offset = {1,1,1};
+// falloff = 1;
+
+// SOLVER MODE ONLY
+// aim_weight = 0.1;" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/attribwrangle1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_scalar.init"
+Content-Type: text/plain
+
+type = attribwrangle
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_scalar.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -2.88947 -6.93875
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 MOPs_Noise_Patterns1 0 1 "input1"
+}
+inputs
+{
+0 MOPs_Noise_Patterns1 0 1
+}
+stat
+{
+ create 1554928384
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_scalar.spareparmdef"
+Content-Type: text/plain
+
+ group {
+ name "folder1"
+ label "Code"
+
+ parm {
+ name "group"
+ baseparm
+ label "Group"
+ export none
+ bindselector points "Modify Points"
+ "Select the points to affect and press Enter to complete."
+ 0 1 0xffffffff 0 grouptype 0
+ }
+ parm {
+ name "grouptype"
+ baseparm
+ label "Group Type"
+ export none
+ }
+ parm {
+ name "class"
+ baseparm
+ label "Run Over"
+ export none
+ }
+ parm {
+ name "vex_numcount"
+ baseparm
+ label "Number Count"
+ export none
+ }
+ parm {
+ name "vex_threadjobsize"
+ baseparm
+ label "Thread Job Size"
+ export none
+ }
+ parm {
+ name "snippet"
+ baseparm
+ label "VEXpression"
+ export all
+ }
+ parm {
+ name "exportlist"
+ baseparm
+ label "Attributes to Create"
+ export none
+ }
+ parm {
+ name "vex_strict"
+ baseparm
+ label "Enforce Prototypes"
+ export none
+ }
+ }
+
+ group {
+ name "folder1_1"
+ label "Bindings"
+
+ parm {
+ name "autobind"
+ baseparm
+ label "Autobind by Name"
+ export none
+ }
+ multiparm {
+ name "bindings"
+ label "Number of Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindname#"
+ baseparm
+ label "Attribute Name"
+ export none
+ }
+ parm {
+ name "bindparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "groupautobind"
+ baseparm
+ label "Autobind Groups by Name"
+ export none
+ }
+ multiparm {
+ name "groupbindings"
+ label "Group Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindgroupname#"
+ baseparm
+ label "Group Name"
+ export none
+ }
+ parm {
+ name "bindgroupparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "vex_cwdpath"
+ baseparm
+ label "Evaluation Node Path"
+ export none
+ }
+ parm {
+ name "vex_outputmask"
+ baseparm
+ label "Export Parameters"
+ export none
+ }
+ parm {
+ name "vex_updatenmls"
+ baseparm
+ label "Update Normals If Displaced"
+ export none
+ }
+ parm {
+ name "vex_matchattrib"
+ baseparm
+ label "Attribute to Match"
+ export none
+ }
+ parm {
+ name "vex_inplace"
+ baseparm
+ label "Compute Results In Place"
+ export none
+ }
+ parm {
+ name "vex_selectiongroup"
+ baseparm
+ label "Output Selection Group"
+ export none
+ }
+ }
+
+ parm {
+ name "do_falloff"
+ label "Do Falloff"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "scale"
+ label "Scale"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "do_trails"
+ label "Do Trails"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "vex_precision"
+ baseparm
+ label "VEX Precision"
+ export none
+ }
+ parm {
+ name "do_P"
+ label "Do P"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_scalar.chn"
+Content-Type: text/plain
+
+{
+ channel do_falloff {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../do_falloff\") }
+ }
+ channel scale {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../scale\") }
+ }
+ channel do_trails {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../do_trails\") }
+ }
+ channel bindname1 {
+ lefttype = extend
+ righttype = extend
+ defaultString = \"N\"
+ flags = 0
+ segment { length = 0 expr = chs(\"../../../../forwardaxis\") }
+ }
+ channel do_P {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../do_P\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_scalar.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+folder0 [ 0 locks=0 ] ( 0 0 )
+group [ 0 locks=0 ] ( __mops_orig )
+grouptype [ 0 locks=0 ] ( "guess" )
+class [ 0 locks=0 ] ( "point" )
+vex_numcount [ 0 locks=0 ] ( 10 )
+vex_threadjobsize [ 0 locks=0 ] ( 1024 )
+snippet [ 0 locks=0 ] ( "float scale = ch(\"scale\");
+vector orig_P = @P;
+// compute displaced position
+if(!haspointattrib(0, \"mops_falloff\")) {
+ f@mops_falloff = 1;
+}
+float falloff = @mops_falloff;
+if(!chi(\"do_falloff\")) {
+ falloff = 1;
+}
+vector disp = v@axis * f@__offset * scale * falloff;
+@P += disp;
+
+// recompute N and up for next iteration
+matrix3 m = qconvert(p@orient);
+v@N = m * {0,0,1};
+v@up = m * {0,1,0};
+
+// optional trails
+if(chi(\"do_trails\")) {
+ int newpt = addpoint(0, @ptnum);
+ setpointgroup(0, \"__mops_orig\", newpt, 0, \"set\");
+}
+
+if(!chi(\"do_P\")) {
+ @P = orig_P;
+}" )
+exportlist [ 0 locks=0 ] ( * )
+vex_strict [ 0 locks=0 ] ( "off" )
+autobind [ 0 locks=0 ] ( "on" )
+bindings [ 0 locks=0 ] ( 1 )
+groupautobind [ 0 locks=0 ] ( "on" )
+groupbindings [ 0 locks=0 ] ( 0 )
+vex_cwdpath [ 0 locks=0 ] ( . )
+vex_outputmask [ 0 locks=0 ] ( * )
+vex_updatenmls [ 0 locks=0 ] ( "off" )
+vex_matchattrib [ 0 locks=0 ] ( id )
+vex_inplace [ 0 locks=0 ] ( "off" )
+vex_selectiongroup [ 0 locks=0 ] ( "" )
+vex_precision [ 0 locks=0 ] ( auto )
+folder1 [ 0 locks=0 ] ( 0 0 )
+do_falloff [ 8 locks=0 ] ( [ do_falloff 1 ] )
+scale [ 0 locks=0 ] ( [ scale 1 ] )
+do_trails [ 0 locks=0 ] ( [ do_trails 0 ] )
+do_P [ 0 locks=0 ] ( [ do_P 1 ] )
+bindname1 [ 0 locks=0 ] ( [ bindname1 N ] )
+bindparm1 [ 0 locks=0 ] ( axis )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_scalar.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_vector.init"
+Content-Type: text/plain
+
+type = attribwrangle
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_vector.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -0.280074 -7.45399
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 MOPs_Noise_Patterns1 0 1 "input1"
+}
+inputs
+{
+0 MOPs_Noise_Patterns1 0 1
+}
+stat
+{
+ create 1554928384
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_vector.spareparmdef"
+Content-Type: text/plain
+
+ group {
+ name "folder1"
+ label "Code"
+
+ parm {
+ name "group"
+ baseparm
+ label "Group"
+ export none
+ bindselector points "Modify Points"
+ "Select the points to affect and press Enter to complete."
+ 0 1 0xffffffff 0 grouptype 0
+ }
+ parm {
+ name "grouptype"
+ baseparm
+ label "Group Type"
+ export none
+ }
+ parm {
+ name "class"
+ baseparm
+ label "Run Over"
+ export none
+ }
+ parm {
+ name "vex_numcount"
+ baseparm
+ label "Number Count"
+ export none
+ }
+ parm {
+ name "vex_threadjobsize"
+ baseparm
+ label "Thread Job Size"
+ export none
+ }
+ parm {
+ name "snippet"
+ baseparm
+ label "VEXpression"
+ export all
+ }
+ parm {
+ name "exportlist"
+ baseparm
+ label "Attributes to Create"
+ export none
+ }
+ parm {
+ name "vex_strict"
+ baseparm
+ label "Enforce Prototypes"
+ export none
+ }
+ }
+
+ group {
+ name "folder1_1"
+ label "Bindings"
+
+ parm {
+ name "autobind"
+ baseparm
+ label "Autobind by Name"
+ export none
+ }
+ multiparm {
+ name "bindings"
+ label "Number of Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindname#"
+ baseparm
+ label "Attribute Name"
+ export none
+ }
+ parm {
+ name "bindparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "groupautobind"
+ baseparm
+ label "Autobind Groups by Name"
+ export none
+ }
+ multiparm {
+ name "groupbindings"
+ label "Group Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindgroupname#"
+ baseparm
+ label "Group Name"
+ export none
+ }
+ parm {
+ name "bindgroupparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "vex_cwdpath"
+ baseparm
+ label "Evaluation Node Path"
+ export none
+ }
+ parm {
+ name "vex_outputmask"
+ baseparm
+ label "Export Parameters"
+ export none
+ }
+ parm {
+ name "vex_updatenmls"
+ baseparm
+ label "Update Normals If Displaced"
+ export none
+ }
+ parm {
+ name "vex_matchattrib"
+ baseparm
+ label "Attribute to Match"
+ export none
+ }
+ parm {
+ name "vex_inplace"
+ baseparm
+ label "Compute Results In Place"
+ export none
+ }
+ parm {
+ name "vex_selectiongroup"
+ baseparm
+ label "Output Selection Group"
+ export none
+ }
+ }
+
+ parm {
+ name "scale"
+ label "Scale"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "do_falloff"
+ label "Do Falloff"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "aim_weight"
+ label "Aim Weight"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+ parm {
+ name "do_trails"
+ label "Do Trails"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "vex_precision"
+ baseparm
+ label "VEX Precision"
+ export none
+ }
+ parm {
+ name "do_P"
+ label "Do P"
+ type integer
+ default { "0" }
+ range { 0 10 }
+ }
+ parm {
+ name "rotate_amount"
+ label "Rotate Amount"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_vector.chn"
+Content-Type: text/plain
+
+{
+ channel do_falloff {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../do_falloff\") }
+ }
+ channel aim_weight {
+ lefttype = extend
+ righttype = extend
+ default = 0.10000000000000001
+ flags = 0
+ segment { length = 0 value = 0.10000000000000001 0.10000000000000001 expr = ch(\"../../../../aim_weight\") }
+ }
+ channel scale {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../scale\") }
+ }
+ channel do_trails {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../do_trails\") }
+ }
+ channel do_P {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../do_P\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_vector.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+folder0 [ 0 locks=0 ] ( 0 0 )
+group [ 0 locks=0 ] ( __mops_orig )
+grouptype [ 0 locks=0 ] ( "guess" )
+class [ 0 locks=0 ] ( "point" )
+vex_numcount [ 0 locks=0 ] ( 10 )
+vex_threadjobsize [ 0 locks=0 ] ( 1024 )
+snippet [ 0 locks=0 ] ( "float aim_weight = ch(\"aim_weight\");
+
+if(!haspointattrib(0, \"mops_falloff\")) {
+ f@mops_falloff = 1;
+}
+float falloff = @mops_falloff;
+if(!chi(\"do_falloff\")) {
+ falloff = 1;
+}
+
+// compute displaced position
+float scale = chf(\"scale\");
+vector orig_P = @P;
+vector disp = v@__offset * scale * falloff * @TimeInc;
+if(chi(\"do_P\")) {
+ @P += disp;
+}
+
+// compute displaced orientation
+vector outN = normalize(v@__offset);
+matrix3 delta = dihedral(v@N, outN);
+vector out_up = normalize(delta * v@up);
+vector4 orig_orient = quaternion(maketransform(v@N, v@up));
+vector4 out_orient = quaternion(maketransform(outN, out_up));
+p@orient = slerp(orig_orient, out_orient, aim_weight * falloff);
+
+// recompute N and up for next iteration
+matrix3 m = qconvert(p@orient);
+v@N = m * {0,0,1};
+v@up = m * {0,1,0};
+
+// optional trails
+if(chi(\"do_trails\")) {
+ int newpt = addpoint(0, @ptnum);
+ setpointgroup(0, \"__mops_orig\", newpt, 0, \"set\");
+}" )
+exportlist [ 0 locks=0 ] ( * )
+vex_strict [ 0 locks=0 ] ( "off" )
+autobind [ 0 locks=0 ] ( "on" )
+bindings [ 0 locks=0 ] ( 0 )
+groupautobind [ 0 locks=0 ] ( "on" )
+groupbindings [ 0 locks=0 ] ( 0 )
+vex_cwdpath [ 0 locks=0 ] ( . )
+vex_outputmask [ 0 locks=0 ] ( * )
+vex_updatenmls [ 0 locks=0 ] ( "off" )
+vex_matchattrib [ 0 locks=0 ] ( id )
+vex_inplace [ 0 locks=0 ] ( "off" )
+vex_selectiongroup [ 0 locks=0 ] ( "" )
+vex_precision [ 0 locks=0 ] ( auto )
+folder1 [ 0 locks=0 ] ( 0 0 )
+scale [ 0 locks=0 ] ( [ scale 1 ] )
+do_falloff [ 0 locks=0 ] ( [ do_falloff 1 ] )
+aim_weight [ 0 locks=0 ] ( [ aim_weight 0.01 ] )
+do_trails [ 0 locks=0 ] ( [ do_trails 0 ] )
+do_P [ 0 locks=0 ] ( [ do_P 0 ] )
+rotate_amount [ 0 locks=0 ] ( 0 )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/compute_transform_vector.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/MOPs_Noise_Patterns1.init"
+Content-Type: text/plain
+
+type = MOPS::Noise_Patterns::1.2
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/MOPs_Noise_Patterns1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position 0.131055 -4.48354
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+0 "output1"
+}
+inputsNamed3
+{
+1 update_attrs 2 1 "input1"
+}
+inputs
+{
+0 update_attrs 0 1
+}
+stat
+{
+ create 1586049942
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/MOPs_Noise_Patterns1.chn"
+Content-Type: text/plain
+
+{
+ channel signature {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../signature\") }
+ }
+ channel input {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../noisetype\") }
+ }
+ channel use_rest {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../use_rest\") }
+ }
+ channel ampx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../ampx\") }
+ }
+ channel ampy {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../ampy\") }
+ }
+ channel ampz {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../ampz\") }
+ }
+ channel freqx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../freqx\") }
+ }
+ channel freqy {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../freqy\") }
+ }
+ channel freqz {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../freqz\") }
+ }
+ channel freqw {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../freqw\") }
+ }
+ channel uniform {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../uniform\") }
+ }
+ channel roughness {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 0.5 0.5 expr = ch(\"../../../../roughness\") }
+ }
+ channel octaves {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../octaves\") }
+ }
+ channel offsetx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../offsetx\") }
+ }
+ channel offsety {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../offsety\") }
+ }
+ channel offsetz {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../offsetz\") }
+ }
+ channel offsetw {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../offsetw\") }
+ }
+ channel tile_sizex {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../tile_sizex\") }
+ }
+ channel tile_sizey {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../tile_sizey\") }
+ }
+ channel tile_sizez {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../tile_sizez\") }
+ }
+ channel Distortx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../Distortx\") }
+ }
+ channel Distorty {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../Distorty\") }
+ }
+ channel Distortz {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../Distortz\") }
+ }
+ channel time_varying {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../time_varying\") }
+ }
+ channel time_scale {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../time_scale\") }
+ }
+ channel input_rangevx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../../../../input_rangevx\") }
+ }
+ channel input_rangevy {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../input_rangevy\") }
+ }
+ channel output_rangevx {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../../../../output_rangevx\") }
+ }
+ channel output_rangevy {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../output_rangevy\") }
+ }
+ channel do_remap_3D {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../do_remap\") }
+ }
+ channel input_min_3Dx {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../../../../input_min_3Dx\") }
+ }
+ channel input_min_3Dy {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../../../../input_min_3Dy\") }
+ }
+ channel input_min_3Dz {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../../../../input_min_3Dz\") }
+ }
+ channel input_max_3Dx {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../input_max_3Dx\") }
+ }
+ channel input_max_3Dy {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../input_max_3Dy\") }
+ }
+ channel input_max_3Dz {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../input_max_3Dz\") }
+ }
+ channel output_min_3Dx {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../../../../output_min_3Dx\") }
+ }
+ channel output_min_3Dy {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../../../../output_min_3Dy\") }
+ }
+ channel output_min_3Dz {
+ lefttype = extend
+ righttype = extend
+ default = -1
+ flags = 0
+ segment { length = 0 value = -1 -1 expr = ch(\"../../../../output_min_3Dz\") }
+ }
+ channel output_max_3Dx {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../output_max_3Dx\") }
+ }
+ channel output_max_3Dy {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../output_max_3Dy\") }
+ }
+ channel output_max_3Dz {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../../../../output_max_3Dz\") }
+ }
+ channel do_remap_2D {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../../../../do_remap\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/MOPs_Noise_Patterns1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+group [ 0 locks=0 autoscope=0 ] ( __mops_orig )
+grouptype [ 0 locks=0 ] ( "guess" )
+sepparm3 [ 0 locks=0 ] ( )
+signature [ 0 locks=0 autoscope=0 ] ( [ signature 1 ] )
+attrname [ 0 locks=0 autoscope=0 ] ( __offset )
+attrnamev [ 0 locks=0 autoscope=0 ] ( __offset )
+sepparm [ 0 locks=0 ] ( )
+folder0 [ 0 locks=0 ] ( 0 0 0 )
+input [ 0 locks=0 autoscope=0 ] ( [ input 9 ] )
+use_rest [ 0 locks=0 autoscope=0 ] ( [ use_rest 0 ] )
+sepparm2 [ 0 locks=0 ] ( )
+amp [ 0 locks=0 autoscope=0 ] ( [ ampx 1 ] [ ampy 1 ] [ ampz 1 ] )
+freq [ 0 locks=0 autoscope=0 ] ( [ freqx 1 ] [ freqy 1 ] [ freqz 1 ] [ freqw 1 ] )
+uniform [ 0 locks=0 autoscope=0 ] ( [ uniform 0 ] )
+roughness [ 0 locks=0 autoscope=0 ] ( [ roughness 0.5 ] )
+octaves [ 0 locks=0 autoscope=0 ] ( [ octaves 1 ] )
+offset [ 0 locks=0 autoscope=0 ] ( [ offsetx 0 ] [ offsety 0 ] [ offsetz 0 ] [ offsetw 0 ] )
+tile_size [ 0 locks=0 autoscope=0 ] ( [ tile_sizex 1 ] [ tile_sizey 1 ] [ tile_sizez 1 ] )
+Distort [ 0 locks=0 autoscope=0 ] ( [ Distortx 0 ] [ Distorty 0 ] [ Distortz 0 ] )
+time_varying [ 0 locks=0 autoscope=0 ] ( [ time_varying 1 ] )
+time_scale [ 0 locks=0 autoscope=0 ] ( [ time_scale 1 ] )
+do_remap_2D [ 0 locks=0 autoscope=0 ] ( [ do_remap_2D 0 ] )
+input_rangev [ 0 locks=0 autoscope=0 ] ( [ input_rangevx -1 ] [ input_rangevy 1 ] )
+output_rangev [ 0 locks=0 autoscope=0 ] ( [ output_rangevx -1 ] [ output_rangevy 1 ] )
+do_remap_3D [ 0 locks=0 autoscope=0 ] ( [ do_remap_3D 0 ] )
+input_range [ 0 locks=0 ] ( 0 1 )
+output_range [ 0 locks=0 ] ( 0 1 )
+input_min_3D [ 0 locks=0 autoscope=0 ] ( [ input_min_3Dx -1 ] [ input_min_3Dy -1 ] [ input_min_3Dz -1 ] )
+input_max_3D [ 0 locks=0 autoscope=0 ] ( [ input_max_3Dx 1 ] [ input_max_3Dy 1 ] [ input_max_3Dz 1 ] )
+output_min_3D [ 0 locks=0 autoscope=0 ] ( [ output_min_3Dx -1 ] [ output_min_3Dy -1 ] [ output_min_3Dz -1 ] )
+output_max_3D [ 0 locks=0 autoscope=0 ] ( [ output_max_3Dx 1 ] [ output_max_3Dy 1 ] [ output_max_3Dz 1 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/MOPs_Noise_Patterns1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/pointwrangle2.init"
+Content-Type: text/plain
+
+type = attribwrangle
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/pointwrangle2.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -7.40569 -9.36456
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 uvtexture2 1 1 "input1"
+}
+inputs
+{
+0 uvtexture2 0 1
+}
+stat
+{
+ create 1557519690
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/pointwrangle2.chn"
+Content-Type: text/plain
+
+{
+ channel bindname1 {
+ lefttype = extend
+ righttype = extend
+ defaultString = \"curveu\"
+ flags = 0
+ segment { length = 0 expr = chs(\"../curveu_name\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/pointwrangle2.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+folder0 [ 0 locks=0 ] ( 1 1 )
+group [ 0 locks=0 ] ( "" )
+grouptype [ 0 locks=0 ] ( "guess" )
+class [ 0 locks=0 ] ( "point" )
+vex_numcount [ 0 locks=0 ] ( 10 )
+vex_threadjobsize [ 0 locks=0 ] ( 1024 )
+snippet [ 0 locks=0 ] ( "f@attr = v@__uv.x;" )
+exportlist [ 0 locks=0 ] ( * )
+vex_strict [ 0 locks=0 ] ( "off" )
+autobind [ 0 locks=0 ] ( "on" )
+bindings [ 0 locks=0 ] ( 1 )
+groupautobind [ 0 locks=0 ] ( "on" )
+groupbindings [ 0 locks=0 ] ( 0 )
+vex_cwdpath [ 0 locks=0 ] ( . )
+vex_outputmask [ 0 locks=0 ] ( * )
+vex_updatenmls [ 0 locks=0 ] ( "off" )
+vex_matchattrib [ 0 locks=0 ] ( id )
+vex_inplace [ 0 locks=0 ] ( "off" )
+vex_selectiongroup [ 0 locks=0 ] ( "" )
+vex_precision [ 0 locks=0 ] ( auto )
+bindname1 [ 0 locks=0 ] ( [ bindname1 curveu ] )
+bindparm1 [ 0 locks=0 ] ( attr )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/pointwrangle2.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/pointwrangle1.init"
+Content-Type: text/plain
+
+type = attribwrangle
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/pointwrangle1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -10.7315 -2.07269
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass on display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 split1 1 1 "input1"
+2 group1 1 1 "input2"
+}
+inputs
+{
+0 split1 0 1
+1 group1 0 1
+}
+stat
+{
+ create 1588543414
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/pointwrangle1.spareparmdef"
+Content-Type: text/plain
+
+ group {
+ name "folder1"
+ label "Code"
+
+ parm {
+ name "group"
+ baseparm
+ label "Group"
+ export none
+ bindselector points "Modify Points"
+ "Select the points to affect and press Enter to complete."
+ 0 1 0xffffffff 0 grouptype 0
+ }
+ parm {
+ name "grouptype"
+ baseparm
+ label "Group Type"
+ export none
+ }
+ parm {
+ name "class"
+ baseparm
+ label "Run Over"
+ export none
+ }
+ parm {
+ name "vex_numcount"
+ baseparm
+ label "Number Count"
+ export none
+ }
+ parm {
+ name "vex_threadjobsize"
+ baseparm
+ label "Thread Job Size"
+ export none
+ }
+ parm {
+ name "snippet"
+ baseparm
+ label "VEXpression"
+ export all
+ }
+ parm {
+ name "exportlist"
+ baseparm
+ label "Attributes to Create"
+ export none
+ }
+ parm {
+ name "vex_strict"
+ baseparm
+ label "Enforce Prototypes"
+ export none
+ }
+ }
+
+ group {
+ name "folder1_1"
+ label "Bindings"
+
+ parm {
+ name "autobind"
+ baseparm
+ label "Autobind by Name"
+ export none
+ }
+ multiparm {
+ name "bindings"
+ label "Number of Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindname#"
+ baseparm
+ label "Attribute Name"
+ export none
+ }
+ parm {
+ name "bindparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "groupautobind"
+ baseparm
+ label "Autobind Groups by Name"
+ export none
+ }
+ multiparm {
+ name "groupbindings"
+ label "Group Bindings"
+ baseparm
+ default 0
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "multistartoffset" "1" }
+
+ parm {
+ name "bindgroupname#"
+ baseparm
+ label "Group Name"
+ export none
+ }
+ parm {
+ name "bindgroupparm#"
+ baseparm
+ label "VEX Parameter"
+ export none
+ }
+ }
+
+ parm {
+ name "vex_cwdpath"
+ baseparm
+ label "Evaluation Node Path"
+ export none
+ }
+ parm {
+ name "vex_outputmask"
+ baseparm
+ label "Export Parameters"
+ export none
+ }
+ parm {
+ name "vex_updatenmls"
+ baseparm
+ label "Update Normals If Displaced"
+ export none
+ }
+ parm {
+ name "vex_matchattrib"
+ baseparm
+ label "Attribute to Match"
+ export none
+ }
+ parm {
+ name "vex_inplace"
+ baseparm
+ label "Compute Results In Place"
+ export none
+ }
+ parm {
+ name "vex_selectiongroup"
+ baseparm
+ label "Output Selection Group"
+ export none
+ }
+ parm {
+ name "vex_precision"
+ baseparm
+ label "VEX Precision"
+ export none
+ }
+ }
+
+ parm {
+ name "aim_weight"
+ label "Aim Weight"
+ type float
+ default { "0" }
+ range { 0 1 }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/pointwrangle1.chn"
+Content-Type: text/plain
+
+{
+ channel aim_weight {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../rotation_amount\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/pointwrangle1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+folder0 [ 0 locks=0 ] ( 0 0 )
+group [ 0 locks=0 ] ( "" )
+grouptype [ 0 locks=0 ] ( "guess" )
+class [ 0 locks=0 ] ( "point" )
+vex_numcount [ 0 locks=0 ] ( 10 )
+vex_threadjobsize [ 0 locks=0 ] ( 1024 )
+snippet [ 0 locks=0 ] ( "float aim_weight = ch(\"aim_weight\");
+int match = idtopoint(1, i@id);
+vector4 orig_orient = point(1, \"orient\", match);
+p@orient = slerp(orig_orient, p@orient, aim_weight);" )
+exportlist [ 0 locks=0 ] ( * )
+vex_strict [ 0 locks=0 ] ( "off" )
+autobind [ 0 locks=0 ] ( "on" )
+bindings [ 0 locks=0 ] ( 0 )
+groupautobind [ 0 locks=0 ] ( "on" )
+groupbindings [ 0 locks=0 ] ( 0 )
+vex_cwdpath [ 0 locks=0 ] ( . )
+vex_outputmask [ 0 locks=0 ] ( * )
+vex_updatenmls [ 0 locks=0 ] ( "off" )
+vex_matchattrib [ 0 locks=0 ] ( id )
+vex_inplace [ 0 locks=0 ] ( "off" )
+vex_selectiongroup [ 0 locks=0 ] ( "" )
+vex_precision [ 0 locks=0 ] ( auto )
+folder1 [ 0 locks=0 ] ( 0 0 )
+aim_weight [ 0 locks=0 ] ( [ aim_weight 1 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/pointwrangle1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/IN.init"
+Content-Type: text/plain
+
+type = null
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/IN.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.02114 13.9157
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 attribswap1 1 1 "input1"
+}
+inputs
+{
+0 attribswap1 0 1
+}
+stat
+{
+ create 1520032354
+ modify 1565235650
+ author Mo@Mo-PC
+ access 0777
+}
+color UT_Color RGB 0.6 0.7 0.77
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/IN.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+copyinput [ 0 locks=0 ] ( "on" )
+cacheinput [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/IN.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/group1.init"
+Content-Type: text/plain
+
+type = groupcreate
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/group1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.03093 8.50995
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight on unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 switch4 1 1 "input1"
+}
+inputs
+{
+0 switch4 0 1
+}
+stat
+{
+ create 1523127556
+ modify 1592879395
+ author Mo@Mo-PC
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/group1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+groupname [ 0 locks=0 ] ( __mops_orig )
+grouptype [ 0 locks=0 ] ( "point" )
+mergeop [ 0 locks=0 ] ( "replace" )
+folder0 [ 0 locks=0 ] ( 0 )
+groupbase [ 0 locks=0 ] ( "on" )
+basegroup [ 0 locks=0 ] ( `chs(\"../group\")` )
+ordered [ 0 locks=0 ] ( "off" )
+geotype [ 0 locks=0 ] ( "all" )
+switcher3 [ 0 locks=0 ] ( 0 )
+groupbounding [ 0 locks=0 ] ( "off" )
+boundtype [ 0 locks=0 ] ( "usebbox" )
+size [ 0 locks=0 ] ( 1 1 1 )
+t [ 0 locks=0 ] ( 0 0 0 )
+includenotwhollycontained [ 0 locks=0 ] ( "off" )
+iso [ 0 locks=0 ] ( 0 )
+invertvolume [ 0 locks=0 ] ( "off" )
+switcher4 [ 0 locks=0 ] ( 0 )
+groupnormal [ 0 locks=0 ] ( "off" )
+camerapath [ 0 locks=0 ] ( "" )
+nonplanar [ 0 locks=0 ] ( "off" )
+nonplanartol [ 0 locks=0 ] ( 0.001 )
+dir [ 0 locks=0 ] ( 0 0 1 )
+angle [ 0 locks=0 ] ( 180 )
+switcher5 [ 0 locks=0 ] ( 0 )
+groupedges [ 0 locks=0 ] ( "off" )
+dominedgeangle [ 0 locks=0 ] ( "off" )
+minedgeangle [ 0 locks=0 ] ( 20 )
+domaxedgeangle [ 0 locks=0 ] ( "off" )
+maxedgeangle [ 0 locks=0 ] ( 20 )
+edgeanglebetweenedges [ 0 locks=0 ] ( "off" )
+dominedgelen [ 0 locks=0 ] ( "off" )
+minedgelen [ 0 locks=0 ] ( 0 )
+domaxedgelen [ 0 locks=0 ] ( "off" )
+maxedgelen [ 0 locks=0 ] ( 0 )
+dodepth [ 0 locks=0 ] ( "off" )
+edgestep [ 0 locks=0 ] ( 0 )
+edgeptgrp [ 0 locks=0 ] ( 0 )
+unshared [ 0 locks=0 ] ( "off" )
+boundarygroups [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/group1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/split1.init"
+Content-Type: text/plain
+
+type = split
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/split1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.59639 -0.880275
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+2 "output2"
+}
+inputsNamed3
+{
+0 switch_noise_mode 1 1 "input1"
+}
+inputs
+{
+0 switch_noise_mode 0 1
+}
+stat
+{
+ create 1546818518
+ modify 1583723892
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/split1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+group [ 0 locks=0 ] ( __mops_orig )
+grouptype [ 0 locks=0 ] ( "points" )
+negate [ 0 locks=0 ] ( "off" )
+removegrp [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/split1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/merge1.init"
+Content-Type: text/plain
+
+type = merge
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/merge1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -10.4504 -12.0243
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 MOPs_Apply_Attributes 0 1 "input1"
+2 switch_do_polylines1 1 1 "input2"
+}
+inputs
+{
+0 MOPs_Apply_Attributes 0 1
+1 switch_do_polylines1 0 1
+}
+stat
+{
+ create 1546818533
+ modify 1583723904
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/merge1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/merge1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/group2.init"
+Content-Type: text/plain
+
+type = groupcreate
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/group2.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.09887 -5.90755
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight on unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 switch_do_polylines 1 1 "input1"
+}
+inputs
+{
+0 switch_do_polylines 0 1
+}
+stat
+{
+ create 1546818553
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/group2.chn"
+Content-Type: text/plain
+
+{
+ channel groupname {
+ lefttype = extend
+ righttype = extend
+ defaultString = \"trails\"
+ flags = 0
+ segment { length = 0 expr = chs(\"../groupname\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/group2.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+groupname [ 0 locks=0 ] ( [ groupname trails ] )
+grouptype [ 0 locks=0 ] ( "point" )
+mergeop [ 0 locks=0 ] ( "replace" )
+folder0 [ 0 locks=0 ] ( 0 )
+groupbase [ 0 locks=0 ] ( "on" )
+basegroup [ 0 locks=0 ] ( "" )
+ordered [ 0 locks=0 ] ( "off" )
+geotype [ 0 locks=0 ] ( "all" )
+switcher3 [ 0 locks=0 ] ( 0 )
+groupbounding [ 0 locks=0 ] ( "off" )
+boundtype [ 0 locks=0 ] ( "usebbox" )
+size [ 0 locks=0 ] ( 1 1 1 )
+t [ 0 locks=0 ] ( 0 0 0 )
+includenotwhollycontained [ 0 locks=0 ] ( "off" )
+iso [ 0 locks=0 ] ( 0 )
+invertvolume [ 0 locks=0 ] ( "off" )
+switcher4 [ 0 locks=0 ] ( 0 )
+groupnormal [ 0 locks=0 ] ( "off" )
+camerapath [ 0 locks=0 ] ( "" )
+nonplanar [ 0 locks=0 ] ( "off" )
+nonplanartol [ 0 locks=0 ] ( 0.001 )
+dir [ 0 locks=0 ] ( 0 0 1 )
+angle [ 0 locks=0 ] ( 180 )
+switcher5 [ 0 locks=0 ] ( 0 )
+groupedges [ 0 locks=0 ] ( "off" )
+dominedgeangle [ 0 locks=0 ] ( "off" )
+minedgeangle [ 0 locks=0 ] ( 20 )
+domaxedgeangle [ 0 locks=0 ] ( "off" )
+maxedgeangle [ 0 locks=0 ] ( 20 )
+edgeanglebetweenedges [ 0 locks=0 ] ( "off" )
+dominedgelen [ 0 locks=0 ] ( "off" )
+minedgelen [ 0 locks=0 ] ( 0 )
+domaxedgelen [ 0 locks=0 ] ( "off" )
+maxedgelen [ 0 locks=0 ] ( 0 )
+dodepth [ 0 locks=0 ] ( "off" )
+edgestep [ 0 locks=0 ] ( 0 )
+edgeptgrp [ 0 locks=0 ] ( 0 )
+unshared [ 0 locks=0 ] ( "off" )
+boundarygroups [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/group2.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_if_trails.init"
+Content-Type: text/plain
+
+type = switch
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_if_trails.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -11.0831 -13.1551
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+2 MOPs_Apply_Attributes 0 1 "input1"
+0 merge1 1 1 "input2"
+}
+inputs
+{
+0 MOPs_Apply_Attributes 0 1
+1 merge1 0 1
+}
+stat
+{
+ create 1546818578
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 1 0.7
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_if_trails.chn"
+Content-Type: text/plain
+
+{
+ channel input {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../do_trails\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_if_trails.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+input [ 0 locks=0 ] ( [ input 0 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_if_trails.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_do_polylines.init"
+Content-Type: text/plain
+
+type = switch
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_do_polylines.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.09887 -4.48603
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 split1 2 1 "input1"
+2 add1 1 1 "input2"
+}
+inputs
+{
+0 split1 1 1
+1 add1 0 1
+}
+stat
+{
+ create 1546819340
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 1 0.7
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_do_polylines.chn"
+Content-Type: text/plain
+
+{
+ channel input {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../do_polylines\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_do_polylines.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+input [ 0 locks=0 ] ( [ input 1 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_do_polylines.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/add1.init"
+Content-Type: text/plain
+
+type = add
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/add1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -8.08593 -2.69018
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 split1 2 1 "input1"
+}
+inputs
+{
+0 split1 1 1
+}
+stat
+{
+ create 1546819348
+ modify 1565235649
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/add1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+stdswitcher [ 0 locks=0 ] ( 1 1 1 )
+keep [ 0 locks=0 ] ( "off" )
+points [ 0 locks=0 ] ( 1 )
+remove [ 0 locks=0 ] ( "off" )
+switcher [ 0 locks=0 ] ( 1 1 )
+prims [ 0 locks=0 ] ( 1 )
+group [ 0 locks=0 ] ( "" )
+add [ 0 locks=0 ] ( "attribute" )
+inc [ 0 locks=0 ] ( 2 )
+attrname [ 0 locks=0 ] ( id )
+closedall [ 0 locks=0 ] ( "off" )
+addparticlesystem [ 0 locks=0 ] ( "off" )
+particlegroup [ 0 locks=0 ] ( "" )
+appendunusedtoparticlesystem [ 0 locks=0 ] ( "off" )
+usept0 [ 0 locks=0 ] ( "off" )
+pt0 [ 0 locks=0 ] ( 0 0 0 )
+weight0 [ 0 locks=0 ] ( 1 )
+prim0 [ 0 locks=0 ] ( "" )
+closed0 [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/add1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/output1.init"
+Content-Type: text/plain
+
+type = output
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/output1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -11.186 -19.5382
+connectornextid 1
+flags = lock off model off template off footprint off xray off bypass off display on render on highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+}
+inputsNamed3
+{
+0 attribswap2 1 1 "input1"
+}
+inputs
+{
+0 attribswap2 0 1
+}
+stat
+{
+ create 1546922096
+ modify 1586049822
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/output1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+outputidx [ 0 locks=0 ] ( 0 )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/output1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/groupdelete2.init"
+Content-Type: text/plain
+
+type = groupdelete
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/groupdelete2.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -11.0831 -14.0861
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 switch_if_trails 1 1 "input1"
+}
+inputs
+{
+0 switch_if_trails 0 1
+}
+stat
+{
+ create 1546922116
+ modify 1565235649
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/groupdelete2.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+deletions [ 0 locks=0 ] ( 1 )
+removegrp [ 0 locks=0 ] ( "off" )
+enable1 [ 0 locks=0 ] ( "on" )
+grouptype1 [ 0 locks=0 ] ( "any" )
+group1 [ 0 locks=0 ] ( __mops_orig )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/groupdelete2.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete2.init"
+Content-Type: text/plain
+
+type = attribdelete
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete2.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.7999 -6.87083
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 group2 1 1 "input1"
+}
+inputs
+{
+0 group2 0 1
+}
+stat
+{
+ create 1546923592
+ modify 1565235649
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete2.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+ptdel [ 0 locks=0 ] ( "* ^curveu" )
+vtxdel [ 0 locks=0 ] ( "" )
+primdel [ 0 locks=0 ] ( "" )
+dtldel [ 0 locks=0 ] ( "" )
+updatevar [ 0 locks=0 ] ( "on" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete2.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribcopy1.init"
+Content-Type: text/plain
+
+type = attribcopy
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribcopy1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.10232 -7.92591
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 attribdelete2 1 1 "input1"
+2 group2 1 1 "input2"
+}
+inputs
+{
+0 attribdelete2 0 1
+1 group2 0 1
+}
+stat
+{
+ create 1546923929
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribcopy1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+srcgroup [ 0 locks=0 ] ( "" )
+srcgrouptype [ 0 locks=0 ] ( "points" )
+destgroup [ 0 locks=0 ] ( "" )
+destgrouptype [ 0 locks=0 ] ( "points" )
+matchbyattribute [ 0 locks=0 ] ( "off" )
+attributetomatch [ 0 locks=0 ] ( piece )
+attrib [ 0 locks=0 ] ( "otherattrib" )
+attribname [ 0 locks=0 ] ( `chs(\"../trail_attrs\")` )
+copyp [ 0 locks=0 ] ( "off" )
+usenewname [ 0 locks=0 ] ( "off" )
+newname [ 0 locks=0 ] ( "" )
+class [ 0 locks=0 ] ( "guess" )
+copyvariable [ 0 locks=0 ] ( "on" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribcopy1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch4.init"
+Content-Type: text/plain
+
+type = switch
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch4.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.17529 9.41516
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 test_group_mask 1 1 "input1"
+2 grouppromote1 1 1 "input2"
+}
+inputs
+{
+0 test_group_mask 0 1
+1 grouppromote1 0 1
+}
+stat
+{
+ create 1546925005
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 1 0.7
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch4.chn"
+Content-Type: text/plain
+
+{
+ channel input {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = "detail(\"../test_group_mask\", \"__promote_group\",0)" }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch4.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+input [ 8 locks=0 ] ( [ input 0 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch4.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/grouppromote1.init"
+Content-Type: text/plain
+
+type = grouppromote
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/grouppromote1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -7.2815 10.2263
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight on unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 test_group_mask 1 1 "input1"
+}
+inputs
+{
+0 test_group_mask 0 1
+}
+stat
+{
+ create 1546925057
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/grouppromote1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+promotions [ 0 locks=0 ] ( 1 )
+enable1 [ 0 locks=0 ] ( "on" )
+fromtype1 [ 0 locks=0 ] ( "prims" )
+totype1 [ 0 locks=0 ] ( "points" )
+group1 [ 0 locks=0 ] ( `chs(\"../group\")` )
+newname1 [ 0 locks=0 ] ( "" )
+preserve1 [ 0 locks=0 ] ( "on" )
+onlyboundary1 [ 0 locks=0 ] ( "off" )
+includeunshared1 [ 0 locks=0 ] ( "on" )
+useconnectivityattrib1 [ 0 locks=0 ] ( "off" )
+connectivityattrib1 [ 0 locks=0 ] ( uv )
+primsbyattribbndpts1 [ 0 locks=0 ] ( "off" )
+onlyfull1 [ 0 locks=0 ] ( "off" )
+removedegen1 [ 0 locks=0 ] ( "off" )
+toattrib1 [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/grouppromote1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/if_group_promoted.init"
+Content-Type: text/plain
+
+type = switch
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/if_group_promoted.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -11.0831 -15.7805
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 groupdelete2 1 1 "input1"
+2 groupdelete3 1 1 "input2"
+}
+inputs
+{
+0 groupdelete2 0 1
+1 groupdelete3 0 1
+}
+stat
+{
+ create 1546925167
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 1 0.7
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/if_group_promoted.chn"
+Content-Type: text/plain
+
+{
+ channel input {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = "detail(\"../test_group_mask\", \"__promote_group\",0)" }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/if_group_promoted.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+input [ 8 locks=0 ] ( [ input 0 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/if_group_promoted.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/groupdelete3.init"
+Content-Type: text/plain
+
+type = groupdelete
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/groupdelete3.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.70117 -14.9786
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 groupdelete2 1 1 "input1"
+}
+inputs
+{
+0 groupdelete2 0 1
+}
+stat
+{
+ create 1546925176
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/groupdelete3.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+deletions [ 0 locks=0 ] ( 1 )
+removegrp [ 0 locks=0 ] ( "off" )
+enable1 [ 0 locks=0 ] ( "on" )
+grouptype1 [ 0 locks=0 ] ( "points" )
+group1 [ 0 locks=0 ] ( `chs(\"../group\")` )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/groupdelete3.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete3.init"
+Content-Type: text/plain
+
+type = attribdelete
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete3.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -11.0831 -16.8401
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 if_group_promoted 1 1 "input1"
+}
+inputs
+{
+0 if_group_promoted 0 1
+}
+stat
+{
+ create 1546925249
+ modify 1565235649
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete3.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+ptdel [ 0 locks=0 ] ( "" )
+vtxdel [ 0 locks=0 ] ( "" )
+primdel [ 0 locks=0 ] ( "" )
+dtldel [ 0 locks=0 ] ( __promote_group )
+updatevar [ 0 locks=0 ] ( "on" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete3.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/make_id_if_none.init"
+Content-Type: text/plain
+
+type = switch
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/make_id_if_none.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.27511 12.4151
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 IN 1 1 "input1"
+2 enumerate1 1 1 "input2"
+}
+inputs
+{
+0 IN 0 1
+1 enumerate1 0 1
+}
+stat
+{
+ create 1554924824
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 1 0.7
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/make_id_if_none.chn"
+Content-Type: text/plain
+
+{
+ channel input {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = "!haspointattrib(\"../IN\", \"id\")" }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/make_id_if_none.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+input [ 8 locks=0 ] ( [ input 0 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/make_id_if_none.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/enumerate1.init"
+Content-Type: text/plain
+
+type = enumerate
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/enumerate1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -7.74443 13.1986
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 IN 1 1 "input1"
+}
+inputs
+{
+0 IN 0 1
+}
+stat
+{
+ create 1554924833
+ modify 1565235649
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/enumerate1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+group [ 0 locks=0 ] ( "" )
+grouptype [ 0 locks=0 ] ( "point" )
+usepieceattrib [ 0 locks=0 ] ( "off" )
+pieceattrib [ 0 locks=0 ] ( name )
+attribname [ 0 locks=0 ] ( id )
+attribtype [ 0 locks=0 ] ( "int" )
+prefix [ 0 locks=0 ] ( piece )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/enumerate1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_displace_signature.init"
+Content-Type: text/plain
+
+type = switch
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_displace_signature.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -13.6449 2.74053
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+2 "output1"
+}
+inputsNamed3
+{
+0 compute_transform_scalar 1 1 "input1"
+1 compute_transform_vector 1 1 "input2"
+}
+inputs
+{
+0 compute_transform_scalar 0 1
+1 compute_transform_vector 0 1
+}
+stat
+{
+ create 1554929951
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 1 0.7
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_displace_signature.chn"
+Content-Type: text/plain
+
+{
+ channel input {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../MOPs_Noise_Patterns/signature\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_displace_signature.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+input [ 8 locks=0 ] ( [ input 1 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_displace_signature.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_noise_mode.init"
+Content-Type: text/plain
+
+type = switch
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_noise_mode.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -10.7315 0.937997
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 switch_displace_signature 2 1 "input1"
+2 advect_noise 1 1 "input2"
+}
+inputs
+{
+0 switch_displace_signature 0 1
+1 advect_noise 0 1
+}
+stat
+{
+ create 1554930775
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 1 0.7
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_noise_mode.chn"
+Content-Type: text/plain
+
+{
+ channel input {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../noisemode\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_noise_mode.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+input [ 8 locks=0 ] ( [ input 0 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_noise_mode.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Prev_Frame.init"
+Content-Type: text/plain
+
+type = dopimport
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Prev_Frame.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position 1.46031 -0.495722
+connectornextid 0
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault off exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+}
+inputs
+{
+}
+stat
+{
+ create 1324348265
+ modify 1592880049
+ author nobody@nowhere.sidefx.com
+ access 0777
+}
+color UT_Color RGB 0.6 0.4 1
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Prev_Frame.chn"
+Content-Type: text/plain
+
+{
+ channel integrateovertime {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = 1/$FPS }
+ }
+ channel doposxform {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../transformsopoutput\") }
+ }
+ channel doxform {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 value = 1 1 expr = ch(\"../transformsopoutput\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Prev_Frame.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+doppath [ 0 locks=0 autoscope=0 ] ( "`stamps(\"..\", \"DOPNET\", \"../..\")`" )
+objpattern [ 0 locks=0 autoscope=0 ] ( "`stamps(\"..\", \"OBJID\", arg(dopnodeobjs(\"..\"),0))`" )
+singleobject [ 0 locks=0 autoscope=0 ] ( "on" )
+importstyle [ 0 locks=0 autoscope=0 ] ( "fetch" )
+pivot [ 0 locks=0 ] ( "centroid" )
+viewportlod [ 0 locks=0 ] ( "full" )
+importbyname [ 0 locks=0 autoscope=0 ] ( "on" )
+objectnames [ 0 locks=0 ] ( "dopobject" )
+geodatapath [ 0 locks=0 autoscope=0 ] ( "`stamps(\"..\", \"DATANAME\", chs(\"../datapath\"))`" )
+transferattributes [ 0 locks=0 ] ( "" )
+transfergroups [ 0 locks=0 ] ( "" )
+inverseop [ 0 locks=0 autoscope=0 ] ( "off" )
+doposxform [ 0 locks=0 autoscope=0 ] ( [ doposxform 1 ] )
+doxform [ 0 locks=0 autoscope=0 ] ( [ doxform 1 ] )
+keepworldspacepos [ 0 locks=0 autoscope=0 ] ( "on" )
+centeratpivot [ 0 locks=0 ] ( "off" )
+addname [ 0 locks=0 ] ( "off" )
+adddopobjectname [ 0 locks=0 autoscope=0 ] ( "off" )
+adddopobjectid [ 0 locks=0 autoscope=0 ] ( "off" )
+addtoexistingvel [ 0 locks=0 autoscope=0 ] ( "on" )
+deleteabandoned [ 0 locks=0 autoscope=0 ] ( "on" )
+pointvels [ 0 locks=0 autoscope=0 ] ( "none" )
+integrateovertime [ 0 locks=0 autoscope=0 ] ( [ integrateovertime 0.041666666666666664 ] )
+donotsim [ 0 locks=0 ] ( "on" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Prev_Frame.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_1.init"
+Content-Type: text/plain
+
+type = object_merge
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position 5.87224 -1.67799
+connectornextid 1
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault off exposed on
+outputsNamed3
+{
+0 "output1"
+}
+inputsNamed3
+{
+}
+inputs
+{
+}
+stat
+{
+ create 1324348294
+ modify 1592879395
+ author nobody@nowhere.sidefx.com
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+numobj [ 0 locks=0 ] ( 1 )
+_separator [ 0 locks=0 ] ( )
+xformtype [ 0 locks=0 ] ( "object" )
+xformpath [ 0 locks=0 ] ( "" )
+invertxform [ 0 locks=0 ] ( "off" )
+createptgroups [ 0 locks=0 ] ( "off" )
+ptgroupprefix [ 0 locks=0 ] ( _ptgrp_ )
+createprimgroups [ 0 locks=0 ] ( "off" )
+primgroupprefix [ 0 locks=0 ] ( _primgrp_ )
+verbosegroups [ 0 locks=0 ] ( "off" )
+suffixfirstgroup [ 0 locks=0 ] ( "on" )
+createptstring [ 0 locks=0 ] ( "off" )
+createprimstring [ 0 locks=0 ] ( "off" )
+pathattrib [ 0 locks=0 ] ( objname )
+pack [ 0 locks=0 ] ( "off" )
+pivot [ 0 locks=0 ] ( "centroid" )
+viewportlod [ 0 locks=0 ] ( "full" )
+addpath [ 0 locks=0 ] ( "on" )
+enable1 [ 0 locks=0 ] ( "on" )
+objpath1 [ 0 locks=0 ] ( "`opinputpath(\"../..\", 0)`" )
+group1 [ 0 locks=0 ] ( "" )
+expand1 [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_2.init"
+Content-Type: text/plain
+
+type = object_merge
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_2.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position 7.4656 -2.23252
+connectornextid 1
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault off exposed on
+outputsNamed3
+{
+0 "output1"
+}
+inputsNamed3
+{
+}
+inputs
+{
+}
+stat
+{
+ create 1324348294
+ modify 1592879395
+ author nobody@nowhere.sidefx.com
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_2.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+numobj [ 0 locks=0 ] ( 1 )
+_separator [ 0 locks=0 ] ( )
+xformtype [ 0 locks=0 ] ( "object" )
+xformpath [ 0 locks=0 ] ( "" )
+invertxform [ 0 locks=0 ] ( "off" )
+createptgroups [ 0 locks=0 ] ( "off" )
+ptgroupprefix [ 0 locks=0 ] ( _ptgrp_ )
+createprimgroups [ 0 locks=0 ] ( "off" )
+primgroupprefix [ 0 locks=0 ] ( _primgrp_ )
+verbosegroups [ 0 locks=0 ] ( "off" )
+suffixfirstgroup [ 0 locks=0 ] ( "on" )
+createptstring [ 0 locks=0 ] ( "off" )
+createprimstring [ 0 locks=0 ] ( "off" )
+pathattrib [ 0 locks=0 ] ( objname )
+pack [ 0 locks=0 ] ( "off" )
+pivot [ 0 locks=0 ] ( "centroid" )
+viewportlod [ 0 locks=0 ] ( "full" )
+addpath [ 0 locks=0 ] ( "on" )
+enable1 [ 0 locks=0 ] ( "on" )
+objpath1 [ 0 locks=0 ] ( "`opinputpath(\"../..\", 1)`" )
+group1 [ 0 locks=0 ] ( "" )
+expand1 [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_2.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_3.init"
+Content-Type: text/plain
+
+type = object_merge
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_3.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position 8.77435 -2.84803
+connectornextid 1
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault off exposed on
+outputsNamed3
+{
+0 "output1"
+}
+inputsNamed3
+{
+}
+inputs
+{
+}
+stat
+{
+ create 1324348294
+ modify 1592879395
+ author nobody@nowhere.sidefx.com
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_3.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+numobj [ 0 locks=0 ] ( 1 )
+_separator [ 0 locks=0 ] ( )
+xformtype [ 0 locks=0 ] ( "object" )
+xformpath [ 0 locks=0 ] ( "" )
+invertxform [ 0 locks=0 ] ( "off" )
+createptgroups [ 0 locks=0 ] ( "off" )
+ptgroupprefix [ 0 locks=0 ] ( _ptgrp_ )
+createprimgroups [ 0 locks=0 ] ( "off" )
+primgroupprefix [ 0 locks=0 ] ( _primgrp_ )
+verbosegroups [ 0 locks=0 ] ( "off" )
+suffixfirstgroup [ 0 locks=0 ] ( "on" )
+createptstring [ 0 locks=0 ] ( "off" )
+createprimstring [ 0 locks=0 ] ( "off" )
+pathattrib [ 0 locks=0 ] ( objname )
+pack [ 0 locks=0 ] ( "off" )
+pivot [ 0 locks=0 ] ( "centroid" )
+viewportlod [ 0 locks=0 ] ( "full" )
+addpath [ 0 locks=0 ] ( "on" )
+enable1 [ 0 locks=0 ] ( "on" )
+objpath1 [ 0 locks=0 ] ( "`opinputpath(\"../..\", 2)`" )
+group1 [ 0 locks=0 ] ( "" )
+expand1 [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_3.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_4.init"
+Content-Type: text/plain
+
+type = object_merge
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_4.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position 10.2864 -3.40255
+connectornextid 1
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault off exposed on
+outputsNamed3
+{
+0 "output1"
+}
+inputsNamed3
+{
+}
+inputs
+{
+}
+stat
+{
+ create 1324348294
+ modify 1592879395
+ author nobody@nowhere.sidefx.com
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_4.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+numobj [ 0 locks=0 ] ( 1 )
+_separator [ 0 locks=0 ] ( )
+xformtype [ 0 locks=0 ] ( "object" )
+xformpath [ 0 locks=0 ] ( "" )
+invertxform [ 0 locks=0 ] ( "off" )
+createptgroups [ 0 locks=0 ] ( "off" )
+ptgroupprefix [ 0 locks=0 ] ( _ptgrp_ )
+createprimgroups [ 0 locks=0 ] ( "off" )
+primgroupprefix [ 0 locks=0 ] ( _primgrp_ )
+verbosegroups [ 0 locks=0 ] ( "off" )
+suffixfirstgroup [ 0 locks=0 ] ( "on" )
+createptstring [ 0 locks=0 ] ( "off" )
+createprimstring [ 0 locks=0 ] ( "off" )
+pathattrib [ 0 locks=0 ] ( objname )
+pack [ 0 locks=0 ] ( "off" )
+pivot [ 0 locks=0 ] ( "centroid" )
+viewportlod [ 0 locks=0 ] ( "full" )
+addpath [ 0 locks=0 ] ( "on" )
+enable1 [ 0 locks=0 ] ( "on" )
+objpath1 [ 0 locks=0 ] ( "`opinputpath(\"../..\", 3)`" )
+group1 [ 0 locks=0 ] ( "" )
+expand1 [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/Input_4.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/output1.init"
+Content-Type: text/plain
+
+type = output
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/output1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -1.38057 -9.8317
+connectornextid 1
+flags = lock off model off template off footprint off xray off bypass off display on render on highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+}
+inputsNamed3
+{
+0 switch_displace_signature 2 1 "input1"
+}
+inputs
+{
+0 switch_displace_signature 0 1
+}
+stat
+{
+ create 1546817434
+ modify 1555736090
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/output1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+outputidx [ 0 locks=0 ] ( 0 )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/output1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/update_attrs.init"
+Content-Type: text/plain
+
+type = attribcopy
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/update_attrs.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position 3.79478 -3.27239
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+2 "output1"
+}
+inputsNamed3
+{
+0 Prev_Frame 1 1 "input1"
+1 Input_1 0 1 "input2"
+}
+inputs
+{
+0 Prev_Frame 0 1
+1 Input_1 0 1
+}
+stat
+{
+ create 1546995483
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/update_attrs.chn"
+Content-Type: text/plain
+
+{
+ channel attribname {
+ lefttype = extend
+ righttype = extend
+ defaultString = \"mops_falloff\"
+ flags = 0
+ segment { length = 0 expr = chs(\"../../../../attribname\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/update_attrs.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+srcgroup [ 0 locks=0 ] ( "" )
+srcgrouptype [ 0 locks=0 ] ( "points" )
+destgroup [ 0 locks=0 ] ( __mops_orig )
+destgrouptype [ 0 locks=0 ] ( "points" )
+matchbyattribute [ 0 locks=0 ] ( "on" )
+attributetomatch [ 0 locks=0 ] ( id )
+attrib [ 0 locks=0 ] ( "otherattrib" )
+attribname [ 0 locks=0 ] ( [ attribname mops_falloff ] )
+copyp [ 0 locks=0 ] ( "on" )
+usenewname [ 0 locks=0 ] ( "off" )
+newname [ 0 locks=0 ] ( "" )
+class [ 0 locks=0 ] ( "guess" )
+copyvariable [ 0 locks=0 ] ( "on" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/update_attrs.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/switch_displace_signature.init"
+Content-Type: text/plain
+
+type = switch
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/switch_displace_signature.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -1.38057 -8.62548
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+2 "output1"
+}
+inputsNamed3
+{
+0 compute_transform_scalar 1 1 "input1"
+1 compute_transform_vector 1 1 "input2"
+}
+inputs
+{
+0 compute_transform_scalar 0 1
+1 compute_transform_vector 0 1
+}
+stat
+{
+ create 1554929951
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 1 0.7
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/switch_displace_signature.chn"
+Content-Type: text/plain
+
+{
+ channel input {
+ lefttype = extend
+ righttype = extend
+ flags = 0
+ segment { length = 0 expr = ch(\"../MOPs_Noise_Patterns1/signature\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/switch_displace_signature.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+input [ 8 locks=0 ] ( [ input 1 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s/switch_displace_signature.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s.order"
+Content-Type: text/plain
+
+12
+Prev_Frame
+Input_1
+Input_2
+Input_3
+Input_4
+attribwrangle1
+output1
+update_attrs
+compute_transform_scalar
+compute_transform_vector
+switch_displace_signature
+MOPs_Noise_Patterns1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/advect_noise/d/s.net"
+Content-Type: text/plain
+
+1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_do_polylines1.init"
+Content-Type: text/plain
+
+type = switch
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_do_polylines1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.3125 -11.1386
+connectornextid 3
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 attribcopy1 1 1 "input1"
+2 attribdelete1 1 1 "input2"
+}
+inputs
+{
+0 attribcopy1 0 1
+1 attribdelete1 0 1
+}
+stat
+{
+ create 1546819340
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 1 0.7
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_do_polylines1.chn"
+Content-Type: text/plain
+
+{
+ channel input {
+ lefttype = extend
+ righttype = extend
+ default = 1
+ flags = 0
+ segment { length = 0 value = 1 1 expr = "ch(\"../do_polylines\") && ch(\"../do_curveu\")" }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_do_polylines1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+input [ 8 locks=0 ] ( [ input 0 ] )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/switch_do_polylines1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/uvtexture2.init"
+Content-Type: text/plain
+
+type = texture
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/uvtexture2.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -7.40269 -8.66409
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 attribcopy1 1 1 "input1"
+}
+inputs
+{
+0 attribcopy1 0 1
+}
+stat
+{
+ create 1557519631
+ modify 1565235649
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/uvtexture2.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+uvattrib [ 0 locks=0 ] ( __uv )
+group [ 0 locks=0 ] ( "" )
+type [ 0 locks=0 ] ( "sarclen" )
+axis [ 0 locks=0 ] ( "y" )
+campath [ 0 locks=0 ] ( "" )
+coord [ 0 locks=0 ] ( "point" )
+s [ 0 locks=0 ] ( 1 1 1 )
+offset [ 0 locks=0 ] ( 0 0 0 )
+angle [ 0 locks=0 ] ( 0 )
+fixseams [ 0 locks=0 ] ( "off" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/uvtexture2.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete1.init"
+Content-Type: text/plain
+
+type = attribdelete
+matchesdef = 1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -7.53181 -10.0786
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 pointwrangle2 1 1 "input1"
+}
+inputs
+{
+0 pointwrangle2 0 1
+}
+stat
+{
+ create 1557528051
+ modify 1565235649
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+ptdel [ 0 locks=0 ] ( __uv )
+vtxdel [ 0 locks=0 ] ( "" )
+primdel [ 0 locks=0 ] ( "" )
+dtldel [ 0 locks=0 ] ( "" )
+updatevar [ 0 locks=0 ] ( "on" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribdelete1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":""
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribswap1.init"
+Content-Type: text/plain
+
+type = attribswap
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribswap1.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -9.02114 15.0184
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 (0) "" 1 "input1"
+}
+inputs
+{
+0 (0) 0 1
+}
+stat
+{
+ create 1565235649
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribswap1.chn"
+Content-Type: text/plain
+
+{
+ channel srcattribs1 {
+ lefttype = extend
+ righttype = extend
+ defaultString = \"mops_falloff\"
+ flags = 0
+ segment { length = 0 expr = chs(\"../falloff_attr\") }
+ }
+ }
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribswap1.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+numswaps [ 0 locks=0 ] ( 1 )
+enable1 [ 0 locks=0 ] ( "on" )
+method1 [ 0 locks=0 ] ( "swap" )
+class1 [ 0 locks=0 ] ( "point" )
+srcattribs1 [ 0 locks=0 ] ( [ srcattribs1 mops_falloff ] )
+dstattribs1 [ 0 locks=0 ] ( mops_falloff )
+typeinfo1 [ 0 locks=0 ] ( "dest" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribswap1.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribswap2.init"
+Content-Type: text/plain
+
+type = attribswap
+matchesdef = 0
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribswap2.def"
+Content-Type: text/plain
+
+sopflags sopflags =
+comment ""
+position -11.0797 -18.132
+connectornextid 2
+flags = lock off model off template off footprint off xray off bypass off display off render off highlight off unload off savedata off compress on colordefault on exposed on
+outputsNamed3
+{
+1 "output1"
+}
+inputsNamed3
+{
+0 attribdelete3 1 1 "input1"
+}
+inputs
+{
+0 attribdelete3 0 1
+}
+stat
+{
+ create 1565235679
+ modify 1592879395
+ author Henry@LAPPY586
+ access 0777
+}
+color UT_Color RGB 0.8 0.8 0.8
+delscript ""
+exprlanguage hscript
+end
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribswap2.parm"
+Content-Type: text/plain
+
+{
+version 0.8
+numswaps [ 0 locks=0 ] ( 1 )
+enable1 [ 0 locks=0 ] ( "on" )
+method1 [ 0 locks=0 ] ( "swap" )
+class1 [ 0 locks=0 ] ( "point" )
+srcattribs1 [ 0 locks=0 ] ( mops_falloff )
+dstattribs1 [ 0 locks=0 ] ( `chs(\"../attribswap1/srcattribs1\")` )
+typeinfo1 [ 0 locks=0 ] ( "dest" )
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot/attribswap2.userdata"
+Content-Type: text/plain
+
+{
+ "___Version___":{
+ "type":"string",
+ "value":"18.0.460"
+ }
+}
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot.order"
+Content-Type: text/plain
+
+35
+IN
+group1
+MOPs_Apply_Attributes
+split1
+merge1
+group2
+switch_if_trails
+switch_do_polylines
+add1
+output1
+groupdelete2
+MOPs_Extract_Attributes
+attribdelete2
+attribcopy1
+test_group_mask
+switch4
+grouppromote1
+if_group_promoted
+groupdelete3
+attribdelete3
+make_id_if_none
+enumerate1
+MOPs_Noise_Patterns
+compute_transform_scalar
+compute_transform_vector
+switch_displace_signature
+switch_noise_mode
+advect_noise
+pointwrangle2
+switch_do_polylines1
+uvtexture2
+attribdelete1
+attribswap1
+attribswap2
+pointwrangle1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY
+Content-Disposition: attachment; filename="hdaroot.net"
+Content-Type: text/plain
+
+1
+
+--HOUDINIMIMEBOUNDARY0xD3ADD339-0x00000F49-0x56B122C9-0x00000001HOUDINIMIMEBOUNDARY--
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/Sections.list b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/Sections.list
new file mode 100644
index 00000000..49f2c152
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Contents.dir/Sections.list
@@ -0,0 +1,2 @@
+""
+Contents.mime Contents.mime
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/CreateScript b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/CreateScript
new file mode 100644
index 00000000..545d0109
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/CreateScript
@@ -0,0 +1,14 @@
+# Automatically generated script
+\set noalias = 1
+#
+# Creation script for MOPS::Noise_Modifier::1.1 operator
+#
+
+if ( "$arg1" == "" ) then
+ echo This script is intended as a creation script
+ exit
+endif
+
+# Node $arg1 (MOPS::Sop/Noise_Modifier::1.1)
+opexprlanguage -s hscript $arg1
+opuserdata -n '___Version___' -v '' $arg1
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/DialogScript b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/DialogScript
new file mode 100644
index 00000000..460b2f1e
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/DialogScript
@@ -0,0 +1,532 @@
+# Dialog script for MOPS::Noise_Modifier::1.1 automatically generated
+
+{
+ name MOPS::Noise_Modifier::1.1
+ script MOPS::Noise_Modifier::1.1
+ label "MOPs Noise Modifier"
+
+ help {
+ ""
+ }
+
+ inputlabel 1 "Packed Primitives"
+ inputlabel 2 "Sub-Network Input #2"
+ inputlabel 3 "Sub-Network Input #3"
+ inputlabel 4 "Sub-Network Input #4"
+
+ parm {
+ name "group"
+ label "Group"
+ type string
+ default { "" }
+ menutoggle {
+ [ "opmenu -l Apply_Attributes2 group" ]
+ }
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "script_action" "import soputils\nkwargs['geometrytype'] = kwargs['node'].parmTuple('grouptype')\nkwargs['inputindex'] = 0\nsoputils.selectGroupParm(kwargs)" }
+ parmtag { "script_action_help" "Select geometry from an available viewport." }
+ parmtag { "script_action_icon" "BUTTONS_reselect" }
+ }
+ parm {
+ name "grouptype"
+ label "Group Type"
+ type ordinal
+ default { "guess" }
+ menu {
+ "guess" "Guess from Group"
+ "vertices" "Vertices"
+ "edges" "Edges"
+ "points" "Points"
+ "prims" "Primitives"
+ }
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "sepparm"
+ label "Separator"
+ type separator
+ default { "" }
+ }
+ parm {
+ name "noisemode"
+ label "Mode"
+ type ordinal
+ default { "0" }
+ menu {
+ "0" "Simple"
+ "1" "Advect"
+ }
+ }
+ parm {
+ name "do_P"
+ label "Affect Position"
+ type toggle
+ default { "1" }
+ range { 0 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "script_callback_language" "python" }
+ }
+ parm {
+ name "scale"
+ label "Position Amount"
+ type float
+ default { "1" }
+ disablewhen "{ do_P == 0 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "orientclones"
+ label "Affect Rotation"
+ type toggle
+ default { "0" }
+ disablewhen "{ signature == 0 }"
+ }
+ groupsimple {
+ name "folder1"
+ label "Rotation"
+ disablewhentab "{ orientclones 0 }"
+
+ parm {
+ name "rotation_amount"
+ label "Rotation Amount"
+ type float
+ default { "1" }
+ disablewhen "{ noisemode == 1 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "script_callback_language" "python" }
+ }
+ parm {
+ name "aim_weight"
+ label "Aim Weight"
+ type float
+ default { "0.1" }
+ disablewhen "{ noisemode == 0 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ }
+
+ parm {
+ name "do_scale"
+ label "Affect Scale"
+ type toggle
+ default { "0" }
+ disablewhen "{ noisemode == 1 }"
+ range { 0 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ groupsimple {
+ name "folder2"
+ label "Scale"
+
+ parm {
+ name "scale_amount"
+ label "Scale Amount"
+ type float
+ default { "1" }
+ disablewhen "{ do_scale == 0 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "script_callback_language" "python" }
+ }
+ parm {
+ name "scale_range_input"
+ label "Scale In Range"
+ type vector2
+ size 2
+ default { "0" "1" }
+ disablewhen "{ do_scale == 0 }"
+ range { -1 1 }
+ }
+ parm {
+ name "scale_range"
+ label "Scale Out Range"
+ type vector2
+ size 2
+ default { "0" "1" }
+ disablewhen "{ do_scale == 0 }"
+ range { -1 1 }
+ }
+ }
+
+ parm {
+ name "do_falloff"
+ label "Do Falloff"
+ type toggle
+ default { "1" }
+ range { 0 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "falloff_attr"
+ label "Falloff Attribute"
+ type string
+ default { "mops_falloff" }
+ menureplace {
+ [ "opmenu -l attribswap1 srcattribs1" ]
+ }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "do_trails"
+ label "Output Trails"
+ type toggle
+ default { "0" }
+ disablewhen "{ noisemode == 0 }"
+ }
+ group {
+ name "noiseprops"
+ label "Noise Properties"
+
+ group {
+ name "folder0"
+ label "Noise"
+
+ parm {
+ name "signature"
+ label "Noise Signature"
+ type ordinal
+ default { "1" }
+ menu {
+ "0" "Float"
+ "1" "Vector"
+ }
+ range { 0! 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "forwardaxis"
+ label "Forward Axis"
+ type ordinal
+ default { "0" }
+ disablewhen "{ signature == 1 }"
+ menu {
+ "N" "Normal"
+ "up" "Up"
+ }
+ }
+ parm {
+ name "noisetype"
+ label "Noise Type"
+ type ordinal
+ default { "9" }
+ menu {
+ "0" "Perlin"
+ "1" "Simplex"
+ "2" "Worley (F2-F1)"
+ "3" "Worley (F1)"
+ "4" "Worley (F2)"
+ "5" "Mosaic"
+ "6" "Simplex Folded"
+ "7" "Simplex Warped"
+ "8" "Mix Minima"
+ "9" "Curl"
+ "10" "Alligator"
+ "11" "Sparse Convolution"
+ }
+ range { 0! 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "use_rest"
+ label "Use Rest Attribute"
+ type toggle
+ default { "off" }
+ range { 0 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "amp"
+ label "Amplitude"
+ type vector
+ size 3
+ default { "1" "1" "1" }
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "freq"
+ label "Frequency"
+ type vector4
+ size 4
+ default { "1" "1" "1" "1" }
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "uniform"
+ label "Uniform"
+ type toggle
+ default { "off" }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "roughness"
+ label "Roughness"
+ type float
+ default { "0.5" }
+ range { 0.0001! 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "octaves"
+ label "Octaves"
+ type integer
+ default { "1" }
+ range { 1! 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "offset"
+ label "Offset"
+ type vector4
+ size 4
+ default { "0" "0" "0" "0" }
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "tile_size"
+ label "Tile Size"
+ type vector
+ size 3
+ default { "1" "1" "1" }
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "Distort"
+ label "Distort"
+ type vector
+ size 3
+ default { "0" "0" "0" }
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "time_varying"
+ label "Time Varying"
+ type toggle
+ default { "off" }
+ disablewhen "{ noisetype > 9 }"
+ range { 0 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "time_scale"
+ label "Time Scale"
+ type float
+ default { "1" }
+ disablewhen "{ time_varying == 0 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ }
+
+ group {
+ name "folder0_1"
+ label "Remap"
+
+ parm {
+ name "do_remap"
+ label "Enable Remap"
+ type toggle
+ default { "off" }
+ range { 0! 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "script_callback_language" "python" }
+ }
+ parm {
+ name "input_rangev"
+ label "Input Range"
+ type vector2
+ size 2
+ default { "-1" "1" }
+ disablewhen "{ do_remap == 0 }"
+ hidewhen "{ signature == 1 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "output_rangev"
+ label "Output Range"
+ type vector2
+ size 2
+ default { "-1" "1" }
+ disablewhen "{ do_remap == 0 }"
+ hidewhen "{ signature == 1 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "input_min_3D"
+ label "Input Min"
+ type vector
+ size 3
+ default { "-1" "-1" "-1" }
+ disablewhen "{ do_remap == 0 }"
+ hidewhen "{ signature == 0 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "script_callback_language" "python" }
+ }
+ parm {
+ name "input_max_3D"
+ label "Input Max"
+ type vector
+ size 3
+ default { "1" "1" "1" }
+ disablewhen "{ do_remap == 0 }"
+ hidewhen "{ signature == 0 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "script_callback_language" "python" }
+ }
+ parm {
+ name "output_min_3D"
+ label "Output Min"
+ type vector
+ size 3
+ default { "-1" "-1" "-1" }
+ disablewhen "{ do_remap == 0 }"
+ hidewhen "{ signature == 0 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "script_callback_language" "python" }
+ }
+ parm {
+ name "output_max_3D"
+ label "Output Max"
+ type vector
+ size 3
+ default { "1" "1" "1" }
+ disablewhen "{ do_remap == 0 }"
+ hidewhen "{ signature == 0 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "script_callback_language" "python" }
+ }
+ }
+
+ }
+
+ group {
+ name "noiseprops_1"
+ label "Trail Settings"
+ disablewhentab "{ do_trails == 0 }"
+
+ parm {
+ name "do_polylines"
+ label "Polyline Trails"
+ type toggle
+ default { "1" }
+ range { 0! 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "groupname"
+ label "Group Name"
+ type string
+ default { "trails" }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "trail_attrs"
+ label "Inherit Attributes"
+ type string
+ default { "Cd id mops_falloff" }
+ }
+ parm {
+ name "do_curveu"
+ label "Generate Curve UV Attribute"
+ type toggle
+ default { "0" }
+ }
+ parm {
+ name "curveu_name"
+ label "Curve UV Attribute Name"
+ type string
+ default { "curveu" }
+ disablewhen "{ do_curveu == 0 }"
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ }
+
+ group {
+ name "noiseprops_2"
+ label "Solver Settings"
+ disablewhentab "{ noisemode == 0 }"
+
+ parm {
+ name "resimulate"
+ label "Reset Simulation"
+ type button
+ default { "0" }
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "attribname"
+ label "Update Attributes"
+ type string
+ default { "mops_falloff" }
+ menutoggle {
+ [ "opmenu -l advect_curl/d/s/update_attrs attribname" ]
+ }
+ parmtag { "autoscope" "0000000000000000" }
+ parmtag { "sop_input" "2else1" }
+ }
+ parm {
+ name "sepparm2"
+ label "Separator"
+ type separator
+ default { "" }
+ }
+ parm {
+ name "startframe"
+ label "Start Frame"
+ type integer
+ default { "$RFSTART" }
+ range { 1 240 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "substep"
+ label "Sub Steps"
+ type integer
+ default { "1" }
+ range { 1! 10 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "cacheenabled"
+ label "Cache Simulation"
+ type toggle
+ default { "on" }
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "cachetodisk"
+ label "Allow Caching To Disk"
+ type toggle
+ default { "off" }
+ range { 0 1 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ parm {
+ name "cachemaxsize"
+ label "Cache Memory (MB)"
+ type integer
+ default { "5000" }
+ range { 0! 1000 }
+ parmtag { "autoscope" "0000000000000000" }
+ }
+ }
+
+}
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/ExtraFileOptions b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/ExtraFileOptions
new file mode 100644
index 00000000..8c14df31
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/ExtraFileOptions
@@ -0,0 +1,46 @@
+{
+ "OnCreated/Cursor":{
+ "type":"intarray",
+ "value":[1,1]
+ },
+ "OnCreated/IsExpr":{
+ "type":"bool",
+ "value":false
+ },
+ "OnCreated/IsPython":{
+ "type":"bool",
+ "value":true
+ },
+ "OnCreated/IsScript":{
+ "type":"bool",
+ "value":true
+ },
+ "OnCreated/Source":{
+ "type":"string",
+ "value":""
+ },
+ "ViewerStateModule/CodeGenInput":{
+ "type":"string",
+ "value":"{\n\t\"state_name\":\"\",\n\t\"state_label\":\"\",\n\t\"state_descr\":\"\",\n\t\"state_icon\":\"$HH/config/Icons\",\n\t\"state_debug_menu\":0,\n\t\"state_sample\":0,\n\t\"state_handler_indices\":[]\n}\n"
+ },
+ "mops_modifier_02.svg/Cursor":{
+ "type":"intarray",
+ "value":[1,1]
+ },
+ "mops_modifier_02.svg/IsExpr":{
+ "type":"bool",
+ "value":false
+ },
+ "mops_modifier_02.svg/IsPython":{
+ "type":"bool",
+ "value":false
+ },
+ "mops_modifier_02.svg/IsScript":{
+ "type":"bool",
+ "value":false
+ },
+ "mops_modifier_02.svg/Source":{
+ "type":"string",
+ "value":"Q:/Entagma/MOPS/GIT/MOPS/mops_modifier_02.svg"
+ }
+}
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Help b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Help
new file mode 100644
index 00000000..9f2a662b
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Help
@@ -0,0 +1,103 @@
+= MOPs Noise Modifier =
+
+#icon: opdef:.?mops_modifier_02.svg
+
+"""Moves instances according multiple types of noise fields."""
+
+This node is a replacement for the MOPs Curl Noise modifier. MOPs Noise Modifier can push objects along a curl noise field, but it can
+also use many other types of noise fields as well. Objects can be pushed along in their local space (based on their N or up vectors), or
+they can be pushed in world space, depending on the Noise Signature.
+
+== Overview ==
+
+@inputs
+
+Packed Primitives:
+ Plug in MOPs instances in here.
+
+@parameters
+
+== General ==
+
+Mode:
+ #id: noisemode
+ Select how instances will be moved through noise field.
+ - Simple: Simply move instances in the direction of the noise.
+ - Advect: Advect instances through the noise field over time (hit play to see effect).
+
+Affect Position:
+ #id: scale
+ Enable the modification of point positions.
+
+Position Amount:
+ #id: scale
+ A multiplier on the strength of the position effect.
+
+Affect Rotation:
+ #id: orientclones
+ Orient instances according to their motion through the noise field.
+
+Rotation Amount:
+ #id: rotation_amount
+ Available in Simple mode only. A multiplier on the strength of the rotation effect.
+
+Aim Weight:
+ #id: aim_weight
+ Available in Advect Mode only. The bias between the previous timestep's orientation and the current timestep's. Lower numbers make instances turn towards the direction of motion more slowly. A value of 1.0 implies that all objects will immediately turn towards their direction of motion each frame. This can cause jittery motion, so use with caution.
+
+Affect Scale:
+ #id: do_scale
+ Enable the modification of point/packed primitive scales.
+
+Scale Amount:
+ #id: A multiplier on the strength of the scale effect.
+
+Do Falloff:
+ #id: do_falloff
+ Scale each primitive's motion by the `mops_falloff` attribute.
+
+Output Trails:
+ #id: do_trails
+ Generate trails from the path of each object. Only available in Advect mode.
+
+== Noise Properties ==
+
+Noise Signature:
+ #id: signature
+ The type of noise to generate. Scalar noise is a single value; vector noise is three values (x,y,z).
+
+Forward Axis:
+ #id: forwardaxis
+ If the "Noise Signature" is set to "Float", the axis in which to move instances. Defaults to Normal (+Z).
+
+See [MOPs Noise Patterns|Node:sop/MOPS--Noise_Patterns-1.1] for help on other parameters in this section.
+
+== Trail Settings ==
+
+Trails are only available in Advect Mode.
+
+Polyline Trails:
+ #id: do_polylines
+ If enabled, trails will be generated as polylines (not points).
+
+Group Name:
+ #id: groupname
+ The group to place the trails in.
+
+Inherit Attributes:
+ #id: trail_attrs
+ A list of point attributes to inherit from the source packed primitives / points.
+
+Generate Curve UV Attribute:
+ #id: do_curveu
+ If enabled, an attribute will be generated on the trails corresponding to the parametric value of each point along the curve (0-1).
+
+Curve UV Attribute Name:
+ #id: curveu_name
+ The name of the Curve UV attribute to generate.
+
+== Solver Settings ==
+
+Update Attributes:
+ #id: attribname
+ Advect mode only. A list of attributes to update as the simulation runs.
\ No newline at end of file
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/IconSVG b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/IconSVG
new file mode 100644
index 00000000..9eb0bcd6
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/IconSVG
@@ -0,0 +1,22 @@
+
+
+
+
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/InternalFileOptions b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/InternalFileOptions
new file mode 100644
index 00000000..222988aa
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/InternalFileOptions
@@ -0,0 +1,10 @@
+{
+ "nodeconntype":{
+ "type":"bool",
+ "value":false
+ },
+ "nodeparmtype":{
+ "type":"bool",
+ "value":false
+ }
+}
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/OnCreated b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/OnCreated
new file mode 100644
index 00000000..70777857
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/OnCreated
@@ -0,0 +1,10 @@
+me = kwargs['node']
+me.setName('MOPs_Noise_Modifier', True)
+
+# send anonymous statistics if enabled.
+# see README.md for more information.
+try:
+ import mops_tools
+ mops_tools.send_on_create_analytics(me)
+except:
+ pass
\ No newline at end of file
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Sections.list b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Sections.list
new file mode 100644
index 00000000..44115c8c
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Sections.list
@@ -0,0 +1,12 @@
+""
+DialogScript DialogScript
+CreateScript CreateScript
+TypePropertiesOptions TypePropertiesOptions
+Help Help
+Tools.shelf Tools.shelf
+InternalFileOptions InternalFileOptions
+Contents.gz Contents.gz
+IconSVG IconSVG
+OnCreated OnCreated
+ExtraFileOptions ExtraFileOptions
+mops__modifier__02.svg mops_modifier_02.svg
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Tools.shelf b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Tools.shelf
new file mode 100644
index 00000000..0b1c0e5e
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/Tools.shelf
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+ SOP
+
+
+ $HDA_TABLE_AND_NAME
+ SOP
+
+ MOPs/Modifiers
+
+
+
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/TypePropertiesOptions b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/TypePropertiesOptions
new file mode 100644
index 00000000..a6d52acf
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/TypePropertiesOptions
@@ -0,0 +1,14 @@
+CheckExternal := 1;
+ContentsCompressionType := 1;
+ForbidOutsideParms := 1;
+GzipContents := 1;
+LockContents := 1;
+MakeDefault := 1;
+ParmsFromVfl := 0;
+PrefixDroppedParmLabel := 0;
+PrefixDroppedParmName := 0;
+SaveCachedCode := 0;
+SaveIcon := 1;
+SaveSpareParms := 0;
+UnlockOnCreate := 0;
+UseDSParms := 1;
diff --git a/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/mops__modifier__02.svg b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/mops__modifier__02.svg
new file mode 100644
index 00000000..9eb0bcd6
--- /dev/null
+++ b/otls/MOPS_noise_modifier.hda/MOPS_8_8Sop_1Noise__Modifier_8_81.2/mops__modifier__02.svg
@@ -0,0 +1,22 @@
+
+
+
+
diff --git a/otls/MOPS_noise_modifier.hda/Sections.list b/otls/MOPS_noise_modifier.hda/Sections.list
index 00f7fa77..4821cfa6 100644
--- a/otls/MOPS_noise_modifier.hda/Sections.list
+++ b/otls/MOPS_noise_modifier.hda/Sections.list
@@ -3,3 +3,4 @@ INDEX__SECTION INDEX_SECTION
houdini.hdalibrary houdini.hdalibrary
MOPS_8_8Sop_1Noise__Modifier_8_81.0 MOPS::Sop/Noise_Modifier::1.0
MOPS_8_8Sop_1Noise__Modifier_8_81.1 MOPS::Sop/Noise_Modifier::1.1
+MOPS_8_8Sop_1Noise__Modifier_8_81.2 MOPS::Sop/Noise_Modifier::1.2
\ No newline at end of file