HouNC1033600baa06a1ff8ab09a7e5963.start fplayback -i on -r off -f 1 -e on -h on -t on -a on -k on -s 1
tcur 6.583333333333333
fps 24
tset 0 10
frange 1 240
unitlength 1
unitmass 1
prompt '`strcat(oppwf(), " -> ")`'
HouNC1033600ba606a1ff8ab043eeba63.variables set -g ACTIVETAKE = 'Main'
set -g E = '2.7182818284590452354'
set -g EYE = 'stereo'
set -g HANDLE_STATUS = '-1'
set -g HIP = '/home/ddd'
set -g HIPFILE = '/home/ddd/feathe_scale_test_07.hipnc'
set -g HIPNAME = 'feathe_scale_test_07'
set -g JOB = '/home/ddd'
set -g PI = '3.1415926535897932384'
set -g POSE = '/home/ddd/houdini20.5/poselib'
set -g _HIP_SAVEPLATFORM = 'linux-x86_64-gcc11.2'
set -g _HIP_SAVETIME = 'Wed Jun  3 11:49:31 2026'
set -g _HIP_SAVEVERSION = '20.5.445'
set -g _HIP_SHELFTOOLCOUNT = '1'
set -g status = '0'
HouNC1033600ba406a1ff8ab0dba5575b.aliases alias bye 'quit'
alias cd 'opcf'
alias cp 'opcp'
alias h 'history'
alias hython 'python'
alias ls 'opls'
alias matramp 'opramp'
alias opcd 'opcf'
alias oppwd 'oppwf'
alias pwd 'oppwf'
alias rm 'oprm'
HouNC1033600ba106a1ff8ab04309e1eb.takeconfig takename -g take
HouNC1033600ba006a1ff8ab0e36d4a3d.hou.session HouNC1033600ba006a1ff8ab08029b1f6.OPlibraries HouNC1033600ba206a1ff8ab06c0e60b2.OPpreferences HouNC1033600ba006a1ff8ab075766880.OPfallbacks Sop/attribdelete /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/attribdelete otls/OPlibSop.hda
Sop/attribexpression /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/attribexpression otls/OPlibSop.hda
Sop/attribwrangle /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/attribwrangle otls/OPlibSop.hda
Sop/color /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/color otls/OPlibSop.hda
Sop/curve::2.0 /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/curve::2.0 otls/OPlibSop.hda
Sop/dopimportfield /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/dopimportfield otls/OPlibSop.hda
Sop/feathernormalize /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/feathernormalize otls/OPlibSop.hda
Sop/featherresample /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/featherresample otls/OPlibSop.hda
Sop/feathershapeorg /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/feathershapeorg otls/OPlibSop.hda
Sop/feathertemplatefromshape /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/feathertemplatefromshape otls/OPlibSop.hda
Sop/feathertemplateinterpolate /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/feathertemplateinterpolate otls/OPlibSop.hda
Sop/featherutility /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/featherutility otls/OPlibSop.hda
Sop/featherwidth /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/featherwidth otls/OPlibSop.hda
Dop/groundplane /opt/hfs20.5.445/houdini/otls/OPlibDop.hda
Dop/groundplane otls/OPlibDop.hda
Sop/groupexpression /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/groupexpression otls/OPlibSop.hda
Sop/guidegroom::2.0 /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/guidegroom::2.0 otls/OPlibSop.hda
Sop/guideskinattriblookup /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/guideskinattriblookup otls/OPlibSop.hda
Sop/guidetangentspace /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/guidetangentspace otls/OPlibSop.hda
Top/localscheduler /opt/hfs20.5.445/houdini/otls/OPlibTop.hda
Top/localscheduler otls/OPlibTop.hda
Dop/output /opt/hfs20.5.445/houdini/otls/OPlibDop.hda
Dop/output otls/OPlibDop.hda
Dop/popwind /opt/hfs20.5.445/houdini/otls/OPlibPopDop.hda
Dop/popwind otls/OPlibPopDop.hda
Dop/popwindshadow /opt/hfs20.5.445/houdini/otls/OPlibPopDop.hda
Dop/popwindshadow otls/OPlibPopDop.hda
Vop/principledshader::2.0 /opt/hfs20.5.445/houdini/otls/OPlibVop.hda
Vop/principledshader::2.0 otls/OPlibVop.hda
Sop/singlecurveoperation /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/singlecurveoperation otls/OPlibSop.hda
Sop/split /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/split otls/OPlibSop.hda
Dop/staticobject /opt/hfs20.5.445/houdini/otls/OPlibDop.hda
Dop/staticobject otls/OPlibDop.hda
Sop/testgeometry_tommy /opt/hfs20.5.445/houdini/otls/OPlibPlaceholder.hda
Sop/testgeometry_tommy otls/OPlibPlaceholder.hda
Sop/vdbcollidersprocess /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/vdbcollidersprocess otls/OPlibSop.hda
Sop/vellumbrush /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/vellumbrush otls/OPlibSop.hda
Dop/vellumobject /opt/hfs20.5.445/houdini/otls/OPlibDop.hda
Dop/vellumobject otls/OPlibDop.hda
Dop/vellumsolver /opt/hfs20.5.445/houdini/otls/OPlibDop.hda
Dop/vellumsolver otls/OPlibDop.hda
Sop/vellumsolver /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/vellumsolver otls/OPlibSop.hda
Dop/vellumsource /opt/hfs20.5.445/houdini/otls/OPlibDop.hda
Dop/vellumsource otls/OPlibDop.hda
Sop/visualize /opt/hfs20.5.445/houdini/otls/OPlibSop.hda
Sop/visualize otls/OPlibSop.hda
HouNC1033600ba006a1ff8ab08cf38e5e.OPdummydefs INDX           $   INDEX_SECTION       j   houdini.hdalibrary       j   Sop/attribdelete     j/   Sop/attribexpression  -m  'j/   Sop/attribwrangle  U"  j/   	Sop/color  t  j/   Sop/curve::2.0  e  j/   Sop/dopimportfield 
  $j/   Sop/feathernormalize .  j/   Sop/featherresample 2  
j/   Sop/feathershapeorg P  j/   Sop/feathertemplatefromshape R  j/   Sop/feathertemplateinterpolate bG  8#j/   Sop/featherutility j  j/   Sop/featherwidth [  5Cj/   Dop/groundplane ݞ  j/   Sop/groupexpression   j/   Sop/guidegroom::2.0 #  j/   Sop/guideskinattriblookup   	j0   Sop/guidetangentspace %  j/   Top/localscheduler 7  Lj/   
Dop/output {  
{j/   Dop/popwind   6Qj/   Dop/popwindshadow G  +Gj/   Vop/principledshader::2.0  vj/   Sop/singlecurveoperation f  j/   	Sop/split   j/   Dop/staticobject .  nj/   Sop/testgeometry_tommy   j/   Sop/vdbcollidersprocess   j/   Sop/vellumbrush 	  j/   Dop/vellumobject Z  2j/   Dop/vellumsolver   mj/   Sop/vellumsolver F  ÷j/   Dop/vellumsource 	
  j/   Sop/visualize 	  Dj/   "      attribdelete   Attribute Delete   (oplib:/Sop/attribdelete?Sop/attribdelete   SOP_attribdelete           Sop                      j       attribexpression   Attribute Expression   0oplib:/Sop/attribexpression?Sop/attribexpression   SOP_attribexpression           Sop                       j       attribwrangle   Attribute Wrangle   *oplib:/Sop/attribwrangle?Sop/attribwrangle   SOP_attribwrangle           Sop                       j       color   Color   oplib:/Sop/color?Sop/color   	SOP_color           Sop                      j       
curve::2.0   Curve   $oplib:/Sop/curve::2.0?Sop/curve::2.0   	SOP_curve           Sop               einputcolors='1 "RGB 0.700195 0.700195 0.700195" ' outputcolors='1 "RGB 0.700195 0.700195 0.700195" '        j       dopimportfield   Dop Import Fields   ,oplib:/Sop/dopimportfield?Sop/dopimportfield   SOP_dopimportfield           Sop                        j       feathernormalize   Feather Normalize   0oplib:/Sop/feathernormalize?Sop/feathernormalize   SOP_feathernormalize           Sop               inputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' outputcolors='1 "RGB 0.700195 0.700195 0.700195" '       j          featherresample   Feather Resample   .oplib:/Sop/featherresample?Sop/featherresample   SOP_featherresample           Sop               inputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' outputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' visibleoutputs=3       j          feathershapeorg   Feather Shape Organize   .oplib:/Sop/feathershapeorg?Sop/feathershapeorg   SOP_feathershapeorg           Sop               inputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' outputcolors='1 "RGB 0.700195 0.700195 0.700195" '       j       feathertemplatefromshape   Feather Template from Shape   @oplib:/Sop/feathertemplatefromshape?Sop/feathertemplatefromshape   SOP_feathertemplatefromshape           Sop               einputcolors='1 "RGB 0.700195 0.700195 0.700195" ' outputcolors='1 "RGB 0.700195 0.700195 0.700195" '       j       feathertemplateinterpolate   Feather Template Interpolate   Doplib:/Sop/feathertemplateinterpolate?Sop/feathertemplateinterpolate   SOP_feathertemplateinterpolate           Sop              inputcolors='4 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' outputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' visibleoutputs=3       j          featherutility   Feather Utility   ,oplib:/Sop/featherutility?Sop/featherutility   SOP_featherutility           Sop               inputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' outputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' visibleoutputs=3       j          featherwidth   Feather Width   (oplib:/Sop/featherwidth?Sop/featherwidth   SOP_featherwidth           Sop               inputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' outputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' visibleoutputs=3       j          groundplane   Ground Plane   &oplib:/Dop/groundplane?Dop/groundplane   DOP_groundplane           Dop                        j          groupexpression   Group Expression   .oplib:/Sop/groupexpression?Sop/groupexpression   SOP_groupexpression           Sop                      j       guidegroom::2.0   Guide Groom   .oplib:/Sop/guidegroom::2.0?Sop/guidegroom::2.0   SOP_guidegroom           Sop               inputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' outputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' visibleoutputs=3        j          guideskinattriblookup   Guide Skin Attribute Lookup   :oplib:/Sop/guideskinattriblookup?Sop/guideskinattriblookup   SOP_guideskinattriblookup           Sop                      j       guidetangentspace   Guide Tangent Space   2oplib:/Sop/guidetangentspace?Sop/guidetangentspace   SOP_guidetangentspace           Sop               inputcolors='2 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' outputcolors='1 "RGB 0.700195 0.700195 0.700195" '       j       localscheduler   Local Scheduler   ,oplib:/Top/localscheduler?Top/localscheduler   TOP_localscheduler           Top               <pdgtype='scheduler' subtype=localscheduler visibleoutputs=0         j            output   
ROP Output   oplib:/Dop/output?Dop/output   
DOP_output           Dop                       j          popwind   POP Wind   oplib:/Dop/popwind?Dop/popwind   DOP_popwind           Dop                       j          popwindshadow   POP Wind Shadow   *oplib:/Dop/popwindshadow?Dop/popwindshadow   DOP_popwindshadow           Dop                       j          principledshader::2.0   Principled Shader   :oplib:/Vop/principledshader::2.0?Vop/principledshader::2.0   VOP_principledshader           Vop               (shadertype=vopmaterial subtype=material        j          singlecurveoperation   Single Curve Operation   8oplib:/Sop/singlecurveoperation?Sop/singlecurveoperation   SOP_singlecurveoperation           Sop               einputcolors='1 "RGB 0.700195 0.700195 0.700195" ' outputcolors='1 "RGB 0.700195 0.700195 0.700195" '       j       split   Split   oplib:/Sop/split?Sop/split   	SOP_split           Sop               yinputcolors='1 "RGB 0.700195 0.700195 0.700195" ' outputcolors='2 "RGB 0.8 0.8 0.8" "RGB 0.8 0.8 0.8" ' visibleoutputs=2       j          staticobject   Static Object   (oplib:/Dop/staticobject?Dop/staticobject   DOP_staticobject           Dop                        j          testgeometry_tommy   Test Geometry: Tommy   4oplib:/Sop/testgeometry_tommy?Sop/testgeometry_tommy   SOP_testgeometry_tommy           Sop                        j       vdbcollidersprocess   VDB Colliders Process   6oplib:/Sop/vdbcollidersprocess?Sop/vdbcollidersprocess   
SOP_subnet           Sop               einputcolors='1 "RGB 0.700195 0.700195 0.700195" ' outputcolors='1 "RGB 0.700195 0.700195 0.700195" '       j       vellumbrush   Vellum Brush   &oplib:/Sop/vellumbrush?Sop/vellumbrush   SOP_vellumbrush           Sop               guide=GUIDE inputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.847168 0.474609 0.847168" "RGB 0.700195 0.700195 0.700195" ' outputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.847 0.475 0.847" "RGB 0.700195 0.700195 0.700195" ' visibleoutputs=3       j          vellumobject   Vellum Object   (oplib:/Dop/vellumobject?Dop/vellumobject   DOP_vellumobject           Dop                        j          vellumsolver   Vellum Solver   (oplib:/Dop/vellumsolver?Dop/vellumsolver   DOP_vellumsolver           Dop                       j          vellumsolver   Vellum Solver   (oplib:/Sop/vellumsolver?Sop/vellumsolver   SOP_vellumsolver           Sop               guide=GUIDE inputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.847168 0.474609 0.847168" "RGB 0.700195 0.700195 0.700195" ' outputcolors='3 "RGB 0.700195 0.700195 0.700195" "RGB 0.847 0.475 0.847" "RGB 0.700195 0.700195 0.700195" ' visibleoutputs=3       j          vellumsource   Vellum Source   (oplib:/Dop/vellumsource?Dop/vellumsource   DOP_vellumsource           Dop                        j          	visualize   Visualize Properties   "oplib:/Sop/visualize?Sop/visualize   SOP_visualize           Sop               einputcolors='1 "RGB 0.700195 0.700195 0.700195" ' outputcolors='1 "RGB 0.700195 0.700195 0.700195" '        j INDX              Contents       9j/   DialogScript   9  ,fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for attribdelete automatically generated

{
    name	attribdelete
    script	attribdelete
    label	"Attribute Delete"

    help {
	""
    }

    inputlabel	1	"Geometry to Remove Attributes from"
    inputlabel	2	"Reference Geometry"
    parmtag { inputisref2 1 }
    inputlabel	3	"Sub-Network Input #3"
    inputlabel	4	"Sub-Network Input #4"

    parm {
        name    "usereference"
        label   "Prepend with Attributes from Reference Geometry"
        type    toggle
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "negate"
        label   "Delete Non Selected"
        type    toggle
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "doptdel"
        label   "Point Attributes"
        type    toggle
        nolabel
        joinnext
        default { "1" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "ptdel"
        label   "Point Attributes"
        type    string
        default { "" }
        disablewhen "{ doptdel == 0 }"
        menutoggle {
            [ "opmenu -l -a attribute1 ptdel" ]
        }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "dovtxdel"
        label   "Vertex Attributes"
        type    toggle
        nolabel
        joinnext
        default { "1" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "vtxdel"
        label   "Vertex Attributes"
        type    string
        default { "" }
        disablewhen "{ dovtxdel == 0 }"
        menutoggle {
            [ "opmenu -l -a attribute1 vtxdel" ]
        }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "doprimdel"
        label   "Primitive Attributes"
        type    toggle
        nolabel
        joinnext
        default { "1" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "primdel"
        label   "Primitive Attributes"
        type    string
        default { "" }
        disablewhen "{ doprimdel == 0 }"
        menutoggle {
            [ "opmenu -l -a attribute1 primdel" ]
        }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "dodtldel"
        label   "Detail Attributes"
        type    toggle
        nolabel
        joinnext
        default { "1" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "dtldel"
        label   "Detail Attributes"
        type    string
        default { "" }
        disablewhen "{ dodtldel == 0 }"
        menutoggle {
            [ "opmenu -l -a attribute1 dtldel" ]
        }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "updatevar"
        label   "Update Local Variables"
        type    toggle
        default { "on" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
}
INDX              Contents       9j/   DialogScript   9  '8f/uHouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for attribexpression automatically generated

{
    name	attribexpression
    script	attribexpression
    label	"Attribute Expression"

    help {
	""
    }

    inputlabel	1	"Sub-Network Input #1"
    inputlabel	2	"Sub-Network Input #2"
    inputlabel	3	"Sub-Network Input #3"
    inputlabel	4	"Sub-Network Input #4"

    parm {
        name    "bindgroup"
        label   "Group"
        type    string
        default { "" }
        menutoggle {
            [ "opmenu -l -a attribwranglecore2 bindgroup" ]
        }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_action" "import soputils\nkwargs['geometrytype'] = kwargs['node'].parmTuple('bindgrouptype')\nkwargs['inputindex'] = 0\nsoputils.selectGroupParm(kwargs)" }
        parmtag { "script_action_help" "Select geometry from an available viewport.\nShift-click to turn on Select Groups." }
        parmtag { "script_action_icon" "BUTTONS_reselect" }
        bindselector uvselect "Modify Attribs"
            "Select the geometry to affect and press Enter to complete."
            0 1 0xffffffff 0 bindgrouptype 0
    }
    parm {
        name    "bindgrouptype"
        label   "Group Type"
        type    ordinal
        default { "guess" }
        menu {
            "guess"     "Guess from Group"
            "vertices"  "Vertices"
            "edges"     "Edges"
            "points"    "Points"
            "prims"     "Primitives"
        }
        parmtag { "autoscope" "0000000000000000" }
    }
    group {
        name    "folder0"
        label   "VEXpressions"

        parm {
            name    "bindclass"
            label   "Attribute Class"
            type    ordinal
            default { "point" }
            menu {
                "detail"    "Detail"
                "primitive" "Primitives"
                "point"     "Points"
                "vertex"    "Vertices"
            }
            parmtag { "autoscope" "0000000000000000" }
        }
        multiparm {
            name    "expressions"
            label    "Attribute VEXpressions"
            default 1

            parm {
                name    "enable#"
                label   "Enable"
                type    toggle
                nolabel
                joinnext
                default { "1" }
            }
            parm {
                name    "preset#"
                label   "Attribute"
                type    ordinal
                default { "P" }
                disablewhen "{ enable# == 0 }"
                menu {
                    ""          "Custom"
                    "P"         "Position (P)"
                    "v"         "Velocity (v)"
                    "force"     "Force (force)"
                    "Cd"        "Color (Cd)"
                    "Alpha"     "Alpha (Alpha)"
                    "N"         "Normal (N)"
                    "uv"        "Texture (uv)"
                    "mass"      "Mass (mass)"
                    "pscale"    "Scale (pscale)"
                    "name"      "Name (name)"
                }
                parmtag { "script_callback" "hou.node(\".\").hdaModule().preset(kwargs)" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "name#"
                label   "Name"
                type    string
                joinnext
                default { "P" }
                disablewhen "{ enable# == 0 } { preset# != \"\" }"
                hidewhen "{ preset# != \"\" }"
                menureplace {
                    [ "node = kwargs['node']" ]
                    [ "attrib_types = (hou.attribType.Global, hou.attribType.Prim," ]
                    [ "                hou.attribType.Point, hou.attribType.Vertex)" ]
                    [ "attrib_type = attrib_types[node.parm('bindclass').evalAsInt()]" ]
                    [ "return kwargs['node'].generateInputAttribMenu(0, attrib_type)" ]
                    language python
                }
            }
            parm {
                name    "type#"
                label   "Type"
                type    ordinal
                default { "vector" }
                disablewhen "{ enable# == 0 } { preset# != \"\" }"
                hidewhen "{ preset# != \"\" }"
                menu {
                    "int"       "Integer"
                    "float"     "Float"
                    "vector"    "Vector"
                    "vector4"   "Vector 4"
                    "matrix3"   "Matrix 3"
                    "matrix"    "Matrix 4"
                    "color"     "Color"
                    "string"    "String"
                }
            }
            parm {
                name    "vali_#"
                label   "Constant Value"
                type    integer
                default { "0" }
                disablewhen "{ enable# == 0 } { snippet# !~ .*\\\\bvalue\\\\b.* }"
                hidewhen "{ type# != int }"
                range   { 0 10 }
            }
            parm {
                name    "valf_#"
                label   "Constant Value"
                type    float
                default { "0" }
                disablewhen "{ enable# == 0 } { snippet# !~ .*\\\\bvalue\\\\b.* }"
                hidewhen "{ type# != float }"
                range   { 0 10 }
            }
            parm {
                name    "valv3_#"
                label   "Constant Value"
                type    vector
                size    3
                default { "0" "0" "0" }
                disablewhen "{ enable# == 0 } { snippet# !~ .*\\\\bvalue\\\\b.* }"
                hidewhen "{ type# != vector }"
                range   { -1 1 }
            }
            parm {
                name    "valv4_#"
                label   "Constant Value"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                disablewhen "{ enable# == 0 } { snippet# !~ .*\\\\bvalue\\\\b.* }"
                hidewhen "{ type# != vector4 }"
                range   { -1 1 }
            }
            parm {
                name    "valm3_#"
                label   "Constant Value"
                type    float
                size    9
                default { "1" "0" "0" "0" "1" "0" "0" "0" "1" }
                disablewhen "{ enable# == 0 } { snippet# !~ .*\\\\bvalue\\\\b.* }"
                hidewhen "{ type# != matrix3 }"
                range   { -1 1 }
            }
            parm {
                name    "valm4_#"
                label   "Constant Value"
                type    float
                size    16
                default { "1" "0" "0" "0" "0" "1" "0" "0" "0" "0" "1" "0" "0" "0" "0" "1" }
                disablewhen "{ enable# == 0 } { snippet# !~ .*\\\\bvalue\\\\b.* }"
                hidewhen "{ type# != matrix }"
                range   { -1 1 }
            }
            parm {
                name    "valc_#"
                label   "Constant Value"
                type    color
                size    3
                default { "1" "1" "1" }
                disablewhen "{ enable# == 0 } { snippet# !~ .*\\\\bvalue\\\\b.* }"
                hidewhen "{ type# != color }"
                range   { 0 1 }
            }
            parm {
                name    "vals_#"
                label   "Constant Value"
                type    string
                default { "" }
                disablewhen "{ enable# == 0 } { snippet# !~ .*\\\\bvalue\\\\b.* }"
                hidewhen "{ type# != string }"
            }
            parm {
                name    "snippet#"
                label   "VEXpression"
                type    string
                default { "self" }
                disablewhen "{ enable# == 0 }"
                menureplace {
                    [ "import vexpressionmenu" ]
                    [ "" ]
                    [ "return vexpressionmenu.buildSingleLineSnippetMenu('attribexpression/snippet')" ]
                    language python
                }
                parmtag { "script_action" "import vexpressionmenu\n\nnode = kwargs['node']\nparmname = kwargs['parmtuple'].name()\n\nvexpressionmenu.createSpareParmsFromChCalls(node, parmname)" }
                parmtag { "script_action_help" "Creates spare parameters for each unique call of ch() " }
                parmtag { "script_action_icon" "BUTTONS_create_parm_from_ch" }
            }
        }

    }

    group {
        name    "folder0_1"
        label   "Bindings"

        parm {
            name    "vex_cwdpath"
            label   "Evaluation Node Path"
            type    oppath
            default { "." }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "vex_matchattrib"
            label   "Attribute to Match"
            type    string
            default { "id" }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "includes"
            label   "Include Files"
            type    file
            default { "" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "filechooser_mode" "read" }
        }
        parm {
            name    "vex_updatenmls"
            label   "Update Normals If Displaced"
            type    toggle
            default { "off" }
            parmtag { "autoscope" "0000000000000000" }
        }
    }

    group {
        name    "folder0_2"
        label   "Generated Code"

        parm {
            name    "updatecode"
            label   "Update Code"
            type    button
            default { "0" }
            parmtag { "script_callback" "hou.phm().updateCode(hou.pwd())" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "generatedcode"
            label   "Generated Code"
            type    string
            default { "" }
            parmtag { "editor" "1" }
            parmtag { "editorlang" "vex" }
        }
    }

}
INDX              Contents       9j/   DialogScript   9  %f/uHouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for attribwrangle automatically generated

{
    name	attribwrangle
    script	attribwrangle
    label	"Attribute Wrangle"

    help {
	""
    }

    inputlabel	1	"Geometry to Process with Wrangle"
    inputlabel	2	"Ancillary Input, point(1, ...) to Access"
    inputlabel	3	"Ancillary Input, point(2, ...) to Access"
    inputlabel	4	"Ancillary Input, point(3, ...) to Access"

    group {
        name    "folder0"
        label   "Code"

        parm {
            name    "group"
            label   "Group"
            type    string
            default { "" }
            menutoggle {
                [ "opmenu -l -a attribvop1 bindgroup" ]
            }
            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" }
            bindselector uvselect "Modify Attribs"
                "Select the geometry to affect and press Enter to complete."
                0 1 0xffffffff 0 grouptype 0
        }
        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    "class"
            label   "Run Over"
            type    ordinal
            default { "point" }
            menu {
                "detail"    "Detail (only once)"
                "primitive" "Primitives"
                "point"     "Points"
                "vertex"    "Vertices"
                "number"    "Numbers"
            }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "vex_numcount"
            label   "Number Count"
            type    integer
            default { "10" }
            hidewhen "{ class != number }"
            range   { 0! 10000 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "vex_threadjobsize"
            label   "Thread Job Size"
            type    integer
            default { "1024" }
            hidewhen "{ class != number }"
            range   { 1! 10000 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "snippet"
            label   "VEXpression"
            type    string
            default { "" }
            menureplace {
                [ "import vexpressionmenu" ]
                [ "" ]
                [ "return vexpressionmenu.buildSnippetMenu('attribwrangle/snippet')" ]
                language python
            }
            range   { 0 1 }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "editor" "1" }
            parmtag { "editorlang" "VEX" }
            parmtag { "editorlines" "8-30" }
            parmtag { "script_action" "import vexpressionmenu\n\nnode = kwargs['node']\nparmname = 'snippet'\n\nvexpressionmenu.createSpareParmsFromChCalls(node, parmname)" }
            parmtag { "script_action_help" "Creates spare parameters for each unique call of ch() " }
            parmtag { "script_action_icon" "BUTTONS_create_parm_from_ch" }
        }
        parm {
            name    "exportlist"
            label   "Attributes to Create"
            type    string
            default { "*" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "vex_strict"
            label   "Enforce Prototypes"
            type    toggle
            default { "off" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "" }
        }
    }

    group {
        name    "folder0_1"
        label   "Bindings"

        parm {
            name    "autobind"
            label   "Autobind by Name"
            type    toggle
            default { "on" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        multiparm {
            name    "bindings"
            label    "Number of Bindings"
            default 0
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "multistartoffset" "1" }

            parm {
                name    "bindname#"
                label   "Attribute Name"
                type    string
                default { "" }
                range   { 0 1 }
            }
            parm {
                name    "bindparm#"
                label   "VEX Parameter"
                type    string
                default { "" }
                range   { 0 1 }
            }
        }

        parm {
            name    "groupautobind"
            label   "Autobind Groups by Name"
            type    toggle
            default { "on" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        multiparm {
            name    "groupbindings"
            label    "Group Bindings"
            default 0
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "multistartoffset" "1" }

            parm {
                name    "bindgroupname#"
                label   "Group Name"
                type    string
                default { "" }
                range   { 0 1 }
            }
            parm {
                name    "bindgroupparm#"
                label   "VEX Parameter"
                type    string
                default { "" }
                range   { 0 1 }
            }
        }

        parm {
            name    "vex_cwdpath"
            label   "Evaluation Node Path"
            type    oppath
            default { "." }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "vex_outputmask"
            label   "Export Parameters"
            type    string
            default { "*" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "vex_updatenmls"
            label   "Update Normals If Displaced"
            type    toggle
            default { "off" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "" }
        }
        parm {
            name    "vex_matchattrib"
            label   "Attribute to Match"
            type    string
            default { "id" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "vex_inplace"
            label   "Compute Results In Place"
            type    toggle
            default { "off" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "vex_selectiongroup"
            label   "Output Selection Group"
            type    string
            default { "" }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "vex_precision"
            label   "VEX Precision"
            type    string
            default { "auto" }
            menu {
                "auto"  "Auto"
                "32"    "32-bit"
                "64"    "64-bit"
            }
            parmtag { "autoscope" "0000000000000000" }
        }
    }

}
INDX              Contents       9j/   DialogScript   9  $fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for color automatically generated

{
    name	color
    script	color
    label	Color

    help {
	""
    }

    inputlabel	1	"Geometry to Color"
    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 {
            [ "return kwargs['node'].generateInputGroupMenu(0," ]
            [ "              (hou.geometryType.Points, hou.geometryType.Primitives," ]
            [ "               hou.geometryType.Vertices, hou.geometryType.Edges)," ]
            [ "              include_name_attrib=True, include_selection=False, parm=kwargs['parm']);" ]
            language python
        }
        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" }
        bindselector uveditselect "Assign Colors"
            "Select the geometry to apply colors to and press Enter to complete"
            0 1 all 0 grouptype 0
    }
    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" "0000" }
    }
    parm {
        name    "deleteallcolorattribs"
        label   "Delete All Existing Color Attributes"
        type    toggle
        joinnext
        default { "0" }
    }
    parm {
        name    "enable"
        label   "Set Color Attribute"
        type    toggle
        default { "1" }
    }
    parm {
        name    "class"
        label   "Class"
        type    integer
        default { "2" }
        menu {
            "detail"    "Detail"
            "primitive" "Primitive"
            "point"     "Point"
            "vertex"    "Vertex"
        }
        range   { 0 10 }
        export  all
        parmtag { "autoscope" "0000" }
        disablewhen "{ enable == 0 }"
    }
    parm {
        name    "colortype"
        label   "Color Type"
        type    integer
        default { "0" }
        menu {
            "0" "Constant"
            "1" "Bounding Box"
            "2" "Random"
            "3" "Ramp from Attribute"
            "4" "Random from Attribute"
        }
        range   { 0 10 }
        export  all
        parmtag { "autoscope" "0000" }
        disablewhen "{ enable == 0 }"
    }
    parm {
        name    "color"
        label   "Color"
        type    color
        size    3
        default { "1" "1" "1" }
        hidewhen "{ colortype != 0 }"
        range   { 0 1 }
        export  all
        parmtag { "autoscope" "0000" }
        disablewhen "{ enable == 0 }"
    }
    parm {
        name    "seed"
        label   "Seed"
        type    float
        default { "0" }
        hidewhen "{ colortype != 2 colortype != 4 }"
        range   { 0 10 }
        parmtag { "autoscope" "0000" }
        disablewhen "{ enable == 0 }"
    }
    parm {
        name    "rampattribute"
        label   "Attribute"
        type    string
        default { "" }
        hidewhen "{ colortype != 3 colortype != 4 }"
        menureplace {
            [ "types = (" ]
            [ "    hou.attribType.Global," ]
            [ "    hou.attribType.Prim," ]
            [ "    hou.attribType.Point," ]
            [ "    hou.attribType.Vertex" ]
            [ ")" ]
            [ "attrib_type = types[hou.ch(\"class\")]" ]
            [ "" ]
            [ "return hou.pwd().generateInputAttribMenu(0, attrib_type, array_type=False, pattern=\"* ^Cd\")" ]
            language python
        }
        range   { 0 1 }
        disablewhen "{ enable == 0 }"
    }
    parm {
        name    "ramprange"
        label   "Range"
        type    float
        size    2
        default { "0" "1" }
        hidewhen "{ colortype != 3 }"
        disablewhen "{ enable == 0 }"
        range   { 0 10 }
    }
    parm {
        name    "ramp"
        label   "Attribute Ramp"
        type    ramp_rgb
        default { "2" }
        hidewhen "{ colortype != 3 }"
        disablewhen "{ enable == 0 }"
        range   { 1! 10 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "parmvop" "1" }
        parmtag { "rampbasis_var" "vecramp_the_basis_strings" }
        parmtag { "rampbasisdefault" "linear" }
        parmtag { "rampcolordefault" "1pos ( 0 ) 1c ( 0 0 0 ) 1interp ( linear ) 2pos ( 1 ) 2c ( 1 1 1 ) 2interp ( linear )" }
        parmtag { "rampcolortype" "rgb" }
        parmtag { "rampkeys_var" "vecramp_the_key_positions" }
        parmtag { "rampshowcontrolsdefault" "0" }
        parmtag { "rampvalues_var" "vecramp_the_key_values" }
    }
}
INDX              Contents       9j/   DialogScript   9  /fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for curve::2.0 automatically generated

{
    name	curve::2.0
    script	bezier
    label	Curve

    help {
	""
    }

    inputlabel	1	"Input Curves"
    inputlabel	2	"Sub-Network Input #2"
    inputlabel	3	"Sub-Network Input #3"
    inputlabel	4	"Sub-Network Input #4"
    outputlabel	1	"Created Curves"

    parm {
        name    "group"
        label   "Group"
        type    string
        default { "" }
        menutoggle {
            [ "opmenu -l -a input_prims basegroup" ]
        }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_action" "import soputils\nkwargs['geometrytype'] = hou.geometryType.Primitives\nkwargs['inputindex'] = 0\nsoputils.selectGroupParm(kwargs)" }
        parmtag { "script_action_help" "Select geometry from an available viewport.\nShift-click to turn on Select Groups." }
        parmtag { "script_action_icon" "BUTTONS_reselect" }
    }
    parm {
        name    "sepparm3"
        label   "Separator"
        type    separator
        default { "" }
    }
    parm {
        name    "outputtype"
        label   "Primitive Type"
        type    ordinal
        default { "2" }
        menu {
            "polygon"   "Polygon"
            "nurbs"     "NURBS Curve"
            "bezier"    "Bezier Curve"
        }
        export  all
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "order"
        label   "Order"
        type    integer
        default { "4" }
        hidewhen "{ outputtype != bezier outputtype != nurbs }"
        range   { 2! 8 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "convertcurves"
        label   "Reinterpret Curves as Current Type and Order"
        type    toggle
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "sepparm"
        label   "Separator"
        type    separator
        default { "" }
    }
    parm {
        name    "mode"
        label   "Mode"
        type    iconstrip
        default { "1" }
        menureplace {
            "BUTTONS_curve_mode_select" "Select/Edit Mode"
            "BUTTONS_curve_mode_draw"   "Draw Mode"
            "BUTTONS_curve_mode_auto"   "Auto-Bezier Draw Mode"
            "SOP_twist"                 "Orient Mode"
        }
        export  all
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "interpmethod"
        label   "Auto-Point Interpolation Method"
        type    ordinal
        invisible
        default { "0" }
        hidewhen "{ outputtype != bezier }"
        menu {
            "smoothcurvature"   "Smooth Curvature"
        }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "enablebezierops"
        label   "Enable Bezier Operations"
        type    toggle
        invisible
        default { "1" }
        hidewhen "{ convertcurves == 1 }"
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "operations"
        label   "Operations"
        type    label
        joinnext
        default { "" }
    }
    parm {
        name    "delete"
        label   "Delete Selected Points"
        type    button
        nolabel
        joinnext
        default { "0" }
        export  all
        parmtag { "button_icon" "BUTTONS_curve_point_delete" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "fuse"
        label   "Join Selected Points"
        type    button
        nolabel
        joinnext
        default { "0" }
        export  all
        parmtag { "button_icon" "BUTTONS_curve_point_join" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "cut"
        label   "Split Curves at Selected Points"
        type    button
        nolabel
        joinnext
        default { "0" }
        export  all
        parmtag { "button_icon" "BUTTONS_curve_point_split" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "join"
        label   "Add Segment Between Selected Endpoints"
        type    button
        nolabel
        joinnext
        default { "0" }
        export  all
        parmtag { "button_icon" "BUTTONS_curve_segment_join" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "deleteseg"
        label   "Delete Segments Between Selected Points"
        type    button
        nolabel
        joinnext
        default { "0" }
        export  all
        parmtag { "button_icon" "BUTTONS_curve_segment_delete" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "makecorner"
        label   "Make Selected Points Corner"
        type    button
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ enablebezierops == 0 convertcurves == 0 }"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
        export  all
        parmtag { "button_icon" "BUTTONS_curve_type_corner" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "makesmooth"
        label   "Make Selected Points Smooth"
        type    button
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ enablebezierops == 0 convertcurves == 0 }"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
        export  all
        parmtag { "button_icon" "BUTTONS_curve_type_smooth" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "makebalanced"
        label   "Make Selected Points Balanced"
        type    button
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ enablebezierops == 0 convertcurves == 0 }"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
        export  all
        parmtag { "button_icon" "BUTTONS_curve_type_balanced" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "contract"
        label   "Retract Tangents at Selected Points"
        type    button
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ enablebezierops == 0 convertcurves == 0 }"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
        export  all
        parmtag { "button_icon" "BUTTONS_curve_tangents_retract" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "expand"
        label   "Expand Tangents at Selected Points"
        type    button
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ enablebezierops == 0 convertcurves == 0 }"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
        export  all
        parmtag { "button_icon" "BUTTONS_curve_tangents_expand" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "straightenseg"
        label   "Make Segments Between Selected Points Straight"
        type    button
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ enablebezierops == 0 convertcurves == 0 }"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 3 convertcurves == 1 }"
        export  all
        parmtag { "button_icon" "BUTTONS_curve_segment_makestraight" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "close"
        label   "Close Selected Curves"
        type    button
        nolabel
        joinnext
        default { "0" }
        export  all
        parmtag { "button_icon" "BUTTONS_curve_close" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "createroundedcorners"
        label   "Create Rounded Corners"
        type    button
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ enablebezierops == 0 convertcurves == 0 }"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
        export  all
        parmtag { "button_icon" "BUTTONS_curve_rounded" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "removeroundedcorners"
        label   "Remove Rounded Corners"
        type    button
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ enablebezierops == 0 convertcurves == 0 }"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
        export  all
        parmtag { "button_icon" "BUTTONS_curve_unrounded" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "makeauto"
        label   "Make Selected Points Auto"
        type    button
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ enablebezierops == 0 convertcurves == 0 }"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
        export  all
        parmtag { "button_icon" "BUTTONS_curve_pointmode_auto" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "makemanual"
        label   "Make Selected Points Manual"
        type    button
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ enablebezierops == 0 convertcurves == 0 }"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
        export  all
        parmtag { "button_icon" "BUTTONS_curve_pointmode_normal" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "reverse"
        label   "Reverse"
        type    button
        joinnext
        default { "0" }
        export  all
        parmtag { "button_icon" "" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "sepparm4"
        label   "Spacer"
        type    separator
        default { "" }
        parmtag { "sidefx::layout_height" "small" }
        parmtag { "sidefx::look" "blank" }
    }
    parm {
        name    "sepparm5"
        label   "Spacer"
        type    separator
        default { "" }
        parmtag { "sidefx::layout_height" "small" }
        parmtag { "sidefx::look" "blank" }
    }
    parm {
        name    "reset"
        label   "Reset Operations"
        type    button
        default { "0" }
        parmtag { "script_callback" "hou.phm().resetParms(kwargs)" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "snaponclose"
        label   "Snap Tangents when Fusing Ends in Draw Mode"
        type    toggle
        default { "1" }
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "maintainpoint"
        label   "Approximate Shape on Delete"
        type    toggle
        default { "0" }
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order != 4 convertcurves == 1 }"
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "approxendtangents"
        label   "Approximate End Tangents"
        type    toggle
        default { "0" }
        disablewhen "{ maintainpoint == 0 }"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order != 4 convertcurves == 1 }"
        parmtag { "script_callback_language" "python" }
    }
    groupsimple {
        name    "caching"
        label   "Caching"
        invisibletab
        grouptag { "sidefx::switcher" "caching" }

        parm {
            name    "stashgeo"
            label   "Stashed Geometry"
            type    data
            invisible
            default { "0" }
            parmtag { "script_callback_language" "python" }
            parmtag { "sidefx::save_value" "0" }
        }
        parm {
            name    "savedstashgeo"
            label   "Saved Stashed Geometry"
            type    data
            invisible
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "parmpoints"
            label   "Parm Points"
            type    data
            invisible
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "stashid"
            label   "Stash Id"
            type    string
            invisible
            default { "" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "ninputprimscached"
            label   "Num Input Prims Cached"
            type    integer
            invisible
            default { "0" }
            range   { 0 10 }
            parmtag { "script_callback_language" "python" }
        }
    }

    parm {
        name    "softtransform"
        label   "Enable Soft Transform"
        type    toggle
        nolabel
        joinnext
        default { "0" }
        export  all
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "softtransformrad"
        label   "Soft Transform Radius"
        type    float
        default { "0.5" }
        disablewhen "{ softtransform == 0 }"
        range   { 0! 10 }
        export  all
        parmtag { "script_callback_language" "python" }
    }
    groupcollapsible {
        name    "output"
        label   "Output"
        grouptag { "sidefx::switcher" "output" }

        parm {
            name    "outputcornerpts"
            label   "Output Corner Points"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "cornerptsgroup"
            label   "Corner Points Group"
            type    string
            default { "corner_points" }
            disablewhen "{ outputcornerpts == 0 }"
            hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "outputsmoothpts"
            label   "Output Smooth Points"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "smoothptsgroup"
            label   "Smooth Points Group"
            type    string
            default { "smooth_points" }
            disablewhen "{ outputsmoothpts == 0 }"
            hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "outputautopts"
            label   "Output Auto Points"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "autoptsgroup"
            label   "Auto Points Group"
            type    string
            default { "auto_points" }
            disablewhen "{ outputautopts == 0 }"
            hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "outputname"
            label   "Output Name"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "name"
            label   "Name"
            type    string
            default { "$OS" }
            disablewhen "{ outputname == 0 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "nameattrib"
            label   "Name Attrib"
            type    string
            invisible
            default { "name" }
            disablewhen "{ outputname == 0 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "outputxaxis"
            label   "Output X Axis"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "xaxisname"
            label   "X Axis"
            type    string
            default { "out" }
            disablewhen "{ outputxaxis == 0 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "outputyaxis"
            label   "Output Y Axis"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "yaxisname"
            label   "Y Axis"
            type    string
            default { "up" }
            disablewhen "{ outputyaxis == 0 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "outputzaxis"
            label   "Output Z Axis"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "zaxisname"
            label   "Z Axis"
            type    string
            default { "tangent" }
            disablewhen "{ outputzaxis == 0 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "outputorient"
            label   "Output Orient Attribute"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "orientname"
            label   "Orient"
            type    string
            default { "orient" }
            disablewhen "{ outputorient == 0 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "tangenttype"
            label   "Tangent Type"
            type    ordinal
            default { "avgdir" }
            hidewhen "{ outputorient == 0 outputxaxis == 0 outputyaxis == 0 outputzaxis == 0 }"
            menu {
                "avgdir"    "Average of Edge Directions"
                "diff"      "Central Difference"
                "prev"      "Previous Edge"
                "next"      "Next Edge"
                "none"      "Z Axis (Ignore Curve)"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "aligntangent"
            label   "Align with Curve Tangent"
            type    toggle
            default { "1" }
            hidewhen "{ outputorient == 0 outputxaxis == 0 outputyaxis == 0 outputzaxis == 0 }"
            parmtag { "script_callback_language" "python" }
        }
        multiparm {
            name    "targetorients"
            label    "Target Orientations"
            hidewhen "{ outputorient == 0 outputxaxis == 0 outputyaxis == 0 outputzaxis == 0 }"
            parmtag { "multistartoffset" "0" }

            parm {
                name    "enabletargetpt#"
                label   "Enable Target Orientation"
                type    toggle
                nolabel
                joinnext
                default { "1" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "targetptnum#"
                label   "Point"
                type    integer
                default { "0" }
                disablewhen "{ enabletargetpt# == 0 }"
                range   { 0! 10 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "targetup#"
                label   "Up"
                type    vector
                size    3
                default { "0" "1" "0" }
                disablewhen "{ enabletargetpt# == 0 }"
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "targettangent#"
                label   "Tangent"
                type    vector
                size    3
                default { "0" "0" "1" }
                disablewhen "{ enabletargetpt# == 0 }"
                hidewhen "{ aligntangent == 1 }"
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
        }

    }

    groupcollapsible {
        name    "curoperation"
        label   "Current Operation"
        grouptag { "sidefx::switcher" "curoperation" }

        parm {
            name    "optype"
            label   "Operation"
            type    ordinal
            invisible
            default { "1" }
            menu {
                "appendpoint"           "Append Point"
                "balance"               "Balance"
                "close"                 "Close"
                "contract"              "Contract"
                "corner"                "Corner"
                "cut"                   "Cut"
                "delete"                "Delete"
                "expand"                "Expand"
                "fuse"                  "Fuse"
                "insert"                "Insert"
                "join"                  "Join"
                "prependpoint"          "Prepend Point"
                "pull"                  "Pull"
                "segmentcontract"       "Segment Contract"
                "segmentdelete"         "Segment Delete"
                "smooth"                "Smooth"
                "transform"             "Point Transform"
                "reverse"               "Reverse"
                "bezierhandlemove"      "Bezier Handle Move"
                "bakeroundcorners"      "Bake Round Corners"
                "roundcornersradius"    "Round Corners Radius"
                "roundcornerssplit"     "Round Corners Split"
                "roundcornersfuse"      "Round Corners Fuse"
                "evenlyspace"           "Evenly Space"
                "straightenselection"   "Straighten Selection"
                "spaceoncircle"         "Space on Circle"
                "flatten"               "Flatten"
                "relaxselection"        "Relax Selection"
                "nop"                   "No OP"
                "auto"                  "Auto"
                "manual"                "Manual"
                "convert"               "Convert"
                "paste"                 "Paste"
            }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "activepoints"
            label   "Active Points"
            type    string
            default { "" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_action_help" "Select geometry from an available viewport.\nShift-click to turn on Select Groups." }
            parmtag { "script_action_icon" "BUTTONS_reselect" }
        }
        parm {
            name    "translate"
            label   "Translate"
            type    vector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "rotate"
            label   "Rotate"
            type    vector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "scale"
            label   "Scale"
            type    vector
            size    3
            default { "1" "1" "1" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "addpts"
            label   "Operation Data"
            type    string
            invisible
            default { "" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "activeprim"
            label   "Active Prim"
            type    integer
            invisible
            default { "0" }
            range   { 0 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "cornerpts"
            label   "Corner Points"
            type    string
            default { "" }
            hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
            menutoggle {
                [ "opmenu -l -a groupcopy1 pointgroups" ]
            }
            parmtag { "script_action" "import soputils\nkwargs['geometrytype'] = hou.geometryType.Points\nkwargs['nodepath'] = '.'\nsoputils.selectGroupParm(kwargs)" }
            parmtag { "script_action_help" "Select geometry from an available viewport. Shift-click to turn on Select Groups." }
            parmtag { "script_action_icon" "BUTTONS_reselect" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "smoothpts"
            label   "Smooth Points"
            type    string
            default { "*" }
            hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
            menutoggle {
                [ "opmenu -l -a groupcopy1 pointgroups" ]
            }
            parmtag { "script_action" "import soputils\nkwargs['geometrytype'] = hou.geometryType.Points\nkwargs['nodepath'] = '.'\nsoputils.selectGroupParm(kwargs)" }
            parmtag { "script_action_help" "Select geometry from an available viewport. Shift-click to turn on Select Groups." }
            parmtag { "script_action_icon" "BUTTONS_reselect" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "autopts"
            label   "Auto Points"
            type    string
            default { "" }
            hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
            menutoggle {
                [ "opmenu -l -a groupcopy1 pointgroups" ]
            }
            parmtag { "script_action" "import soputils\nkwargs['geometrytype'] = hou.geometryType.Points\nkwargs['nodepath'] = '.'\nsoputils.selectGroupParm(kwargs)" }
            parmtag { "script_action_help" "Select geometry from an available viewport. Shift-click to turn on Select Groups." }
            parmtag { "script_action_icon" "BUTTONS_reselect" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "pivottransformfolder"
        label   "Pivot Transform"
        grouptag { "sidefx::switcher" "pivottransformfolder" }

        parm {
            name    "pivottranslate"
            label   "Pivot Translate"
            type    vector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "pivotrotate"
            label   "Pivot Rotate"
            type    vector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "pivotfixed"
            label   "Fixed Pivot"
            type    toggle
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "roundedcornersfolder"
        label   "Rounded Corners"
        hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
        grouptag { "sidefx::switcher" "roundedcornersfolder" }

        parm {
            name    "viewroundcorners"
            label   "View Rounded Corners"
            type    toggle
            default { "1" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "roundcornerpts"
            label   "Round Corner Points"
            type    string
            default { "" }
            disablewhen "{ isparm(roundcornerpts) == 1 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "roundcornerradius"
            label   "Round Corner Radius"
            type    float
            default { "0" }
            disablewhen "{ mode != 0 } { enablebezierops == 0 convertcurves == 0 }"
            hidewhen "{ outputtype != bezier convertcurves == 1 } { order < 4 convertcurves == 1 }"
            range   { 0! 10 }
            export  all
            parmtag { "script_callback" "hou.phm().radiusCB(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "bakeroundcorners"
            label   "Bake Selected Rounded Corners"
            type    button
            default { "0" }
            disablewhen "{ enablebezierops == 0 convertcurves == 0 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "showroundcornerwidget"
            label   "Show Rounded Corner Widget"
            type    toggle
            default { "1" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "showroundcornerlabels"
            label   "Show Rounded Corner Labels"
            type    toggle
            default { "1" }
            disablewhen "{ showroundcornerwidget == 0 }"
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "editedgeops"
        label   "Edit Edge Operations"
        invisibletab
        grouptag { "sidefx::switcher" "editedgeops" }

        parm {
            name    "planeorig"
            label   "Plane Origin"
            type    vector
            invisible
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "planenml"
            label   "Plane Normal"
            type    vector
            invisible
            size    3
            default { "0" "1" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "constrainstraighten"
            label   "Constrain Straighten to Plane"
            type    toggle
            invisible
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "handleparmsfolder"
        label   "Handle Parms"
        invisibletab
        hidewhen "{ outputtype != bezier }"
        grouptag { "sidefx::switcher" "handleparmsfolder" }

        parm {
            name    "handlepts"
            label   "pts"
            type    intvector
            invisible
            size    3
            default { "-1" "-1" "-1" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "handlep0pos"
            label   "P0 Pos"
            type    vector
            invisible
            size    3
            default { "-1" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "handlep1pos"
            label   "P1 Pos"
            type    vector
            invisible
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "handlep2pos"
            label   "P2 Pos"
            type    vector
            invisible
            size    3
            default { "1" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
    }

}
INDX              Contents       9j/   DialogScript   9  $&fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for dopimportfield automatically generated

{
    name	dopimportfield
    script	dopimportfield
    label	"Dop Import Fields"

    help {
	""
    }

    inputlabel	1	"Sub-Network Input #1"
    inputlabel	2	"Sub-Network Input #2"
    inputlabel	3	"Sub-Network Input #3"
    inputlabel	4	"Sub-Network Input #4"
    outputlabel	1	"Sub-Network Output #1"

    parm {
        name    "doppath"
        label   "DOP Network"
        type    oppath
        default { "" }
        range   { 0 1 }
        parmtag { "opfilter" "!!DOP!!" }
        parmtag { "oprelative" "." }
    }
    parm {
        name    "dopnode"
        label   "DOP Node"
        type    oppath
        default { "" }
        range   { 0 1 }
        parmtag { "oprelative" "." }
    }
    parm {
        name    "defobj"
        label   "Default Object"
        type    string
        default { "" }
        disablewhen "{ dopnode != \"\" }"
        range   { 0 1 }
    }
    parm {
        name    "doposxform"
        label   "Transform Geometry With Position Data"
        type    toggle
        default { "on" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "doxform"
        label   "Transform Geometry With Geometry Data"
        type    toggle
        default { "on" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "computeminmax"
        label   "Compute Min/Max Values"
        type    toggle
        default { "0" }
        range   { 0 1 }
    }
    parm {
        name    "importsimsettings"
        label   "Import Simulation Settings"
        type    toggle
        default { "1" }
        range   { 0 1 }
    }
    parm {
        name    "presets"
        label   "Presets"
        type    string
        default { "choose" }
        menu {
            "smoke"         "Smoke"
            "liquid"        "Liquid"
            "dsdfire"       "Fire (DSD)"
            "pyro"          "Pyro"
            "flip"          "FLIP Fluid"
            "upressmoke"    "Upres Smoke"
            "upresliquid"   "Upres Liquid"
            "upresdsdfire"  "Upres Fire (DSD)"
            "uprespyro"     "Upres Pyro"
            "particles"     "Particles"
            "choose"        "Choose"
        }
        range   { 0 1 }
        parmtag { "script_callback" "hou.pwd().hdaModule().invokePresetMenu(kwargs)" }
        parmtag { "script_callback_language" "python" }
    }
    group {
        name    "folder0"
        label   "Import"

        multiparm {
            name    "fields"
            label    "Fields to Import"

            parm {
                name    "enable#"
                label   "Import"
                type    toggle
                joinnext
                default { "1" }
                range   { 0 1 }
            }
            parm {
                name    "visible#"
                label   "Visualization"
                type    ordinal
                default { "smoke" }
                menu {
                    "smoke"         "Smoke"
                    "rainbow"       "Rainbow"
                    "iso"           "Isosurface"
                    "invisible"     "Invisible"
                    "heightfield"   "Height Field"
                    "nochange"      "No Change"
                }
                range   { 0 1 }
            }
            parm {
                name    "objname#"
                label   "Object"
                type    string
                joinnext
                default { "" }
                range   { 0 1 }
            }
            parm {
                name    "fieldname#"
                label   "Field"
                type    string
                default { "" }
                range   { 0 1 }
            }
        }

    }

    group {
        name    "folder0_1"
        label   "Compression"

        parm {
            name    "delete_attributes"
            label   "Attributes to Delete"
            type    string
            default { "" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        multiparm {
            name    "attribute_numcasts"
            label    "Attributes to Cast"
            default 0
            parmtag { "autoscope" "0000000000000000" }

            parm {
                name    "attribute_class#"
                label   "Class"
                type    string
                default { "point" }
                menu {
                    "detail"    "Detail"
                    "primitive" "Primitive"
                    "point"     "Point"
                    "vertex"    "Vertex"
                }
                range   { 0 1 }
            }
            parm {
                name    "attribute_attribs#"
                label   "Attributes"
                type    string
                default { "" }
                range   { 0 1 }
            }
            parm {
                name    "attribute_precision#"
                label   "Precision"
                type    string
                default { "fpreal32" }
                menu {
                    "uint8"     "8-bit unsigned integer"
                    "int8"      "8-bit signed integer"
                    "int16"     "16-bit integer"
                    "int32"     "32-bit integer"
                    "int64"     "64-bit integer"
                    "fpreal16"  "16-bit float"
                    "fpreal32"  "32-bit float"
                    "fpreal64"  "64-bit float"
                }
                range   { 0 1 }
            }
        }

        multiparm {
            name    "compression"
            label    "Fields to Compress"

            parm {
                name    "compgroup#"
                label   "Source Group"
                type    string
                default { "" }
                menutoggle {
                    [ "opmenu -l -a placeholder_for_menus group" ]
                }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "constanttol#"
                label   "Constant Tol"
                type    float
                default { "0" }
                range   { 0! 1 }
            }
            parm {
                name    "quantizetol#"
                label   "Quantization Tol"
                type    float
                default { "0" }
                range   { 0! 1 }
            }
            parm {
                name    "dither#"
                label   "Dithering"
                type    ordinal
                default { "ordered" }
                menu {
                    "none"      "None"
                    "ordered"   "Ordered"
                }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "usefp16_#"
                label   "Use 16bit Float"
                type    toggle
                default { "0" }
                range   { 0 1 }
            }
            parm {
                name    "maskgroup#"
                label   "Mask Group"
                type    string
                default { "" }
                menutoggle {
                    [ "opmenu -l -a placeholder_for_menus maskgrp" ]
                }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "sop_input" "1" }
            }
            parm {
                name    "maskexpand#"
                label   "Mask Expansion"
                type    integer
                default { "1" }
                range   { 0! 10 }
            }
            parm {
                name    "domaskmin#"
                label   "Min Mask"
                type    toggle
                nolabel
                joinnext
                default { "off" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "maskmin#"
                label   "Mask Minimum"
                type    float
                default { "0" }
                disablewhen "{ domaskmin# == 0 }"
                range   { -1 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "domaskmax#"
                label   "Min Mask"
                type    toggle
                nolabel
                joinnext
                default { "off" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "maskmax#"
                label   "Mask Maximum"
                type    float
                default { "1" }
                disablewhen "{ domaskmax# == 0 }"
                range   { -1 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "invertmask#"
                label   "Invert Mask"
                type    toggle
                default { "off" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
        }

    }

}
INDX              Contents       9j/   DialogScript   9  fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for feathernormalize automatically generated

{
    name	feathernormalize
    script	feathernormalize
    label	"Feather Normalize"

    help {
	""
    }

    inputlabel	1	Feathers
    inputlabel	2	Skin
    inputlabel	3	VDB
    inputlabel	4	"Sub-Network Input #4"
    outputlabel	1	Feathers
    outputlabel	2	Skin
    outputlabel	3	VDB

    parm {
        name    "movetoorigin"
        label   "Move To Origin"
        type    toggle
        default { "1" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "normalizelength"
        label   "Normalize Length"
        type    toggle
        default { "1" }
        range   { 0 10 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "flatten"
        label   "Flatten"
        type    toggle
        default { "off" }
        parmtag { "script_callback_language" "python" }
    }
}
INDX              Contents       9j/   DialogScript   9  fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for featherresample automatically generated

{
    name	featherresample
    script	featherresample
    label	"Feather Resample"

    help {
	""
    }

    inputlabel	1	Feathers
    inputlabel	2	Skin
    inputlabel	3	VDB
    outputlabel	1	Feathers
    outputlabel	2	Skin
    outputlabel	3	VDB

    parm {
        name    "group"
        label   "Group"
        type    string
        default { "" }
        parmtag { "script_callback_language" "python" }
    }
    groupsimple {
        name    "folder_shaftbase"
        label   "Shaft Base"

        parm {
            name    "shaftbase_resample"
            label   "Resample Shaft Base"
            type    toggle
            default { "off" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaftbase_mode"
            label   "Mode"
            type    ordinal
            default { "0" }
            disablewhen "{ shaftbase_resample == 0 }"
            menu {
                "count"     "Count"
                "length"    "Length"
            }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaftbase_length"
            label   "Maximum Length"
            type    float
            default { "0.1" }
            disablewhen "{ shaftbase_resample == 0 }"
            hidewhen "{ shaftbase_mode != length }"
            range   { 0! 5 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "m1" }
        }
        parm {
            name    "shaftbase_maxsegs"
            label   "Segments"
            type    integer
            default { "1" }
            disablewhen "{ shaftbase_resample == 0 }"
            hidewhen "{ shaftbase_mode != count }"
            range   { 1! 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaftbase_maxsegsuseattrib"
            label   "Use Segments Attribute"
            type    toggle
            nolabel
            joinnext
            default { "off" }
            disablewhen "{ shaftbase_resample == 0 }"
            hidewhen "{ shaftbase_mode != count }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaftbase_maxsegsattrib"
            label   "Segments Attribute"
            type    string
            default { "basesegments" }
            disablewhen "{ shaftbase_resample == 0 } { shaftbase_maxsegsuseattrib == 0 }"
            hidewhen "{ shaftbase_mode != count }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaftbase_lengthuseattrib"
            label   "Use Length Attribute"
            type    toggle
            nolabel
            joinnext
            default { "off" }
            disablewhen "{ shaftbase_resample == 0 }"
            hidewhen "{ shaftbase_mode != length }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaftbase_lengthattrib"
            label   "Length Attribute"
            type    string
            default { "baselength" }
            disablewhen "{ shaftbase_resample == 0 } { shaftbase_lengthuseattrib == 0 }"
            hidewhen "{ shaftbase_mode != length }"
            parmtag { "script_callback_language" "python" }
        }
    }

    groupsimple {
        name    "folder_barbedshaft"
        label   "Shaft"

        parm {
            name    "shaft_resample"
            label   "Resample Shaft"
            type    toggle
            default { "off" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaft_mode"
            label   "Mode"
            type    ordinal
            default { "0" }
            disablewhen "{ shaft_resample == 0 }"
            menu {
                "count"     "Count"
                "length"    "Length"
            }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaft_length"
            label   "Maximum Length"
            type    float
            default { "0.1" }
            disablewhen "{ shaft_resample == 0 }"
            hidewhen "{ shaft_mode != length }"
            range   { 0! 5 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "m1" }
        }
        parm {
            name    "shaft_maxsegs"
            label   "Segments"
            type    integer
            default { "50" }
            disablewhen "{ shaft_resample == 0 }"
            hidewhen "{ shaft_mode != count }"
            range   { 1! 1000 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaft_maxsegsuseattrib"
            label   "Use Segments Attribute"
            type    toggle
            nolabel
            joinnext
            default { "off" }
            disablewhen "{ shaft_resample == 0 }"
            hidewhen "{ shaft_mode != count }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaft_maxsegsattrib"
            label   "Segments Attribute"
            type    string
            default { "segments" }
            disablewhen "{ shaft_resample == 0 } { shaft_maxsegsuseattrib == 0 }"
            hidewhen "{ shaft_mode != count }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaft_lengthuseattrib"
            label   "Use Length Attribute"
            type    toggle
            nolabel
            joinnext
            default { "off" }
            disablewhen "{ shaft_resample == 0 }"
            hidewhen "{ shaft_mode != length }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaft_lengthattrib"
            label   "Length Attribute"
            type    string
            default { "length" }
            disablewhen "{ shaft_resample == 0 } { shaft_lengthuseattrib == 0 }"
            hidewhen "{ shaft_mode != length }"
            parmtag { "script_callback_language" "python" }
        }
    }

    groupsimple {
        name    "folder_barbs"
        label   "Barbs"

        parm {
            name    "resamplebarbs"
            label   "Resample Barbs"
            type    toggle
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "barbsegs"
            label   "Barb Segments"
            type    integer
            default { "3" }
            disablewhen "{ resamplebarbs == 0 }"
            range   { 1! 9 }
            parmtag { "script_callback_language" "python" }
        }
    }

    parm {
        name    "resampleshaft"
        label   "resampleshaft"
        type    toggle
        invisible
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "shaftsegs"
        label   "shaftsegs"
        type    integer
        invisible
        default { "0" }
        range   { 0 10 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "shaftbarbsegs"
        label   "shaftbarbsegs"
        type    integer
        invisible
        default { "0" }
        range   { 0 10 }
        parmtag { "script_callback_language" "python" }
    }
}
INDX              Contents       9j/   DialogScript   9  SfU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for feathershapeorg automatically generated

{
    name	feathershapeorg
    script	feathershapeorg
    label	"Feather Shape Organize"

    help {
	""
    }

    inputlabel	1	"Shape Curves"
    inputlabel	2	"Profile Curves"
    inputlabel	3	"Label Points"
    inputlabel	4	"Shape Curves"
    outputlabel	1	"Shape Curves"

}
INDX              Contents       9j/   DialogScript   9   fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for feathertemplatefromshape automatically generated

{
    name	feathertemplatefromshape
    script	feathertemplatefromshape
    label	"Feather Template from Shape"

    help {
	""
    }

    inputlabel	1	"Shape Curves"
    outputlabel	1	Feathers

    groupsimple {
        name    "folder_normalize"
        label   "Normalize"

        parm {
            name    "normalize"
            label   "Normalize"
            type    toggle
            default { "off" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "movetoorigin"
            label   "Move to Origin"
            type    toggle
            default { "0" }
            disablewhen "{ normalize == 0 }"
            parmtag { "script_callback_language" "python" }
        }
    }

    groupsimple {
        name    "folder_shaft"
        label   "Shaft"

        parm {
            name    "rachiswidthroot"
            label   "Width Root"
            type    log
            default { "0.01" }
            range   { 0! 0.1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "rachiswidthtip"
            label   "Width Tip"
            type    log
            default { "0.002" }
            range   { 0! 0.1 }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupsimple {
        name    "folder_barbs"
        label   "Barbs"

        parm {
            name    "firstprofilefromshape"
            label   "First Profile From Shape"
            type    toggle
            default { "on" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shapebarbstart"
            label   "Barb Start on Shape"
            type    float
            default { "0.1" }
            range   { 0! 1! }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupsimple {
        name    "folder_resolution"
        label   "Resolution"

        parm {
            name    "shaftdensity"
            label   "Shaft Density"
            type    log
            default { "50" }
            range   { 0 1000 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "barbdensity"
            label   "Barb Density"
            type    log
            default { "500" }
            range   { 0 1000 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "barbsegs"
            label   "Barb Segments"
            type    integer
            default { "3" }
            range   { 1 9 }
            parmtag { "script_callback_language" "python" }
        }
    }

    parm {
        name    "addbarbuv"
        label   "Add Barb UV Attributes"
        type    toggle
        default { "1" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "setname"
        label   "Set Name"
        type    toggle
        nolabel
        joinnext
        default { "on" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "name"
        label   "Name"
        type    string
        default { "$OS" }
        disablewhen "{ setname == 0 }"
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "setside"
        label   "Set Side"
        type    toggle
        nolabel
        joinnext
        default { "off" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "side"
        label   "Side"
        type    string
        default { "c" }
        disablewhen "{ setside == 0 }"
        menureplace {
            "c" "Center"
            "l" "Left"
            "r" "Right"
        }
        parmtag { "script_callback_language" "python" }
    }
}
INDX              Contents       9j/   DialogScript   9  7fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for feathertemplateinterpolate automatically generated

{
    name	feathertemplateinterpolate
    script	featherspecblend
    label	"Feather Template Interpolate"

    help {
	""
    }

    inputlabel	1	Feathers
    inputlabel	2	Skin
    inputlabel	3	VDB
    inputlabel	4	"Feather Templates"
    outputlabel	1	Feathers
    outputlabel	2	Skin
    outputlabel	3	VDB

    parm {
        name    "group"
        label   "Group"
        type    string
        default { "" }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_action" "import soputils\nkwargs['geometrytype'] = (hou.geometryType.Primitives,)\nkwargs['inputindex'] = 0\nsoputils.selectGroupParm(kwargs)" }
        parmtag { "script_action_help" "Select geometry from an available viewport.\nShift-click to turn on Select Groups." }
        parmtag { "script_action_icon" "BUTTONS_reselect" }
    }
    parm {
        name    "blend"
        label   "Blend"
        type    float
        joinnext
        default { "1" }
        range   { 0! 1! }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "blendoverride"
        label   "Blend Override"
        type    ordinal
        nolabel
        joinnext
        default { "0" }
        menu {
            "none"          "No Override"
            "curveattrib"   "Guide Attribute"
            "skinattrib"    "Skin Attribute"
            "texture"       "Texture"
            "textureprim"   "Texture Primitive"
        }
        parmtag { "parmoverride_mainparm" "blend" }
    }
    parm {
        name    "blendoptions"
        label   "Blend Options"
        type    buttonstrip
        nolabel
        default { "0" }
        menutoggle {
            "fit"   "Fit"
            "ramp"  "Ramp"
        }
        parmtag { "parmoverride_mainparm" "blend" }
    }
    parm {
        name    "blendinrange"
        label   "In Range"
        type    float
        joinnext
        size    2
        default { "0" "1" }
        disablewhen "{ blendoverride == none }"
        hidewhen "{ blendoptions != 1 blendoptions != 3 }"
        range   { 0 10 }
        parmtag { "parmoverride_mainparm" "blend" }
    }
    parm {
        name    "blendoutrange"
        label   "Out Range"
        type    float
        size    2
        default { "0" "1" }
        disablewhen "{ blendoverride == none }"
        hidewhen "{ blendoptions != 1 blendoptions != 3 }"
        range   { 0 10 }
        parmtag { "parmoverride_mainparm" "blend" }
    }
    parm {
        name    "blendremapramp"
        label   "Blend Remap Ramp"
        type    ramp_flt
        default { "2" }
        hidewhen "{ blendoptions != 2 blendoptions != 3 }"
        range   { 1! 10 }
        parmtag { "parmoverride_mainparm" "blend" }
    }
    parm {
        name    "blendcurveattrib"
        label   "Blend Attrib"
        type    string
        default { "blend" }
        hidewhen "{ blendoverride != curveattrib }"
        menureplace {
            [ "import furtoolutils" ]
            [ "" ]
            [ "try:" ]
            [ "    return furtoolutils.buildSkinPaintAttribMenu(" ]
            [ "            kwargs['node'], skininput=0, skinparmname=None," ]
            [ "            attribSize=1)" ]
            [ "except:" ]
            [ "    return []" ]
            language python
        }
        parmtag { "parmoverride_mainparm" "blend" }
    }
    parm {
        name    "blendattrib"
        label   "Blend Attrib"
        type    string
        default { "blend" }
        hidewhen "{ blendoverride != skinattrib }"
        menureplace {
            [ "import furtoolutils" ]
            [ "" ]
            [ "try:" ]
            [ "    return furtoolutils.buildSkinPaintAttribMenu(" ]
            [ "            kwargs['node'], skininput=1, skinparmname=None," ]
            [ "            attribSize=1)" ]
            [ "except:" ]
            [ "    return []" ]
            language python
        }
        parmtag { "parmoverride_mainparm" "blend" }
        parmtag { "script_action" "import furtoolutils\n\nfurtoolutils.paintSkinAttrib(\n    kwargs,\n    kwargs['parmtuple'][0].eval(),\n    1.0, 1,\n    skinparmname=None)" }
        parmtag { "script_action_help" "Paint Blend Attrib" }
        parmtag { "script_action_icon" "SOP_paint" }
    }
    parm {
        name    "blendtexture"
        label   "Blend Texture"
        type    image
        default { "" }
        hidewhen "{ blendoverride != texture }"
        parmtag { "parmoverride_mainparm" "blend" }
    }
    parm {
        name    "blendtextureprim"
        label   "Blend Texture"
        type    string
        joinnext
        default { "mask" }
        hidewhen "{ blendoverride != textureprim }"
        menureplace {
            [ "import terraintoolutils" ]
            [ "" ]
            [ "return terraintoolutils.buildNameMenu(kwargs['node'], input_num=2)" ]
            language python
        }
        parmtag { "parmoverride_mainparm" "blend" }
        parmtag { "script_action" "import furtoolutils\n\nfurtoolutils.paintTextureMask(\n    kwargs,\n    kwargs['parmtuple'][0].eval(),\n    1.0, skininput=1,\n    skinparmname=None,\n    textureinput=2)" }
        parmtag { "script_action_help" "Paint Blend Attrib Texture" }
        parmtag { "script_action_icon" "SOP_paint" }
    }
    parm {
        name    "blenduvmode"
        label   "UV Mode"
        type    ordinal
        nolabel
        default { "0" }
        hidewhen "{ blendoverride != textureprim }"
        menu {
            "skinuv"    "Skin UV"
            "curveuv"   "Curve UV"
            "featheruv" "Feather UV"
        }
        parmtag { "parmoverride_mainparm" "blend" }
    }
    groupsimple {
        name    "folder_templates"
        label   "Templates"
        grouptag { "group_type" "simple" }

        parm {
            name    "lookupmethod"
            label   "Lookup Method"
            type    ordinal
            default { "weightarrays" }
            menu {
                "group"         "Group"
                "matchbyattrib" "Match by Name Attribute"
                "weightarrays"  "Weight Arrays"
            }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "specgroup"
            label   "Template Group"
            type    string
            default { "" }
            hidewhen "{ lookupmethod != group }"
            menureplace {
                [ "node = kwargs['node']" ]
                [ "" ]
                [ "specnode = node.inputs()[2]" ]
                [ "if specnode is None:" ]
                [ "    return []" ]
                [ "" ]
                [ "name_attrib = specnode.geometry().findPrimAttrib('name')" ]
                [ "if name_attrib is None:" ]
                [ "    return []" ]
                [ "" ]
                [ "items = []" ]
                [ "for name in name_attrib.strings():" ]
                [ "    items.append(\"@name=={}\".format(name))" ]
                [ "    items.append(name)" ]
                [ "" ]
                [ "return items" ]
                language python
            }
            parmtag { "script_action" "import soputils\nnode = kwargs['node']\nkwargs['geometrytype'] = hou.geometryType.Primitives\n\nkwargs['inputindex'] = 2\nsoputils.selectGroupParm(kwargs)\nnode.parm(\"group\").pressButton()" }
            parmtag { "script_action_icon" "BUTTONS_reselect" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "matchattrib"
            label   "Name Attribute"
            type    string
            default { "templatename" }
            hidewhen "{ lookupmethod != matchbyattrib }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "namesattrib"
            label   "Names Attribute"
            type    string
            default { "templatenames" }
            hidewhen "{ lookupmethod != weightarrays }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "weightsattrib"
            label   "Weights Attribute"
            type    string
            default { "templateweights" }
            hidewhen "{ lookupmethod != weightarrays }"
            parmtag { "script_callback_language" "python" }
        }
    }

    groupsimple {
        name    "folder_shaft"
        label   "Shaft"
        grouptag { "group_type" "simple" }

        parm {
            name    "resample"
            label   "Resample Shaft"
            type    toggle
            default { "1" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "redistribute"
            label   "Match Template Point Distribution"
            type    toggle
            default { "1" }
            hidewhen "{ resample != 0 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "resmode"
            label   "Resolution Mode"
            type    ordinal
            default { "template" }
            hidewhen "{ resample == 0 }"
            menu {
                "constant"  "Constant"
                "adaptive"  "Adaptive"
                "template"  "Match Template"
            }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaftbasesegs"
            label   "Shaft Base Segments"
            type    integer
            default { "1" }
            hidewhen "{ resample != 0 resmode != constant }"
            range   { 1! 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "useshaftbasesegsattrib"
            label   "Use Shaft Segments Attribute"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaftbasesegsattrib"
            label   "Shaft Segments Attribute"
            type    string
            default { "shaft_base_segs" }
            disablewhen "{ useshaftbasesegsattrib == 0 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaftbarbsegs"
            label   "Shaft Barb Segments"
            type    integer
            default { "8" }
            hidewhen "{ resample == 0 } { resmode != constant }"
            range   { 1! 50 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "seglength"
            label   "Segment Length"
            type    float
            default { "0.1" }
            hidewhen "{ resample == 0 } { resmode != adaptive }"
            range   { 0 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaftminsegs"
            label   "Min Shaft Segments"
            type    integer
            default { "1" }
            hidewhen "{ resample == 0 } { resmode != adaptive }"
            range   { 1! 50 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shaftminbarbsegs"
            label   "Min Barb Segments"
            type    integer
            default { "3" }
            hidewhen "{ resample == 0 } { resmode != adaptive }"
            range   { 1! 50 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "resmult"
            label   "Resolution Multiplier"
            type    float
            default { "1" }
            hidewhen "{ resample == 0 } { resmode != template }"
            range   { 0! 1 }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupsimple {
        name    "folder_barbs"
        label   "Barbs"
        grouptag { "group_type" "simple" }

        parm {
            name    "barbsegmode"
            label   "Barb Segment Mode"
            type    ordinal
            default { "template" }
            menu {
                "constant"  "Constant"
                "template"  "Match Template"
            }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "barbsegs"
            label   "Barb Segments"
            type    integer
            default { "0" }
            hidewhen "{ barbsegmode != constant }"
            range   { 1! 9 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "barbmirror"
            label   "Mirror Barbs for Opposing Side"
            type    toggle
            default { [ "on" hscript-expr ] }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupsimple {
        name    "folder_attribs"
        label   "Attributes"
        grouptag { "group_type" "simple" }

        parm {
            name    "interpolateuv"
            label   "Interpolate UVs"
            type    toggle
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "primattribs"
            label   "Primitive Attributes"
            type    string
            default { "" }
            menutoggle {
                [ "opmenu -l -a attribinterpolate_prim primattribs" ]
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "sop_input" "1" }
        }
        parm {
            name    "pointattribs"
            label   "Point Attributes"
            type    string
            default { "" }
            menutoggle {
                [ "opmenu -l -a attribinterpolate_point pointattribs" ]
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "sop_input" "1" }
        }
        parm {
            name    "barbattribs"
            label   "Barb Attributes"
            type    string
            default { "P_barbl P_barbr" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

}
INDX              Contents       9j/   DialogScript   9  tfU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for featherutility automatically generated

{
    name	featherutility
    script	featherutility
    label	"Feather Utility"

    help {
	""
    }

    inputlabel	1	Feathers
    inputlabel	2	Skin
    inputlabel	3	VDB
    inputlabel	4	"Sub-Network Input #4"
    outputlabel	1	Feathers
    outputlabel	2	Skin
    outputlabel	3	VDB

    parm {
        name    "group"
        label   "Group"
        type    string
        default { "" }
        menutoggle {
            [ "opmenu -l -a find_first_barbpt group" ]
        }
        range   { 0 1 }
        parmtag { "autoscope" "1000000000000000" }
        parmtag { "script_action" "import soputils\nkwargs['geometrytype'] = hou.geometryType.Primitives\nkwargs['inputindex'] = 0\nsoputils.selectGroupParm(kwargs)" }
        parmtag { "script_action_help" "Select geometry from an available viewport." }
        parmtag { "script_action_icon" "BUTTONS_reselect" }
    }
    parm {
        name    "firstbarbpt"
        label   "Find First Barb Point"
        type    toggle
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "firstbarbptattrib"
        label   "First Barb Point Attribute"
        type    string
        default { "firstbarbpt" }
        disablewhen "{ firstbarbpt == 0 }"
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "computewidth"
        label   "Compute Width"
        type    toggle
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "widthattrib"
        label   "Width Attribute"
        type    string
        default { "featherwidth" }
        disablewhen "{ computewidth == 0 }"
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "widthlengthnorm"
        label   "Length-Normalized"
        type    toggle
        default { "0" }
        disablewhen "{ computewidth == 0 }"
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "alignorienttotangent"
        label   "Align Orient To Curve Tangent"
        type    toggle
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "orientattrib"
        label   "Orient Attribute"
        type    string
        default { "barborient" }
        disablewhen "{ alignorienttotangent == 0 }"
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "info"
        label   "Info"
        type    string
        invisible
        default { [ "info = \"\"\nif hou.ch(\"firstbarbpt\"):\n    firstbarbptattrib = hou.ch(\"firstbarbptattrib\")\n    info += f\"First Barb Point: {firstbarbptattrib}\\n\"\nif hou.ch(\"computewidth\"):\n    widthattrib = hou.ch(\"widthattrib\")\n    norm = \" (Normalized)\" if hou.ch(\"widthlengthnorm\") else \"\"\n    info += f\"Width{norm}: {widthattrib}\\n\"\nif hou.ch(\"alignorienttotangent\"):\n    orientattrib = hou.ch(\"orientattrib\")\n    info += f\"Align Orient: {orientattrib}\\n\"\n    \nreturn info\n" python ] }
        parmtag { "editor" "1" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "pinbarbs"
        label   "Pin Barbs"
        type    toggle
        default { "off" }
        disablewhen "{ alignorienttotangent == 0 }"
        parmtag { "script_callback_language" "python" }
    }
}
INDX              Contents       9j/   DialogScript   9  4fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for featherwidth automatically generated

{
    name	featherwidth
    script	featherwidth
    label	"Feather Width"

    help {
	""
    }

    inputlabel	1	Feathers
    inputlabel	2	Skin
    inputlabel	3	"Skin VDB and Texture Primitives"
    inputlabel	4	"Sub-Network Input #4"
    outputlabel	1	Feathers
    outputlabel	2	Skin
    outputlabel	3	"Skin VDB and Texture Primitives"

    parm {
        name    "createshaftwidth"
        label   "Create Shaft Width"
        type    toggle
        default { "1" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "shaftwidth"
        label   "Shaft Width"
        type    log
        joinnext
        default { "0.005" }
        disablewhen "{ createshaftwidth == 0 }"
        range   { 0 0.1 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "shaftwidthoverride"
        label   "Shaft Width Override"
        type    ordinal
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ createshaftwidth == 0 }"
        menu {
            "none"          "No Override"
            "curveattrib"   "Guide Attribute"
            "skinattrib"    "Skin Attribute"
            "texture"       "Texture"
            "textureprim"   "Texture Primitive"
        }
        parmtag { "parmoverride_mainparm" "shaftwidth" }
    }
    parm {
        name    "shaftwidthoptions"
        label   "Shaft Width Options"
        type    buttonstrip
        nolabel
        default { "0" }
        disablewhen "{ createshaftwidth == 0 }"
        menutoggle {
            "fit"   "Fit"
            "ramp"  "Ramp"
        }
        parmtag { "parmoverride_mainparm" "shaftwidth" }
    }
    parm {
        name    "shaftwidthinrange"
        label   "In Range"
        type    float
        joinnext
        size    2
        default { "0" "1" }
        disablewhen "{ createshaftwidth == 0 } { shaftwidthoverride == none }"
        hidewhen "{ shaftwidthoptions != 1 shaftwidthoptions != 3 }"
        range   { 0 10 }
        parmtag { "parmoverride_mainparm" "shaftwidth" }
    }
    parm {
        name    "shaftwidthoutrange"
        label   "Out Range"
        type    float
        size    2
        default { "0" "1" }
        disablewhen "{ createshaftwidth == 0 } { shaftwidthoverride == none }"
        hidewhen "{ shaftwidthoptions != 1 shaftwidthoptions != 3 }"
        range   { 0 10 }
        parmtag { "parmoverride_mainparm" "shaftwidth" }
    }
    parm {
        name    "shaftwidthremapramp"
        label   "Shaft Width Remap Ramp"
        type    ramp_flt
        default { "2" }
        disablewhen "{ createshaftwidth == 0 }"
        hidewhen "{ shaftwidthoptions != 2 shaftwidthoptions != 3 }"
        range   { 1! 10 }
        parmtag { "parmoverride_mainparm" "shaftwidth" }
    }
    parm {
        name    "shaftwidthcurveattrib"
        label   "Shaft Width Attrib"
        type    string
        default { "shaftwidth" }
        disablewhen "{ createshaftwidth == 0 }"
        hidewhen "{ shaftwidthoverride != curveattrib }"
        menureplace {
            [ "import furtoolutils" ]
            [ "" ]
            [ "try:" ]
            [ "    return furtoolutils.buildSkinPaintAttribMenu(" ]
            [ "            kwargs['node'], skininput=0, skinparmname=None," ]
            [ "            attribSize=1)" ]
            [ "except:" ]
            [ "    return []" ]
            language python
        }
        parmtag { "parmoverride_mainparm" "shaftwidth" }
    }
    parm {
        name    "shaftwidthattrib"
        label   "Shaft Width Attrib"
        type    string
        default { "shaftwidth" }
        disablewhen "{ createshaftwidth == 0 }"
        hidewhen "{ shaftwidthoverride != skinattrib }"
        menureplace {
            [ "import furtoolutils" ]
            [ "" ]
            [ "try:" ]
            [ "    return furtoolutils.buildSkinPaintAttribMenu(" ]
            [ "            kwargs['node'], skininput=1, skinparmname=None," ]
            [ "            attribSize=1)" ]
            [ "except:" ]
            [ "    return []" ]
            language python
        }
        parmtag { "parmoverride_mainparm" "shaftwidth" }
        parmtag { "script_action" "import furtoolutils\n\nfurtoolutils.paintSkinAttrib(\n    kwargs,\n    kwargs['parmtuple'][0].eval(),\n    1.0, 1,\n    skinparmname=None)" }
        parmtag { "script_action_help" "Paint Shaft Width Attrib" }
        parmtag { "script_action_icon" "SOP_paint" }
    }
    parm {
        name    "shaftwidthtexture"
        label   "Shaft Width Texture"
        type    image
        default { "" }
        disablewhen "{ createshaftwidth == 0 }"
        hidewhen "{ shaftwidthoverride != texture }"
        parmtag { "parmoverride_mainparm" "shaftwidth" }
    }
    parm {
        name    "shaftwidthtextureprim"
        label   "Shaft Width Texture"
        type    string
        joinnext
        default { "shaftwidth" }
        disablewhen "{ createshaftwidth == 0 }"
        hidewhen "{ shaftwidthoverride != textureprim }"
        menureplace {
            [ "import terraintoolutils" ]
            [ "" ]
            [ "return terraintoolutils.buildNameMenu(kwargs['node'], input_num=2)" ]
            language python
        }
        parmtag { "parmoverride_mainparm" "shaftwidth" }
        parmtag { "script_action" "import furtoolutils\n\nfurtoolutils.paintTextureMask(\n    kwargs,\n    kwargs['parmtuple'][0].eval(),\n    1.0, skininput=1,\n    skinparmname=None,\n    textureinput=2)" }
        parmtag { "script_action_help" "Paint Shaft Width Attrib Texture" }
        parmtag { "script_action_icon" "SOP_paint" }
    }
    parm {
        name    "shaftwidthuvmode"
        label   "UV Mode"
        type    ordinal
        nolabel
        default { "0" }
        disablewhen "{ createshaftwidth == 0 }"
        hidewhen "{ shaftwidthoverride != textureprim }"
        menu {
            "skinuv"    "Skin UV"
            "curveuv"   "Curve UV"
        }
        parmtag { "parmoverride_mainparm" "shaftwidth" }
    }
    parm {
        name    "createbarbwidth"
        label   "Create Barb Width"
        type    toggle
        default { [ "off" hscript-expr ] }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "barbwidth"
        label   "Barb Width"
        type    log
        joinnext
        default { "0.0002" }
        disablewhen "{ createbarbwidth == 0 }"
        range   { 0 0.1 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "barbwidthoverride"
        label   "Barb Width Override"
        type    ordinal
        nolabel
        joinnext
        default { "0" }
        disablewhen "{ createbarbwidth == 0 }"
        menu {
            "none"          "No Override"
            "curveattrib"   "Guide Attribute"
            "skinattrib"    "Skin Attribute"
            "texture"       "Texture"
            "textureprim"   "Texture Primitive"
        }
        parmtag { "parmoverride_mainparm" "barbwidth" }
    }
    parm {
        name    "barbwidthoptions"
        label   "Barb Width Options"
        type    buttonstrip
        nolabel
        default { "0" }
        disablewhen "{ createbarbwidth == 0 }"
        menutoggle {
            "fit"   "Fit"
            "ramp"  "Ramp"
        }
        parmtag { "parmoverride_mainparm" "barbwidth" }
    }
    parm {
        name    "barbwidthinrange"
        label   "In Range"
        type    float
        joinnext
        size    2
        default { "0" "1" }
        disablewhen "{ createbarbwidth == 0 } { barbwidthoverride == none }"
        hidewhen "{ barbwidthoptions != 1 barbwidthoptions != 3 }"
        range   { 0 10 }
        parmtag { "parmoverride_mainparm" "barbwidth" }
    }
    parm {
        name    "barbwidthoutrange"
        label   "Out Range"
        type    float
        size    2
        default { "0" "1" }
        disablewhen "{ createbarbwidth == 0 } { barbwidthoverride == none }"
        hidewhen "{ barbwidthoptions != 1 barbwidthoptions != 3 }"
        range   { 0 10 }
        parmtag { "parmoverride_mainparm" "barbwidth" }
    }
    parm {
        name    "barbwidthmapramptobarbs"
        label   "Map Ramp to Barbs"
        type    toggle
        default { "0" }
        disablewhen "{ createbarbwidth == 0 }"
        hidewhen "{ barbwidthoptions != 2 barbwidthoptions != 3 }"
        parmtag { "parmoverride_mainparm" "barbwidth" }
    }
    parm {
        name    "barbwidthremapramp"
        label   "Barb Width Remap Ramp"
        type    ramp_flt
        default { "2" }
        disablewhen "{ createbarbwidth == 0 }"
        hidewhen "{ barbwidthoptions != 2 barbwidthoptions != 3 }"
        range   { 1! 10 }
        parmtag { "parmoverride_mainparm" "barbwidth" }
    }
    parm {
        name    "barbwidthcurveattrib"
        label   "Barb Width Attrib"
        type    string
        default { "barbwidth" }
        disablewhen "{ createbarbwidth == 0 }"
        hidewhen "{ barbwidthoverride != curveattrib }"
        menureplace {
            [ "import furtoolutils" ]
            [ "" ]
            [ "try:" ]
            [ "    return furtoolutils.buildSkinPaintAttribMenu(" ]
            [ "            kwargs['node'], skininput=0, skinparmname=None," ]
            [ "            attribSize=1)" ]
            [ "except:" ]
            [ "    return []" ]
            language python
        }
        parmtag { "parmoverride_mainparm" "barbwidth" }
    }
    parm {
        name    "barbwidthattrib"
        label   "Barb Width Attrib"
        type    string
        default { "barbwidth" }
        disablewhen "{ createbarbwidth == 0 }"
        hidewhen "{ barbwidthoverride != skinattrib }"
        menureplace {
            [ "import furtoolutils" ]
            [ "" ]
            [ "try:" ]
            [ "    return furtoolutils.buildSkinPaintAttribMenu(" ]
            [ "            kwargs['node'], skininput=1, skinparmname=None," ]
            [ "            attribSize=1)" ]
            [ "except:" ]
            [ "    return []" ]
            language python
        }
        parmtag { "parmoverride_mainparm" "barbwidth" }
        parmtag { "script_action" "import furtoolutils\n\nfurtoolutils.paintSkinAttrib(\n    kwargs,\n    kwargs['parmtuple'][0].eval(),\n    1.0, 1,\n    skinparmname=None)" }
        parmtag { "script_action_help" "Paint Barb Width Attrib" }
        parmtag { "script_action_icon" "SOP_paint" }
    }
    parm {
        name    "barbwidthtexture"
        label   "Barb Width Texture"
        type    image
        default { "" }
        disablewhen "{ createbarbwidth == 0 }"
        hidewhen "{ barbwidthoverride != texture }"
        parmtag { "parmoverride_mainparm" "barbwidth" }
    }
    parm {
        name    "barbwidthtextureprim"
        label   "Barb Width Texture"
        type    string
        joinnext
        default { "barbwidth" }
        disablewhen "{ createbarbwidth == 0 }"
        hidewhen "{ barbwidthoverride != textureprim }"
        menureplace {
            [ "import terraintoolutils" ]
            [ "" ]
            [ "return terraintoolutils.buildNameMenu(kwargs['node'], input_num=2)" ]
            language python
        }
        parmtag { "parmoverride_mainparm" "barbwidth" }
        parmtag { "script_action" "import furtoolutils\n\nfurtoolutils.paintTextureMask(\n    kwargs,\n    kwargs['parmtuple'][0].eval(),\n    1.0, skininput=1,\n    skinparmname=None,\n    textureinput=2)" }
        parmtag { "script_action_help" "Paint Barb Width Attrib Texture" }
        parmtag { "script_action_icon" "SOP_paint" }
    }
    parm {
        name    "barbwidthuvmode"
        label   "UV Mode"
        type    ordinal
        nolabel
        default { "0" }
        disablewhen "{ createbarbwidth == 0 }"
        hidewhen "{ barbwidthoverride != textureprim }"
        menu {
            "skinuv"    "Skin UV"
            "curveuv"   "Curve UV"
            "featheruv" "Feather UV"
        }
        parmtag { "parmoverride_mainparm" "barbwidth" }
    }
    parm {
        name    "skinuvattrib"
        label   "Skin UV Attribute"
        type    string
        default { "uv" }
        menureplace {
            [ "ptmenu = kwargs['node'].generateInputAttribMenu(" ]
            [ "    1," ]
            [ "    hou.attribType.Point," ]
            [ "    hou.attribData.Float," ]
            [ "    min_size=3," ]
            [ "    array_type=False)" ]
            [ "vtxmenu = kwargs['node'].generateInputAttribMenu(" ]
            [ "    1," ]
            [ "    hou.attribType.Vertex," ]
            [ "    hou.attribData.Float," ]
            [ "    min_size=3," ]
            [ "    array_type=False)" ]
            [ "" ]
            [ "return ptmenu + vtxmenu" ]
            language python
        }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "featheruvattrib"
        label   "Feather UV Attribute"
        type    string
        default { "uv" }
        menureplace {
            [ "ptmenu = kwargs['node'].generateInputAttribMenu(" ]
            [ "    0," ]
            [ "    hou.attribType.Point," ]
            [ "    hou.attribData.Float," ]
            [ "    min_size=3," ]
            [ "    array_type=False)" ]
            [ "" ]
            [ "return ptmenu" ]
            language python
        }
        parmtag { "script_callback_language" "python" }
    }
}
INDX              Contents       9j/   DialogScript   9  ffU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for groundplane automatically generated

{
    name	groundplane
    script	groundplane
    label	"Ground Plane"


    help {
	""
    }
    bindhandle rx xform "Transformer" rx ""
    bindhandle ry xform "Transformer" ry ""
    bindhandle rz xform "Transformer" rz ""
    bindhandle grid_size1 xform "Transformer" sx ""
    bindhandle grid_size2 xform "Transformer" sz ""
    bindhandle tx xform "Transformer" tx ""
    bindhandle ty xform "Transformer" ty ""
    bindhandle tz xform "Transformer" tz ""

    inputlabel	1	"Input 1"
    inputlabel	2	"Input 2"
    inputlabel	3	"Input 3"
    inputlabel	4	"Input 4"

    parm {
        name    "objname"
        label   "Object Name"
        type    string
        default { "$OS" }
        range   { 0 1 }
        parmtag { "autoscope" "0000" }
    }
    parm {
        name    "display"
        label   "Display Proxy Geometry"
        type    toggle
        default { "1" }
        range   { 0 1 }
        parmtag { "autoscope" "0000" }
    }
    parm {
        name    "color"
        label   "Color"
        type    color
        size    3
        default { "1" "1" "1" }
        range   { 0 1 }
        parmtag { "autoscope" "0000" }
    }
    parm {
        name    "grid_size"
        label   "Grid Size"
        type    float
        size    2
        default { "20" "20" }
        range   { -1 1 }
        parmtag { "autoscope" "0000" }
        parmtag { "units" "m1" }
    }
    group {
        name    "std_switcher_0"
        label   "Initial State"

        parm {
            name    "objpath"
            label   "OBJ Path"
            type    oppath
            default { "" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "opfilter" "!!OBJ!!" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "t"
            label   "Position"
            type    vector
            size    3
            default { "0" "0" "0" }
            disablewhen "{ objpath != \"\" }"
            range   { -1 1 }
            parmtag { "autoscope" "0000" }
            parmtag { "units" "m1" }
        }
        parm {
            name    "r"
            label   "Rotation"
            type    vector
            size    3
            default { "0" "0" "0" }
            disablewhen "{ objpath != \"\" }"
            range   { -1 1 }
            parmtag { "autoscope" "0000" }
        }
    }

    group {
        name    "std_switcher_0_1"
        label   "Physical"

        parm {
            name    "bounce"
            label   "Bounce"
            type    float
            default { "0.5" }
            range   { 0 1 }
            parmtag { "autoscope" "0000" }
        }
        parm {
            name    "bounceforward"
            label   "Bounce Forward"
            type    float
            default { "1" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "" }
        }
        parm {
            name    "friction"
            label   "Friction"
            type    float
            default { "1" }
            range   { 0 1 }
            parmtag { "autoscope" "0000" }
        }
        parm {
            name    "dynamicfriction"
            label   "Dynamic Friction Scale"
            type    float
            default { "1" }
            range   { 0 1 }
            parmtag { "autoscope" "0000" }
        }
        parm {
            name    "temperature"
            label   "Temperature"
            type    float
            default { "0" }
            range   { 0 100 }
            parmtag { "autoscope" "0000000000000000" }
        }
    }

}
INDX              Contents       9j/   DialogScript   9  %fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for groupexpression automatically generated

{
    name	groupexpression
    script	groupexpression
    label	"Group Expression"

    help {
	""
    }

    inputlabel	1	"Geometry to Process with Group Expressions"
    inputlabel	2	"Ancillary Input, point(1, ...) to Access."
    inputlabel	3	"Ancillary Input, point(2, ...) to Access."
    inputlabel	4	"Ancillary Input, point(3, ...) to Access."

    group {
        name    "folder0"
        label   "VEXpressions"

        parm {
            name    "grouptype"
            label   "Group Type"
            type    ordinal
            default { "0" }
            menu {
                "primitive" "Primitives"
                "point"     "Points"
                "vertex"    "Vertices"
            }
        }
        multiparm {
            name    "expressions"
            label    "Group VEXpressions"
            default 1

            parm {
                name    "enable#"
                label   "Enable"
                type    toggle
                nolabel
                joinnext
                default { "1" }
            }
            parm {
                name    "groupname#"
                label   "Group Name"
                type    string
                default { "group#" }
                disablewhen "{ enable# == 0 }"
                menureplace {
                    [ "opmenu -l -a attribvop1 bindgroup" ]
                }
            }
            parm {
                name    "snippet#"
                label   "VEXpression"
                type    string
                default { "" }
                disablewhen "{ enable# == 0 }"
                menureplace {
                    [ "import vexpressionmenu" ]
                    [ "" ]
                    [ "return vexpressionmenu.buildSingleLineSnippetMenu('groupexpression/snippet')" ]
                    language python
                }
                parmtag { "script_action" "import vexpressionmenu\n\nnode = kwargs['node']\nparmname = kwargs['parmtuple'].name()\n\nvexpressionmenu.createSpareParmsFromChCalls(node, parmname)" }
                parmtag { "script_action_help" "Creates spare parameters for each unique call of ch() " }
                parmtag { "script_action_icon" "BUTTONS_create_parm_from_ch" }
            }
            parm {
                name    "mergeop#"
                label   "Merge Op"
                type    ordinal
                default { "0" }
                menu {
                    "replace"   "Replace"
                    "union"     "Union with Existing"
                    "intersect" "Intersect with Existing"
                    "subtract"  "Subtract from Existing"
                }
            }
        }

    }

    group {
        name    "folder0_1"
        label   "Bindings"

        parm {
            name    "vex_cwdpath"
            label   "Evaluation Node Path"
            type    oppath
            default { "." }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "vex_matchattrib"
            label   "Attribute to Match"
            type    string
            default { "id" }
            parmtag { "autoscope" "0000000000000000" }
        }
    }

    group {
        name    "folder0_2"
        label   "Generated Code"

        parm {
            name    "updatecode"
            label   "Update Code"
            type    button
            default { "0" }
            parmtag { "script_callback" "hou.phm().updateCode(hou.pwd())" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "generatedcode"
            label   "Generated Code"
            type    string
            default { "" }
            parmtag { "editor" "1" }
            parmtag { "editorlang" "vex" }
        }
    }

}
INDX              Contents       9j/   DialogScript   9  $fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for guidegroom::2.0 automatically generated

{
    name	guidegroom::2.0
    script	draw_hair_guides
    label	"Guide Groom"

    help {
	""
    }

    inputlabel	1	Guides
    inputlabel	2	Skin
    inputlabel	3	"Skin VDB"
    inputlabel	4	Helpers
    outputlabel	1	Guides
    outputlabel	2	Skin
    outputlabel	3	"Skin VDB"

    parm {
        name    "recordstrokes"
        label   "Record Strokes"
        type    toggle
        invisible
        default { "off" }
        disablewhen "{ hasstash != 0 }"
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "clear"
        label   "Clear"
        type    button
        default { "0" }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback" "hou.phm().clear(kwargs)" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "group"
        label   "Group"
        type    string
        default { "" }
        menureplace {
            [ "node = kwargs['node']" ]
            [ "" ]
            [ "geo = node.geometry()" ]
            [ "if geo is None:" ]
            [ "    return []" ]
            [ "" ]
            [ "result = []" ]
            [ "grouptype = node.parm('grouptype').evalAsString()" ]
            [ "grps = []" ]
            [ "if grouptype == \"prims\":" ]
            [ "    groups = geo.primGroups()" ]
            [ "elif grouptype == \"points\":" ]
            [ "    groups = geo.pointGroups()" ]
            [ "" ]
            [ "for group in groups:" ]
            [ "    result.append(group.name())" ]
            [ "    result.append(group.name())" ]
            [ "" ]
            [ "if grouptype == \"prims\":" ]
            [ "    attribname = node.evalParm(\"nameattrib\")" ]
            [ "    nameattrib = geo.findPrimAttrib(attribname)" ]
            [ "    " ]
            [ "    if nameattrib is None:" ]
            [ "        return result" ]
            [ "        " ]
            [ "    names = nameattrib.strings()" ]
            [ "    " ]
            [ "    for name in names:" ]
            [ "        pattern = \"@{}=={}\".format(attribname, name)" ]
            [ "        result.append(pattern)" ]
            [ "        result.append(pattern)" ]
            [ "" ]
            [ "return result" ]
            language python
        }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_action" "import soputils\nnode = kwargs['node']\nkwargs['geometrytype'] = node.parmTuple('grouptype')\nkwargs['nodepath'] = '.'\nsoputils.selectGroupParm(kwargs)\nnode.parm(\"group\").pressButton()" }
        parmtag { "script_action_help" "Select geometry from an available viewport.\nShift-click to turn on Select Groups." }
        parmtag { "script_action_icon" "BUTTONS_reselect" }
        parmtag { "script_callback" "hou.phm().updateHandlePivot()" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "grouptype"
        label   "Group Type"
        type    ordinal
        default { "prims" }
        menu {
            "guess"         "Guess from Group"
            "breakpoints"   "Breakpoints"
            "edges"         "Edges"
            "points"        "Points"
            "prims"         "Primitives"
        }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback" "hou.phm().updateHandlePivot()" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "hasstash"
        label   "Has Stash"
        type    integer
        invisible
        default { [ "evalParm(\"strokes\") is not None or evalParm(\"groom\") is not None" python ] }
        range   { 0 10 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "tool"
        label   "Tool"
        type    ordinal
        default { "adjustlength" }
        menu {
            [ "opmenu -l -a guidegroomcore tool" ]
        }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback" "hou.phm().changeTool(kwargs)" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "raybias"
        label   "Ray Bias"
        type    float
        default { "0.001" }
        range   { 0 10 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "strandmode"
        label   "Edit Selection as Clump"
        type    toggle
        default { "off" }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "collidewithskin"
        label   "Collide with Skin"
        type    toggle
        default { "on" }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "usemask"
        label   "Use Mask"
        type    toggle
        default { "on" }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
    }
    groupcollapsible {
        name    "folder_feathers"
        label   "Feathers"
        parmtag { "sidefx::header_parm" "feathers" }

        parm {
            name    "feathers"
            label   "Create & Output Feathers"
            type    toggle
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "featherdrawmode"
            label   "Feather Draw Mode"
            type    ordinal
            joinnext
            default { "surface" }
            disablewhen "{ feathers == 0 }"
            menu {
                "curve"     "Curve"
                "barbs"     "Curve with Barbs"
                "surface"   "Surface"
            }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "setfeathersettings"
            label   "Set Feather Settings"
            type    button
            default { "0" }
            disablewhen "{ feathers == 0 }"
            parmtag { "script_callback" "hou.phm().setFeatherSettings(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "templategeosop"
            label   "Template Geometry SOP"
            type    oppath
            default { "" }
            parmtag { "oprelative" "." }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "templategroup"
            label   "Template Group"
            type    string
            default { "" }
            menureplace {
                [ "opmenu -l -a guidegroomcore templatesourcegroup" ]
            }
            parmtag { "autoscope" "1000000000000000" }
            parmtag { "script_action" "import soputils\nnode = kwargs['node']\nkwargs['geometrytype'] = node.parmTuple('grouptype')\n\npathparm = node.parm('templategeosop')\npath = pathparm.eval()\nprint(path)\nkwargs['nodepath'] = path\nsoputils.selectGroupParm(kwargs)\nnode.parm(\"templategroup\").pressButton()" }
            parmtag { "script_action_icon" "BUTTONS_reselect" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sideautoassign"
            label   "Auto Assign Side"
            type    toggle
            default { "on" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sidesetleft"
            label   "Selected to Left Side"
            type    button
            joinnext
            default { "0" }
            disablewhen "{ sideautoassign != 0 }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sidesetcenter"
            label   "Selected to Center"
            type    button
            joinnext
            default { "0" }
            disablewhen "{ sideautoassign != 0 }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sidesetright"
            label   "Selected to Right"
            type    button
            default { "0" }
            disablewhen "{ sideautoassign != 0 }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "brushoptions"
        label   "Brush Options"
        hidewhen "{ tool == edit } { tool == resample } { tool == mirror }"

        parm {
            name    "brushsurface"
            label   "Surface Brush"
            type    toggle
            default { "off" }
            disablewhen "{ tool == draw } { tool == plant } { tool == move } { tool == relax } { tool == sculpt } { tool == cull }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "usepartinglines"
            label   "Respect Parting Lines"
            type    toggle
            default { "on" }
            disablewhen "{ brushsurface == 0 } { tool == draw } { tool == plant } { tool == move } { tool == relax } { tool == sculpt }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "screenradius"
            label   "Screen Radius"
            type    float
            default { "120.322" }
            hidewhen "{ tool == draw } { tool == plant plantmode == single }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "objectradius"
            label   "Object Radius"
            type    float
            default { "0.00330039" }
            hidewhen "{ tool == draw } { tool == plant plantmode == single }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "soft"
            label   "Softness"
            type    float
            default { "1" }
            hidewhen "{ tool == draw } { tool == plant plantmode == single }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "spacing"
            label   "Spacing"
            type    float
            default { "0" }
            hidewhen "{ tool == draw }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "brushstrength"
            label   "Strength"
            type    float
            default { "1" }
            hidewhen "{ tool != brush }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "brushmaintainlength"
            label   "Maintain Length"
            type    float
            default { "1" }
            hidewhen "{ tool != brush }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "brushbend"
            label   "Bend"
            type    float
            default { "0" }
            hidewhen "{ tool != brush }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "brushbendfalloff"
            label   "Bend Falloff"
            type    float
            default { "1" }
            hidewhen "{ tool != brush }"
            range   { 0! 5 }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "straightenstrength"
            label   "Strength"
            type    float
            default { "0.05" }
            hidewhen "{ tool != straighten }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "relaxstrength"
            label   "Strength"
            type    float
            default { "1" }
            hidewhen "{ tool != relax }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "movestrength"
            label   "Strength"
            type    float
            default { "1" }
            hidewhen "{ tool != move }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "painttemplatestrength"
            label   "Strength"
            type    float
            default { "1" }
            hidewhen "{ tool != painttemplate }"
            range   { 0! 1! }
            export  all
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "moverotatewithskin"
            label   "Rotate with Skin"
            type    toggle
            default { "off" }
            hidewhen "{ tool != move }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "deintersectstrength"
            label   "Strength"
            type    float
            default { "1" }
            hidewhen "{ tool != deintersect }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "sculptstrength"
            label   "Strength"
            type    float
            default { "1" }
            hidewhen "{ tool != sculpt }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "sculptdoconstrain"
            label   "Constrain Length"
            type    toggle
            default { "on" }
            hidewhen "{ tool != sculpt }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sculptmaintainevensegments"
            label   "Maintain Even Length Segments"
            type    toggle
            default { "off" }
            disablewhen "{ sculptdoconstrain == on }"
            hidewhen "{ tool != sculpt }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sculptlockroot"
            label   "Lock Root"
            type    toggle
            default { "on" }
            hidewhen "{ tool != sculpt }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "orientstrength"
            label   "Strength"
            type    float
            default { "1" }
            hidewhen "{ tool != orient }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "orientbrushupmode"
            label   "Direction Mode"
            type    ordinal
            default { "cam" }
            hidewhen "{ tool != orient }"
            menu {
                [ "opmenu -l -a guidegroomcore orientbrushupmode" ]
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "orientbrushperpoint"
            label   "Per Point"
            type    toggle
            default { "off" }
            hidewhen "{ tool != orient }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shapefeatherstrength"
            label   "Strength"
            type    float
            default { "1" }
            hidewhen "{ tool != shapefeather }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "smoothstrength"
            label   "Strength"
            type    float
            default { "1" }
            hidewhen "{ tool != smooth }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "smoothtargetsmoothness"
            label   "Smoothness"
            type    float
            default { "0.5" }
            hidewhen "{ tool != smooth }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "smoothposition"
            label   "Smooth Position"
            type    toggle
            default { "on" }
            hidewhen "{ tool != smooth }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "smoothorient"
            label   "Smooth Orient"
            type    toggle
            default { "on" }
            hidewhen "{ tool != smooth }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "liftstrength"
            label   "Strength"
            type    float
            default { "0.05" }
            hidewhen "{ tool != lift }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "liftmode"
            label   "Mode"
            type    ordinal
            default { "addsub" }
            hidewhen "{ tool != lift }"
            menu {
                "addsub"    "Add / Subtract"
                "set"       "Set"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "paintmaskstrength"
            label   "Strength"
            type    float
            default { "1" }
            hidewhen "{ tool != paintmask }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "paintmaskpoints"
            label   "Paint Points"
            type    toggle
            default { "off" }
            disablewhen "{ brushsurface != 0 }"
            hidewhen "{ tool != paintmask }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "liftangle"
            label   "Angle"
            type    float
            default { "45" }
            hidewhen "{ tool != lift }"
            range   { 0 90 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "adjustlengthstrength"
            label   "Strength"
            type    float
            default { "0.05" }
            hidewhen "{ tool != adjustlength }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "adjustlengthmode"
            label   "Mode"
            type    ordinal
            default { "addsub" }
            hidewhen "{ tool != adjustlength }"
            menu {
                "addsub"    "Add / Subtract"
                "set"       "Set"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "adjustlengthvalue"
            label   "Value"
            type    float
            default { "0.1" }
            hidewhen "{ tool != adjustlength } { adjustlengthmode != addsub }"
            range   { 0 1 }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "adjustlengthlength"
            label   "Length"
            type    float
            default { "0.1" }
            hidewhen "{ tool != adjustlength } { adjustlengthmode != set }"
            range   { 0 1 }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "adjustlengthmethod"
            label   "Method"
            type    ordinal
            default { "scale" }
            hidewhen "{ tool != adjustlength }"
            menu {
                "cutextend" "Cut / Extend"
                "scale"     "Scale"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "plantmode"
            label   "Mode"
            type    ordinal
            default { "scatter" }
            hidewhen "{ tool != plant }"
            menu {
                "single"    "Single"
                "scatter"   "Scatter"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "density"
            label   "Density"
            type    log
            default { "1000" }
            hidewhen "{ tool != plant tool != relax tool != cull } { tool == plant plantmode != scatter }"
            range   { 0 100000 }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_action" "import toolutils\n\nsv = toolutils.sceneViewer()\n\nif sv.currentState() == 'sidefx_groom':\n    sv.runStateCommand('pickDensity')" }
            parmtag { "script_action_help" "Pick a Density from the Groom" }
            parmtag { "script_action_icon" "TOOLS_eyedropper" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "plantlength"
            label   "Default Length"
            type    float
            default { "0.01" }
            hidewhen "{ tool != plant }"
            range   { 0 10 }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "blurstrength"
            label   "Strength"
            type    float
            default { "0.05" }
            hidewhen "{ tool != blur }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "sculptphysstrength"
            label   "Strength"
            type    float
            default { "1" }
            hidewhen "{ tool != sculptphys }"
            range   { 0! 10 }
            export  all
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "blurinskinspace"
            label   "Relative to Skin"
            type    toggle
            default { "off" }
            hidewhen "{ tool != blur }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "blurperpoint"
            label   "Per Point"
            type    toggle
            default { "off" }
            hidewhen "{ tool != blur }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "blurshape"
            label   "Blur Shape"
            type    toggle
            default { "on" }
            hidewhen "{ tool != blur }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "blurlength"
            label   "Blur Length"
            type    toggle
            default { "on" }
            hidewhen "{ tool != blur }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "blurorient"
            label   "Blur Orient"
            type    toggle
            default { "on" }
            hidewhen "{ tool != blur }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "clumpstrength"
            label   "Strength"
            type    float
            default { "0.05" }
            hidewhen "{ tool != clump }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "" }
        }
        parm {
            name    "clumpperpoint"
            label   "Per Point"
            type    toggle
            default { "off" }
            hidewhen "{ tool != clump }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "plantsegcount"
            label   "Segment Count"
            type    integer
            default { "8" }
            hidewhen "{ tool != plant }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "plantinterpolateguides"
            label   "Interpolate Guides"
            type    toggle
            default { "on" }
            hidewhen "{ tool != plant }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "plantinterpolaterelskin"
            label   "Interpolate Relative to Skin"
            type    toggle
            default { "on" }
            disablewhen "{ plantinterpolateguides == 0 }"
            hidewhen "{ tool != plant }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "plantinterpolateorient"
            label   "Interpolate Orientation"
            type    toggle
            default { "on" }
            disablewhen "{ plantinterpolateguides == 0 }"
            hidewhen "{ tool != plant }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "planttemplatesource"
            label   "Template Source"
            type    ordinal
            default { "activetemplate" }
            hidewhen "{ tool != plant }"
            menu {
                "none"              "None"
                "activetemplate"    "Active Template"
                "interpolateguides" "Interpolate Guides"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "drawcurvetype"
            label   "Curve Type"
            type    ordinal
            default { "guide" }
            hidewhen "{ tool != draw }"
            menu {
                "guide"     "Guide"
                "partline"  "Parting Line"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "drawonskin"
            label   "Draw on Skin"
            type    toggle
            default { "off" }
            disablewhen "{ drawcurvetype != guide }"
            hidewhen "{ tool != draw }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "drawinterpolateorient"
            label   "Interpolate Orient"
            type    toggle
            default { "on" }
            disablewhen "{ drawcurvetype != guide }"
            hidewhen "{ tool != draw }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "drawtemplatesource"
            label   "Template Source"
            type    ordinal
            default { "activetemplate" }
            disablewhen "{ drawcurvetype != guide }"
            hidewhen "{ tool != draw }"
            menu {
                "none"              "None"
                "activetemplate"    "Active Template"
                "interpolateguides" "Neighboring Guides"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "drawlimitlength"
            label   "Limit to Template Length"
            type    toggle
            default { "off" }
            disablewhen "{ drawtemplatesource != activetemplate }"
            hidewhen "{ tool != draw }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "drawsegmode"
            label   "Segment Mode"
            type    ordinal
            default { "fixed" }
            hidewhen "{ tool != draw }"
            menu {
                "fixed"     "Fixed"
                "adaptive"  "Adaptive"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "drawsegcount"
            label   "Segment Count"
            type    integer
            default { "8" }
            disablewhen "{ drawsegmode != fixed }"
            hidewhen "{ tool != draw }"
            range   { 1! 10 }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "drawseglength"
            label   "Segment Length"
            type    float
            default { "0.05" }
            disablewhen "{ drawsegmode != adaptive }"
            hidewhen "{ tool != draw }"
            range   { 0 10 }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "cutmode"
            label   "Mode"
            type    ordinal
            default { "redistribute" }
            hidewhen "{ tool != cut }"
            menu {
                "redistribute"  "Redistribute Points"
                "delete"        "Delete Points"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "painttemplateallowblending"
            label   "Allow Template Blending"
            type    toggle
            default { "off" }
            hidewhen "{ tool != painttemplate }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sepparm2"
            label   "Separator"
            type    separator
            default { "" }
            hidewhen "{ tool != sculptphys }"
        }
        parm {
            name    "sculptphyssimmode"
            label   "Simulation Mode"
            type    ordinal
            default { "settle" }
            hidewhen "{ tool != sculptphys }"
            menu {
                "damped"    "Damped"
                "settle"    "Settle"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateIsLive()" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sculptphyslivesimdamped"
            label   "Live Simulation"
            type    toggle
            default { "0" }
            hidewhen "{ tool != sculptphys } { sculptphyssimmode != damped }"
            parmtag { "script_callback" "hou.phm().updateIsLive()" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sculptphyslivesimsettle"
            label   "Live Simulation"
            type    toggle
            default { "0" }
            hidewhen "{ tool != sculptphys } { sculptphyssimmode != settle }"
            parmtag { "script_callback" "hou.phm().updateIsLive()" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sculptphystimescalesettle"
            label   "Time Scale"
            type    float
            default { "1" }
            hidewhen "{ tool != sculptphys } { sculptphyssimmode != settle }"
            range   { 0! 1! }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sculptphysgravitysettle"
            label   "Gravity"
            type    vector
            size    3
            default { "0" "-9.81" "0" }
            hidewhen "{ tool != sculptphys } { sculptphyssimmode != settle }"
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "m1s-2" }
        }
        parm {
            name    "sculptphysconstrainrootorient"
            label   "Constrain Root Orientation"
            type    toggle
            default { "1" }
            hidewhen "{ tool != sculptphys }"
            parmtag { "script_callback" "hou.phm().updatePhysicsSettings(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sculptphysbendstiffness"
            label   "Bend Stiffness"
            type    float
            default { "1" }
            hidewhen "{ tool != sculptphys }"
            range   { 0 10 }
            parmtag { "script_callback" "hou.phm().updatePhysicsSettings(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "sculptphysstretchstiffness"
            label   "Stretch Stiffness"
            type    float
            default { "10" }
            hidewhen "{ tool != sculptphys }"
            range   { 0 10 }
            parmtag { "script_callback" "hou.phm().updatePhysicsSettings(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "setrest"
            label   "Set Rest State"
            type    button
            joinnext
            default { "0" }
            hidewhen "{ tool != sculptphys }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().setNewRestState(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "clearrest"
            label   "Clear Rest State"
            type    button
            default { "0" }
            hidewhen "{ tool != sculptphys }"
            parmtag { "script_callback" "hou.phm().snapshot(kwargs['node'], reason=\"Clear Rest State\", clear=True)" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "folder1"
        label   "Mirroring"

        parm {
            name    "mirrorbrush"
            label   "Mirror Brush"
            type    toggle
            default { "off" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "mirror"
            label   "Mirror Groom"
            type    toggle
            default { "off" }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "mirrorgroup"
            label   "Mirror Group"
            type    string
            default { "" }
            menutoggle {
                [ "node = kwargs['node']" ]
                [ "" ]
                [ "geo = node.geometry()" ]
                [ "if geo is None:" ]
                [ "    return []" ]
                [ "" ]
                [ "result = []" ]
                [ "grps = []" ]
                [ "groups = geo.primGroups()" ]
                [ "" ]
                [ "for group in groups:" ]
                [ "    result.append(group.name())" ]
                [ "    result.append(group.name())" ]
                [ "" ]
                [ "attribname = node.evalParm(\"nameattrib\")" ]
                [ "nameattrib = geo.findPrimAttrib(attribname)" ]
                [ "" ]
                [ "if nameattrib is None:" ]
                [ "    return result" ]
                [ "    " ]
                [ "names = nameattrib.strings()" ]
                [ "" ]
                [ "for name in names:" ]
                [ "    pattern = \"@{}=={}\".format(attribname, name)" ]
                [ "    result.append(pattern)" ]
                [ "    result.append(pattern)" ]
                [ "" ]
                [ "return result" ]
                language python
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_action" "import soputils\nnode = kwargs['node']\nkwargs['geometrytype'] = node.parmTuple('grouptype')\nkwargs['nodepath'] = '.'\nsoputils.selectGroupParm(kwargs)\nnode.parm(\"group\").pressButton()" }
            parmtag { "script_action_help" "Select geometry from an available viewport. Shift-click to turn on Select Groups." }
            parmtag { "script_action_icon" "BUTTONS_reselect" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "mirrororigin"
            label   "Origin"
            type    vector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "mirrordir"
            label   "Direction"
            type    vector
            size    3
            default { "1" "0" "0" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "bakemirror"
            label   "Bake Mirror"
            type    button
            default { "0" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "utilityoptions"
        label   "Utility Options"
        hidewhen "{ tool != edit tool != resample tool != twist tool != mirror }"

        parm {
            name    "editsoft"
            label   "Soft Transform"
            type    toggle
            default { "on" }
            hidewhen "{ tool != edit }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().updateHUD(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "editsoftmode"
            label   "Soft Transform Mode"
            type    ordinal
            default { "endpoints" }
            hidewhen "{ tool != edit } { editsoft == 0 }"
            menu {
                "endpoints" "Up to Root / Tip"
                "curvefrac" "Fraction of Curve Length"
                "absdist"   "Absolute Distance"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "editcurvefrac"
            label   "Fraction"
            type    float
            default { "1" }
            hidewhen "{ tool != edit } { editsoftmode != curvefrac }"
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "editcurvedist"
            label   "Distance"
            type    float
            default { "1" }
            hidewhen "{ tool != edit } { editsoftmode != absdist }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "resamplesegmode"
            label   "Segment Mode"
            type    ordinal
            default { "fixed" }
            hidewhen "{ tool != resample }"
            menu {
                [ "opmenu -l -a guidegroomcore resamplesegmode" ]
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "resamplesegcount"
            label   "Segment Count"
            type    integer
            default { "8" }
            disablewhen "{ resamplesegmode != fixed }"
            hidewhen "{ tool != resample }"
            range   { 1! 20 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "resampleseglength"
            label   "Segment Length"
            type    float
            default { "0.05" }
            disablewhen "{ resamplesegmode != adaptive }"
            hidewhen "{ tool != resample }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "twistangle"
            label   "Angle"
            type    float
            default { "360" }
            hidewhen "{ tool != twist }"
            range   { -3600 3600 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "previewutil"
            label   "Preview"
            type    toggle
            default { "on" }
            hidewhen "{ tool == edit }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "stash"
            label   "Apply"
            type    button
            default { "0" }
            hidewhen "{ tool == edit }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback" "hou.phm().applyTool(kwargs[\"node\"])" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "folder0"
        label   "Masking"

        parm {
            name    "invertmask"
            label   "Invert Mask"
            type    button
            joinnext
            default { "0" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "clearmask"
            label   "Clear Mask"
            type    button
            default { "0" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "curvemaskramp"
            label   "Curve Mask Ramp"
            type    ramp_flt
            default { "1" }
            range   { 1! 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "rampfloatdefault" "1pos ( 0 ) 1value ( 1 ) 1interp ( constant )" }
            parmtag { "rampshowcontrolsdefault" "0" }
        }
    }

    groupcollapsible {
        name    "folder_groupconfig"
        label   "Names"

        parm {
            name    "namenewprims"
            label   "Set Name on New Curves"
            type    toggle
            default { "on" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "nameattrib"
            label   "Name Attribute"
            type    string
            default { "name" }
            menureplace {
                [ "node = kwargs[\"node\"]" ]
                [ "print(kwargs)" ]
                [ "geo = node.geometry()" ]
                [ "if geo is None:" ]
                [ "    return []" ]
                [ "" ]
                [ "result = []" ]
                [ "attribs = geo.primAttribs()" ]
                [ "" ]
                [ "for attrib in attribs:" ]
                [ "    if attrib.dataType() != hou.attribData.String:" ]
                [ "        continue" ]
                [ "" ]
                [ "    result.append(attrib.name())" ]
                [ "    result.append(attrib.name())" ]
                [ "" ]
                [ "return result" ]
                language python
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "activename"
            label   "Active Name"
            type    string
            default { "main" }
            menureplace {
                [ "node = kwargs[\"node\"]" ]
                [ "" ]
                [ "geo = node.geometry()" ]
                [ "if geo is None:" ]
                [ "    return []" ]
                [ "" ]
                [ "result = []" ]
                [ "attribname = node.evalParm(\"nameattrib\")" ]
                [ "nameattrib = geo.findPrimAttrib(attribname)" ]
                [ "" ]
                [ "if nameattrib is None:" ]
                [ "    return result" ]
                [ "    " ]
                [ "names = nameattrib.strings()" ]
                [ "" ]
                [ "for name in names:" ]
                [ "    result.append(name)" ]
                [ "    result.append(name)" ]
                [ "" ]
                [ "return result" ]
                language python
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "setname"
            label   "Set Name on Selected Primitives"
            type    button
            joinnext
            default { "0" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "selectactivename"
            label   "Select Primitives With This Name"
            type    button
            default { "0" }
            parmtag { "script_callback" "hou.phm().selectActiveName(kwargs[\"node\"])" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "overridecolor"
            label   "Override Color"
            type    toggle
            default { "off" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "defaultcolor"
            label   "Default Color"
            type    color
            size    3
            default { "1" "1" "1" }
            disablewhen "{ overridecolor == 0 }"
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "templatecolor"
            label   "Template Color"
            type    color
            size    3
            default { "0.1" "0.1" "0.1" }
            disablewhen "{ overridecolor == 0 }"
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "updategrouplist"
            label   "Update Group List"
            type    button
            joinnext
            default { "0" }
            parmtag { "button_icon" "" }
            parmtag { "script_callback" "hou.phm().onUpdateGroupList(kwargs)" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "colorbyname"
            label   "Color Each Group Individually"
            type    toggle
            default { "off" }
            disablewhen "{ overridecolor == 0 }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        multiparm {
            name    "folder_grouplist"
            label    "Group List"
            default 0
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "multistartoffset" "0" }

            parm {
                name    "groupcolor#"
                label   "Group Color"
                type    color
                nolabel
                joinnext
                size    3
                default { "1" "1" "1" }
                disablewhen "{ overridecolor == 0 } { colorbyname == 0 }"
                range   { 0 1 }
                parmtag { "colortype" "hide" }
            }
            parm {
                name    "groupname#"
                label   "Group Name"
                type    string
                nolabel
                joinnext
                default { "" }
                disablewhen "{ groupcolorr != unlikelyvalue }"
                menureplace {
                    [ "node = kwargs[\"node\"]" ]
                    [ "" ]
                    [ "listparm = node.parm(\"folder_grouplist\")" ]
                    [ "nameattribname = node.evalParm(\"nameattrib\")" ]
                    [ "" ]
                    [ "groom = node.parm(\"groom\").eval()" ]
                    [ "" ]
                    [ "entries = []" ]
                    [ "" ]
                    [ "if groom is not None:" ]
                    [ "    nameattrib = groom.findPrimAttrib(nameattribname)" ]
                    [ "    " ]
                    [ "    if nameattrib is not None:" ]
                    [ "        names = nameattrib.strings()" ]
                    [ "        " ]
                    [ "        for name in names:" ]
                    [ "            entries.append(name)" ]
                    [ "            entries.append(\"@{}={}\".format(" ]
                    [ "                nameattribname, name))" ]
                    [ "" ]
                    [ "return entries" ]
                    language python
                }
            }
            parm {
                name    "selectgroup#"
                label   "Select Members"
                type    button
                nolabel
                joinnext
                default { "0" }
                parmtag { "button_icon" "BUTTONS_reselect" }
                parmtag { "script_callback" "hou.phm().selectGroupListName(kwargs)" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "renamegroup#"
                label   "Rename"
                type    button
                nolabel
                joinnext
                default { "0" }
                parmtag { "button_icon" "SOP_attribstringedit" }
                parmtag { "script_callback" "hou.phm().changeGroupListName(kwargs)" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "groupoptions#"
                label   "Group Options"
                type    iconstrip
                nolabel
                default { "0" }
                menutoggle {
                    "NETVIEW_hidden_flag"   "Hide"
                    "NETVIEW_template_flag" "Template"
                }
                parmtag { "script_callback_language" "python" }
            }
        }

    }

    groupcollapsible {
        name    "groups"
        label   "Groups"

        parm {
            name    "groupnewprims"
            label   "Add New Curves to Group"
            type    toggle
            default { "off" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "activegroup"
            label   "Active Group"
            type    string
            default { "main" }
            menureplace {
                [ "node = kwargs['node']" ]
                [ "" ]
                [ "geo = node.geometry()" ]
                [ "if geo is None:" ]
                [ "    return []" ]
                [ "" ]
                [ "result = []" ]
                [ "grouptype = node.parm('grouptype').evalAsString()" ]
                [ "grps = []" ]
                [ "if grouptype == \"prims\":" ]
                [ "    groups = geo.primGroups()" ]
                [ "elif grouptype == \"points\":" ]
                [ "    groups = geo.pointGroups()" ]
                [ "" ]
                [ "for group in groups:" ]
                [ "    result.append(group.name())" ]
                [ "    result.append(group.name())" ]
                [ "" ]
                [ "return result" ]
                language python
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "addtogroup"
            label   "Add Selection to Group"
            type    button
            joinnext
            default { "0" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "deletegroup"
            label   "Delete Group"
            type    button
            default { "0" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "widthoptions"
        label   "Width"
        grouptag { "group_type" "simple" }
        grouptag { "visibletabs" "1" }

        parm {
            name    "widthoverride"
            label   "Override with Detail Attribute"
            type    toggle
            default { "on" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "width"
            label   "Width"
            type    log
            default { "0.001" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "folder_orient"
        label   "Orientation Attributes"
        parmtag { "sidefx::header_parm" "createorient" }

        parm {
            name    "createorient"
            label   "Create and Maintain orient Attribute"
            type    toggle
            default { "off" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "orientname"
            label   "Orient Attribute Name"
            type    string
            default { "orient" }
            hidewhen "{ createorient == off }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "orientupattribflip"
            label   "Flip Up Vector Attribute"
            type    toggle
            default { "off" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "orientup"
            label   "Orient Up Vector"
            type    vector
            size    3
            default { "0" "1" "0" }
            hidewhen "{ createorient == off }"
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "orientupattrib"
            label   "Orient Up Vector Attribute"
            type    string
            default { "N" }
            hidewhen "{ createorient == off }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "folder_scripts"
        label   "Scripts"

        parm {
            name    "callbacks_enable"
            label   "Enable Callback Scripts"
            type    toggle
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "callback_startstroke"
            label   "Start Stroke"
            type    string
            default { "" }
            disablewhen "{ callbacks_enable == 0 }"
            parmtag { "editor" "1" }
            parmtag { "editorlang" "python" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "callback_move"
            label   "Move"
            type    string
            default { "" }
            disablewhen "{ callbacks_enable == 0 }"
            parmtag { "editor" "1" }
            parmtag { "editorlang" "python" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "callback_endstroke"
            label   "End Stroke"
            type    string
            default { "" }
            disablewhen "{ callbacks_enable == 0 }"
            parmtag { "editor" "1" }
            parmtag { "editorlang" "python" }
            parmtag { "script_callback_language" "python" }
        }
    }

    parm {
        name    "debug"
        label   "Show State Parameters"
        type    toggle
        default { "off" }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
    }
    groupsimple {
        name    "stateparms"
        label   "State Parameters"
        hidewhen "{ debug == 0 }"

        parm {
            name    "simframe"
            label   "Simulation Frame"
            type    integer
            default { "1" }
            range   { 1! 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "omitdynamics"
            label   "Omit Dynamic Solve"
            type    toggle
            default { "off" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "doblend"
            label   "Blend to Correct"
            type    toggle
            default { "off" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "camxform0"
            label   "Cam Transform Row 0"
            type    vector4
            size    4
            default { "0" "0" "0" "0" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "camxform1"
            label   "Cam Transform Row 1"
            type    vector4
            size    4
            default { "0" "0" "0" "0" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "camxform2"
            label   "Cam Transform Row 2"
            type    vector4
            size    4
            default { "0" "0" "0" "0" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "camxform3"
            label   "Cam Transform Row 3"
            type    vector4
            size    4
            default { "0" "0" "0" "0" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "campos"
            label   "Camera Position"
            type    vector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "cursorpos"
            label   "Cursor Position"
            type    vector2
            size    2
            default { "702" "427" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "center"
            label   "Center"
            type    vector
            size    3
            default { "0.0988474" "0.934527" "2.34719" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "cursordisplace"
            label   "Cursor Displacement"
            type    vector
            size    3
            default { "1.78441e-05" "-0.000208512" "0.000120044" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "raypos"
            label   "Ray Origin"
            type    vector
            size    3
            default { "0.0628544" "0.19114" "0.150396" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "raydir"
            label   "Ray Direction"
            type    vector
            size    3
            default { "-0.0194121" "0.448538" "-0.893553" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "strengthscale"
            label   "Strength Scale"
            type    float
            default { "0" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "button"
            label   "Button"
            type    ordinal
            default { "none" }
            menu {
                "none"      "None"
                "left"      "Left"
                "middle"    "Middle"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "shiftkey"
            label   "Shift Key"
            type    toggle
            default { "off" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "ctrlkey"
            label   "Ctrl Key"
            type    toggle
            default { "off" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        groupsimple {
            name    "parmgroup_pivotxform"
            label   "Pivot Transform"

            parm {
                name    "xOrd"
                label   "Transform Order"
                type    ordinal
                joinnext
                default { "srt" }
                menu {
                    "srt"   "Scale Rot Trans"
                    "str"   "Scale Trans Rot"
                    "rst"   "Rot Scale Trans"
                    "rts"   "Rot Trans Scale"
                    "tsr"   "Trans Scale Rot"
                    "trs"   "Trans Rot Scale"
                }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "rOrd"
                label   "Rotate Order"
                type    ordinal
                nolabel
                default { "xyz" }
                menu {
                    "xyz"   "Rx Ry Rz"
                    "xzy"   "Rx Rz Ry"
                    "yxz"   "Ry Rx Rz"
                    "yzx"   "Ry Rz Rx"
                    "zxy"   "Rz Rx Ry"
                    "zyx"   "Rz Ry Rx"
                }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "t"
                label   "Translate"
                type    vector
                size    3
                default { "0" "0" "0" }
                range   { -1 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "r"
                label   "Rotate"
                type    vector
                size    3
                default { "0" "0" "0" }
                range   { 0 360 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "s"
                label   "Scale"
                type    vector
                size    3
                default { "1" "1" "1" }
                range   { -1 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "shear"
                label   "Shear"
                type    float
                size    3
                default { "0" "0" "0" }
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "scale"
                label   "Uniform Scale"
                type    float
                default { "1" }
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "p"
                label   "Pivot Translate"
                type    vector
                size    3
                default { "0.0336821" "0.240626" "0.1052" }
                range   { -1 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "pr"
                label   "Pivot Rotate"
                type    vector
                size    3
                default { "0" "0" "0" }
                range   { 0 360 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
        }

    }

    parm {
        name    "groom"
        label   "Groom"
        type    geometrydata
        invisible
        default { "0" }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback" "hou.phm().onGroomChange(kwargs)" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "clothstash"
        label   "Cloth Stash"
        type    geometrydata
        invisible
        default { "0" }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "constraintstash"
        label   "Constraint Stash"
        type    geometrydata
        invisible
        default { "0" }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "strands"
        label   "Strands"
        type    geometrydata
        invisible
        default { "0" }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "strokes"
        label   "Strokes"
        type    geometrydata
        invisible
        default { "0" }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
    }
}
INDX              Contents       9j0   DialogScript   9  fU}HouNC1033600bba06a1fdf3008919230fNON_COMMERCIAL_FILE!!! # Dialog script for guideskinattriblookup automatically generated

{
    name	guideskinattriblookup
    script	guideskinattriblookup
    label	"Guide Skin Attribute Lookup"

    help {
	""
    }

    inputlabel	1	Guides
    inputlabel	2	Skin
    inputlabel	3	"Sub-Network Input #3"
    inputlabel	4	"Sub-Network Input #4"
    outputlabel	1	Guides

    parm {
        name    "primnumattrib"
        label   "Prim Num Attribute"
        type    string
        default { "skinprim" }
    }
    parm {
        name    "primuvwattrib"
        label   "Prim UVW Attribute"
        type    string
        default { "skinprimuv" }
    }
    parm {
        name    "userest"
        label   "Use Rest Attribute If Present On Both Inputs"
        type    toggle
        default { "1" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "sepparm"
        label   "Separator"
        type    separator
        default { "" }
    }
    parm {
        name    "pointattribs"
        label   "Point Attributes"
        type    string
        default { "" }
        menutoggle {
            [ "opmenu -l -a attribinterpolate1 pointattribs" ]
        }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "sop_input" "1" }
    }
    parm {
        name    "vertattribs"
        label   "Vertex Attributes"
        type    string
        default { "" }
        menutoggle {
            [ "opmenu -l -a attribinterpolate1 vertattribs" ]
        }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "sop_input" "1" }
    }
    parm {
        name    "primattribs"
        label   "Primitive Attributes"
        type    string
        default { "" }
        menutoggle {
            [ "opmenu -l -a attribinterpolate1 primattribs" ]
        }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "sop_input" "1" }
    }
    parm {
        name    "detailattribs"
        label   "Detail Attributes"
        type    string
        default { "" }
        menutoggle {
            [ "opmenu -l -a attribinterpolate1 detailattribs" ]
        }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "sop_input" "1" }
    }
}
INDX              Contents       9j/   DialogScript   9  fHouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for guidetangentspace automatically generated

{
    name	guidetangentspace
    script	guidetangentspace
    label	"Guide Tangent Space"

    help {
	""
    }

    inputlabel	1	Guides
    inputlabel	2	Skin
    inputlabel	3	"Sub-Network Input #3"
    inputlabel	4	"Sub-Network Input #4"
    outputlabel	1	Guides

    groupsimple {
        name    "folder_creation"
        label   "Creation"

        parm {
            name    "group"
            label   "Group"
            type    string
            default { "" }
            menutoggle {
                [ "opmenu -l -a construct_tangent_space group" ]
            }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_action" "import soputils\nkwargs['geometrytype'] = hou.geometryType.Primitives\nkwargs['inputindex'] = 0\nsoputils.selectGroupParm(kwargs)" }
            parmtag { "script_action_help" "Select geometry from an available viewport." }
            parmtag { "script_action_icon" "BUTTONS_reselect" }
        }
        parm {
            name    "normalmode"
            label   "Normal Mode"
            type    ordinal
            default { "skinuv" }
            menu {
                "guidenormal"   "Guide Normal Attribute"
                "skintangent"   "Skin Tangent Attribute"
                "skinuv"        "Skin UV Gradient"
                "vector"        "Constant Normal Vector"
            }
        }
        parm {
            name    "userest"
            label   "Use Rest Attribute If Present On Both Inputs"
            type    toggle
            default { "on" }
            hidewhen "{ normalmode != skintangent normalmode != skinuv }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "guidenormalattrib"
            label   "Guide Normal Attribute"
            type    string
            default { "normal" }
            hidewhen "{ normalmode != guidenormal }"
        }
        parm {
            name    "skintangentattrib"
            label   "Skin Tangent Attribute"
            type    string
            default { "furdirection" }
            hidewhen "{ normalmode != skintangent }"
        }
        parm {
            name    "skinuvattrib"
            label   "UV Attribute"
            type    string
            default { "uv" }
            hidewhen "{ normalmode != skinuv }"
        }
        parm {
            name    "normalvector"
            label   "Normal Vector"
            type    vector
            size    3
            default { "0" "1" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupsimple {
        name    "folder_output"
        label   "Output"

        parm {
            name    "outputnormal"
            label   "outputnormal"
            type    toggle
            nolabel
            joinnext
            default { "1" }
        }
        parm {
            name    "normalname"
            label   "Normal Name"
            type    string
            default { "normal" }
            disablewhen "{ outputnormal == 0 }"
        }
        parm {
            name    "outputtangent"
            label   "outputtangent"
            type    toggle
            nolabel
            joinnext
            default { "1" }
        }
        parm {
            name    "tangentname"
            label   "Tangent Name"
            type    string
            default { "tangent" }
            disablewhen "{ outputtangent == 0 }"
        }
        parm {
            name    "outputbitangent"
            label   "outputbitangent"
            type    toggle
            nolabel
            joinnext
            default { "0" }
        }
        parm {
            name    "bitangentname"
            label   "Bitangent Name"
            type    string
            default { "bitangent" }
            disablewhen "{ outputbitangent == 0 }"
        }
        parm {
            name    "outputorient"
            label   "Output Orient"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "orientname"
            label   "Orient Name"
            type    string
            default { "orient" }
            disablewhen "{ outputorient == 0 }"
        }
    }

}
INDX              DialogScript      LffU}# Dialog script for localscheduler automatically generated

{
    name	localscheduler
    script	localscheduler
    label	"Local Scheduler"

    help {
	""
    }

    group {
        name    "folder0"
        label   "Scheduler"

        groupsimple {
            name    "folder5"
            label   "Scheduling"

            parm {
                name    "maxprocsmenu"
                label   "Total Slots"
                type    ordinal
                joinnext
                default { "0" }
                menu usetokenvalue {
                    "0"     "Equal to 1/4 of Total CPU Count"
                    "-1"    "Equal to CPU Count Less One"
                    "1"     "Custom Slot Count"
                }
            }
            parm {
                name    "maxprocs"
                label   "maxprocs"
                type    integer
                nolabel
                default { "1" }
                disablewhen "{ maxprocsmenu != 1 }"
                range   { -4 128 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "pdg_usemaxtasks"
                label   "Enable Limit Jobs"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "pdg_maxtasks"
                label   "Limit Jobs"
                type    integer
                default { "0" }
                disablewhen "{ pdg_usemaxtasks == 0 }"
                range   { 0 10 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "verbose"
                label   "Verbose Logging"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "pdg_waitforfailures"
                label   "Block on Failed Work Items"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
        }

        groupsimple {
            name    "folder4"
            label   "Paths"

            parm {
                name    "pdg_workingdir"
                label   "Working Directory"
                type    directory
                default { "$HIP" }
            }
            parm {
                name    "hythonbin"
                label   "Hython"
                type    ordinal
                default { "0" }
                menu {
                    "0" "Default"
                    "1" "Custom"
                }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "hythonbincustomuniversal"
                label   "Hython Executable"
                type    file
                default { "" }
                hidewhen "{ hythonbin != 1 }"
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "pdg_workitemdatasource"
                label   "Load Item Data From"
                type    ordinal
                default { "0" }
                menu {
                    "0" "Temporary JSON File"
                    "1" "RPC Message"
                }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "pdg_compressworkitemdata"
                label   "Compress Work Item Data"
                type    toggle
                default { "1" }
                disablewhen "{ pdg_workitemdatasource == 1 }"
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "pdg_validateoutputs"
                label   "Validate Outputs When Recooking"
                type    toggle
                default { "1" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "pdg_checkexpectedoutputs"
                label   "Check Expected Outputs on Disk"
                type    toggle
                default { "1" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "sepparm2"
                label   "Separator"
                type    separator
                default { "" }
            }
            parm {
                name    "pdg_mapmode"
                label   "Path Mapping"
                type    ordinal
                default { "0" }
                menu {
                    "0" "Global"
                    "1" "None"
                }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "pdg_usemapzone"
                label   "Use Path Map Zone"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                disablewhen "{ pdg_mapmode == 1 }"
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "pdg_mapzone"
                label   "Path Map Zone"
                type    string
                default { "$PDG_PATHMAP_ZONE" }
                disablewhen "{ pdg_usemapzone == 0 }"
                menureplace {
                    "POSIX" "POSIX"
                    "WIN"   "WIN"
                }
                parmtag { "script_callback_language" "python" }
            }
            groupsimple {
                name    "folder1"
                label   "Temp Directory"

                parm {
                    name    "tempdirmenu"
                    label   "Location"
                    type    ordinal
                    default { "1" }
                    menu {
                        "0" "Working Directory"
                        "1" "Houdini Temp"
                        "2" "Custom"
                    }
                }
                parm {
                    name    "tempdirappendpid"
                    label   "Append PID"
                    type    toggle
                    default { "1" }
                }
                parm {
                    name    "tempdircustom"
                    label   "Custom"
                    type    directory
                    default { "$HOUDINI_TEMP_DIR/$HIPNAME/pdgtemp" }
                    disablewhen "{ tempdirmenu != 2 }"
                }
                parm {
                    name    "pdg_deletetempdir"
                    label   "Delete Temp Dir"
                    type    ordinal
                    default { "0" }
                    menu {
                        "0" "Never"
                        "1" "When Scheduler is Deleted"
                        "2" "When Cook Completes"
                    }
                    parmtag { "script_callback_language" "python" }
                }
            }

        }

        parm {
            name    "socketcallbacks"
            label   "Use Socket callbacks instead of stdout tokens"
            type    integer
            invisible
            default { "1" }
            range   { 0 10 }
        }
    }

    group {
        name    "folder0_1"
        label   "RPC Server"

        parm {
            name    "pdg_rpcignoreerrors"
            label   "Ignore RPC Errors"
            type    ordinal
            default { "0" }
            menu {
                "0" "Never"
                "1" "When Cooking Batches"
                "2" "Always"
            }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "pdg_rpcmaxerrors"
            label   "Max RPC Errors"
            type    integer
            default { "5" }
            range   { 0 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "pdg_rpctimeout"
            label   "Connection Timeout"
            type    integer
            default { "4" }
            range   { 0 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "pdg_rpcretries"
            label   "Connection Retries"
            type    integer
            default { "2" }
            range   { 0 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "pdg_rpcbackoff"
            label   "Retry Backoff"
            type    integer
            default { "2" }
            range   { 0 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "pdg_rpcbatch"
            label   "Batch Poll Rate"
            type    float
            default { "1" }
            range   { 0 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "pdg_rpcrelease"
            label   "Release Job Slot When Polling"
            type    toggle
            default { "1" }
            parmtag { "script_callback_language" "python" }
        }
    }

    group {
        name    "folder0_2"
        label   "Job Parms"

        groupsimple {
            name    "folder0_3"
            label   "Scheduling"
            grouptag { "sidefx::switcher" "folder0_2" }

            parm {
                name    "local_single"
                label   "Single"
                type    toggle
                default { "0" }
                range   { 0 10 }
                parmtag { "pdg::scheduler" "" }
            }
            parm {
                name    "local_is_CPU_number_set"
                label   "local_is_CPU_number_set"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                range   { 0 1 }
                parmtag { "pdg::scheduler" "" }
            }
            parm {
                name    "local_CPUs_to_use"
                label   "Slots Per Work Item"
                type    integer
                default { "1" }
                disablewhen "{ local_is_CPU_number_set == 0 }"
                range   { 1! 64 }
                parmtag { "pdg::scheduler" "" }
            }
            groupsimple {
                name    "folder6"
                label   "Minimum Available Memory"

                parm {
                    name    "local_useminfreemem"
                    label   "Rule"
                    type    ordinal
                    default { "0" }
                    menu {
                        "0" "No Minimum"
                        "1" "MB Available"
                        "2" "Percent Available"
                    }
                    parmtag { "pdg::scheduler" "" }
                    parmtag { "script_callback_language" "python" }
                }
                parm {
                    name    "local_minfreemem"
                    label   "Minimum MB"
                    type    float
                    default { "0" }
                    disablewhen "{ local_useminfreemem != 1 }"
                    range   { 0 128000 }
                    parmtag { "pdg::scheduler" "" }
                    parmtag { "script_callback_language" "python" }
                }
                parm {
                    name    "local_minfreemempct"
                    label   "Minimum Percent"
                    type    float
                    default { "0" }
                    disablewhen "{ local_useminfreemem != 2 }"
                    range   { 0 1 }
                    parmtag { "pdg::scheduler" "" }
                    parmtag { "script_callback_language" "python" }
                }
            }

        }

        groupsimple {
            name    "folder2"
            label   "Tasks"

            parm {
                name    "local_enabletimeout"
                label   "Enable Maximum Run Time"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "local_maxtime"
                label   "Maximum Run Time"
                type    float
                default { "0" }
                disablewhen "{ local_enabletimeout == 0 }"
                range   { 0 10 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "local_handletimeout"
                label   "On Task Timeout"
                type    ordinal
                default { "0" }
                disablewhen "{ local_enabletimeout == 0 }"
                menu {
                    "0" "Mark as Failed"
                    "1" "Mark as Succeeded"
                }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "sepparm4"
                label   "Separator"
                type    separator
                default { "" }
            }
            parm {
                name    "local_enablemaxmemory"
                label   "Enable Maximum Memory"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "local_maxmemory"
                label   "Maximum Memory"
                type    float
                default { "0" }
                disablewhen "{ local_enablemaxmemory == 0 }"
                range   { 0 10 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "local_handlememory"
                label   "On Memory Exceeded"
                type    ordinal
                default { "0" }
                disablewhen "{ local_enablemaxmemory == 0 }"
                menu {
                    "0" "Mark as Failed"
                    "1" "Mark as Succeeded"
                }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "sepparm5"
                label   "Separator"
                type    separator
                default { "" }
            }
            parm {
                name    "local_echandleby"
                label   "On Task Failure"
                type    ordinal
                default { "0" }
                menu {
                    "0" "Report Error"
                    "1" "Report Warning"
                    "2" "Retry Task"
                    "3" "Ignore"
                }
                parmtag { "pdg::scheduler" "" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "local_echandleall"
                label   "Handle All Non Zero"
                type    toggle
                default { "1" }
                parmtag { "pdg::scheduler" "" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "local_eccustomcode"
                label   "Exit Code"
                type    integer
                default { "1" }
                disablewhen "{ local_echandleall != 0 }"
                range   { 1 255 }
                parmtag { "pdg::scheduler" "" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "sepparm"
                label   "Separator"
                type    separator
                default { "" }
            }
            parm {
                name    "local_maximumretries"
                label   "Max Retries"
                type    integer
                default { "3" }
                disablewhen "{ local_echandleby != 2 }"
                range   { 0 10 }
                parmtag { "pdg::scheduler" "" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "local_addfailcountattr"
                label   "Retry Count Attribute"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                disablewhen "{ local_echandleby != 2 }"
                parmtag { "pdg::scheduler" "" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "local_failcountattr"
                label   "Retry Count Attrib"
                type    string
                default { "failurecount" }
                disablewhen "{ local_addfailcountattr == 0 } { local_echandleby != 2 }"
                parmtag { "pdg::scheduler" "" }
                parmtag { "script_callback_language" "python" }
            }
        }

        groupsimple {
            name    "folder3"
            label   "Task Environment"

            parm {
                name    "local_usehoudinimaxthreads"
                label   "local_usehoudinimaxthreads"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                parmtag { "pdg::scheduler" "" }
            }
            parm {
                name    "local_houdinimaxthreads"
                label   "Houdini Max Threads"
                type    integer
                default { "0" }
                disablewhen "{ local_usehoudinimaxthreads == 0 }"
                range   { 0 10 }
                parmtag { "pdg::scheduler" "" }
            }
            parm {
                name    "local_requireswindow"
                label   "Requires GUI Window"
                type    toggle
                default { "0" }
                parmtag { "pdg::scheduler" "" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "local_skippackages"
                label   "Skip Loading Packages"
                type    toggle
                default { "1" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "local_envunset"
                label   "Unset Variables"
                type    string
                default { "" }
                parmtag { "pdg::scheduler" "" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "local_env_file"
                label   "Environment File"
                type    file
                default { "" }
                parmtag { "script_callback_language" "python" }
            }
            multiparm {
                name    "local_envmulti"
                label    "Environment Variables"
                parmtag { "pdg::nocopy" "" }
                parmtag { "script_callback" "" }
                parmtag { "script_callback_language" "hscript" }

                parm {
                    name    "local_envname#"
                    label   "Name"
                    type    string
                    joinnext
                    default { "" }
                    parmtag { "pdg::scheduler" "" }
                }
                parm {
                    name    "local_envvalue#"
                    label   "Value"
                    type    string
                    default { "" }
                    parmtag { "pdg::scheduler" "" }
                }
            }

        }

    }

}
INDX              Contents       9j/   DialogScript   9  	fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for output automatically generated

{
    name	output
    script	output
    label	Output


    help {
	""
    }

    inputlabel	1	"Input 1"
    inputlabel	2	"Input 2"
    inputlabel	3	"Input 3"
    inputlabel	4	"Input 4"

    parm {
        name    "execute"
        label   "Save to Disk"
        type    button
        joinnext
        default { "0" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "takecontrol" "always" }
    }
    parm {
        name    "executebackground"
        label   "Save to Disk in Background"
        type    button
        default { "0" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback" "" }
        parmtag { "takecontrol" "always" }
    }
    parm {
        name    "f"
        label   "Start/End/Inc"
        type    float
        size    3
        default { "$FSTART" "$FEND" "1" }
        disablewhen "{ trange == off }"
        range   { 0 10 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "take"
        label   "Render with Take"
        type    string
        default { "_current_" }
        menu {
            [ "opmenu -l render take" ]
        }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "dopoutput"
        label   "Output File"
        type    file
        default { "$HIP/sim/$HIPNAME.`opname(\"..\")`.$SF.sim" }
        menureplace {
            [ "opmenu -l rop_dop1 dopoutput" ]
        }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "filechooser_mode" "write" }
    }
    parm {
        name    "usesimframes"
        label   "Output Every Sim Frame Using $SF"
        type    toggle
        default { "on" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "mkpath"
        label   "Create Intermediate Directories"
        type    toggle
        default { "on" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "initsim"
        label   "Initialize Simulation OPs"
        type    toggle
        default { "off" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "alfprogress"
        label   "Alfred Style Progress"
        type    toggle
        default { "off" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
}
INDX              Contents       9j/   DialogScript   9  5fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for popwind automatically generated

{
    name	popwind
    script	popwind
    label	"POP Wind"


    help {
	""
    }

    inputlabel	1	"Stream to Apply Forces to"

    parm {
        name    "activate"
        label   "Activation"
        type    float
        default { "1" }
        range   { 0 1 }
    }
    parm {
        name    "usegroup"
        label   "Use group"
        type    toggle
        nolabel
        joinnext
        default { "0" }
        range   { 0 1 }
    }
    parm {
        name    "partgroup"
        label   "Group"
        type    string
        default { "" }
        disablewhen "{ usegroup == 0 }"
        menutoggle {
            [ "import doppoptoolutils" ]
            [ "" ]
            [ "return doppoptoolutils.buildGroupMenu(hou.pwd())" ]
            language python
        }
        range   { 0 1 }
    }
    parm {
        name    "showguide"
        label   "Show Guide Geometry"
        type    toggle
        nolabel
        joinnext
        default { "off" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "guidecolor"
        label   "Guide"
        type    color
        size    3
        default { "1" "0" "0" }
        disablewhen "{ showguide == 0 }"
        range   { 0! 1! }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "wind"
        label   "Wind Velocity"
        type    direction
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        export  all
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "cvex" }
        parmtag { "units" "kg1m1s-2" }
    }
    parm {
        name    "windspeed"
        label   "Wind Speed"
        type    float
        default { "1" }
        range   { 0 10 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "airresist"
        label   "Air Resistance"
        type    float
        default { "1" }
        range   { 0 10 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "cvex" }
    }
    parm {
        name    "ignoremass"
        label   "Ignore Mass"
        type    toggle
        default { "on" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "cvex" }
    }
    parm {
        name    "uselocalwind"
        label   "Use VEXpressions"
        type    toggle
        default { "0" }
        range   { 0 1 }
    }
    parm {
        name    "localwindexpression"
        label   " "
        type    string
        default { "" }
        hidewhen "{ uselocalwind == 0 }"
        menu {
            [ "import vexpressionmenu" ]
            [ "" ]
            [ "return vexpressionmenu.buildSnippetMenu('popwind/localwindexpression')" ]
            language python
        }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "editor" "1" }
        parmtag { "editorlang" "vex" }
        parmtag { "editorlines" "8-40" }
        parmtag { "script_action" "import vexpressionmenu\n\nnode = kwargs['node']\nparmname = 'localwindexpression'\n\nvexpressionmenu.createSpareParmsFromChCalls(node, parmname)" }
        parmtag { "script_action_help" "Creates spare parameters for each unique call of ch() " }
        parmtag { "script_action_icon" "BUTTONS_create_parm_from_ch" }
    }
    group {
        name    "folder0"
        label   "Noise"

        parm {
            name    "amp"
            label   "Amplitude"
            type    float
            default { "0" }
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "cvex" }
            parmtag { "units" "kg1m1s-2" }
        }
        parm {
            name    "swirlsize"
            label   "Swirl Size"
            type    float
            default { "1" }
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "cvex" }
            parmtag { "units" "m1" }
        }
        parm {
            name    "swirlscale"
            label   "Swirl Scale"
            type    float
            size    3
            default { "1" "1" "1" }
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "cvex" }
        }
        parm {
            name    "pulselength"
            label   "Pulse Length"
            type    float
            default { "1" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "cvex" }
            parmtag { "units" "s1" }
        }
        parm {
            name    "rough"
            label   "Roughness"
            type    float
            default { "0.5" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "cvex" }
        }
        parm {
            name    "atten"
            label   "Attenuation"
            type    float
            default { "1" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "cvex" }
        }
        parm {
            name    "turb"
            label   "Turbulence"
            type    integer
            default { "3" }
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "cvex" }
        }
        parm {
            name    "offset"
            label   "Offset"
            type    float
            size    4
            default { "0" "0" "0" "0" }
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "cvex" }
        }
        parm {
            name    "uselocalnoise"
            label   "Use VEXpressions"
            type    toggle
            default { "off" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "cvex" }
        }
        parm {
            name    "localnoiseexpression"
            label   " "
            type    string
            default { "" }
            hidewhen "{ uselocalnoise == 0 }"
            menu {
                [ "import vexpressionmenu" ]
                [ "" ]
                [ "return vexpressionmenu.buildSnippetMenu('popwind/localnoiseexpression')" ]
                language python
            }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "editor" "1" }
            parmtag { "editorlang" "vex" }
            parmtag { "editorlines" "8-40" }
            parmtag { "script_action" "import vexpressionmenu\n\nnode = kwargs['node']\nparmname = 'localnoiseexpression'\n\nvexpressionmenu.createSpareParmsFromChCalls(node, parmname)" }
            parmtag { "script_action_help" "Creates spare parameters for each unique call of ch() " }
            parmtag { "script_action_icon" "BUTTONS_create_parm_from_ch" }
        }
    }

    group {
        name    "folder0_1"
        label   "Bindings"

        parm {
            name    "bindgeo"
            label   "Geometry"
            type    string
            default { "Geometry" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "vex_cwdpath"
            label   "Evaluation Node Path"
            type    oppath
            default { "." }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "oprelative" "." }
        }
    }

    group {
        name    "folder0_2"
        label   "Inputs"

        parm {
            name    "bindinputmenu1"
            label   "Input 1"
            type    ordinal
            default { "none" }
            menu {
                "none"      "None"
                "sop"       "SOP"
                "dopdata"   "DOP Data"
                "self"      "Myself"
                "first"     "First Context Geometry"
                "second"    "Second Context Geometry"
                "third"     "Third Context Geometry"
                "fourth"    "Fourth Context Geometry"
                "selfraw"   "Myself (No Reads of Outputs)"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "bindgeoinput1"
            label   "SOP Path"
            type    oppath
            default { "" }
            hidewhen "{ bindinputmenu1 != sop }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "opfilter" "!!SOP!!" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "binddopinput1"
            label   "DOP Data"
            type    string
            default { "" }
            hidewhen "{ bindinputmenu1 != dopdata }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "bindinputmenu2"
            label   "Input 2"
            type    ordinal
            default { "none" }
            menu {
                "none"      "None"
                "sop"       "SOP"
                "dopdata"   "DOP Data"
                "self"      "Myself"
                "first"     "First Context Geometry"
                "second"    "Second Context Geometry"
                "third"     "Third Context Geometry"
                "fourth"    "Fourth Context Geometry"
                "selfraw"   "Myself (No Reads of Outputs)"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "bindgeoinput2"
            label   "SOP Path"
            type    oppath
            default { "" }
            hidewhen "{ bindinputmenu2 != sop }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "opfilter" "!!SOP!!" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "binddopinput2"
            label   "DOP Data"
            type    string
            default { "" }
            hidewhen "{ bindinputmenu2 != dopdata }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "bindinputmenu3"
            label   "Input 3"
            type    ordinal
            default { "none" }
            menu {
                "none"      "None"
                "sop"       "SOP"
                "dopdata"   "DOP Data"
                "self"      "Myself"
                "first"     "First Context Geometry"
                "second"    "Second Context Geometry"
                "third"     "Third Context Geometry"
                "fourth"    "Fourth Context Geometry"
                "selfraw"   "Myself (No Reads of Outputs)"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "bindgeoinput3"
            label   "SOP Path"
            type    oppath
            default { "" }
            hidewhen "{ bindinputmenu3 != sop }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "opfilter" "!!SOP!!" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "binddopinput3"
            label   "DOP Data"
            type    string
            default { "" }
            hidewhen "{ bindinputmenu3 != dopdata }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "bindinputmenu4"
            label   "Input 4"
            type    ordinal
            default { "none" }
            menu {
                "none"      "None"
                "sop"       "SOP"
                "dopdata"   "DOP Data"
                "self"      "Myself"
                "first"     "First Context Geometry"
                "second"    "Second Context Geometry"
                "third"     "Third Context Geometry"
                "fourth"    "Fourth Context Geometry"
                "selfraw"   "Myself (No Reads of Outputs)"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "bindgeoinput4"
            label   "SOP Path"
            type    oppath
            default { "" }
            hidewhen "{ bindinputmenu4 != sop }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "opfilter" "!!SOP!!" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "binddopinput4"
            label   "DOP Data"
            type    string
            default { "" }
            hidewhen "{ bindinputmenu4 != dopdata }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

}
INDX              Contents       9j/   DialogScript   9  *fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for popwindshadow automatically generated

{
    name	popwindshadow
    script	sidefx::pop_wind_shadow::1.0
    label	"POP Wind Shadow"


    help {
	""
    }

    inputlabel	1	"Input 1"
    inputlabel	2	"Input 2"
    inputlabel	3	"Input 3"
    inputlabel	4	"Input 4"

    parm {
        name    "activate"
        label   "Activation"
        type    float
        default { "1" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
        parmtag { "units" "" }
    }
    parm {
        name    "usegroup"
        label   "Label"
        type    toggle
        nolabel
        joinnext
        default { "off" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "partgroup"
        label   "Group"
        type    string
        default { "" }
        disablewhen "{ usegroup == 0 }"
        menutoggle {
            [ "opmenu -l -a windshadow_create partgroup" ]
        }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
    }
    group {
        name    "parameters"
        label   "Parameters"

        parm {
            name    "combineop"
            label   "Affect Existing Mask"
            type    ordinal
            default { "replace" }
            menu {
                "replace"   "Replace"
                "near"      "Nearest"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "scandirection"
            label   "Ray Direction"
            type    ordinal
            default { "relative" }
            menu {
                "backwards" "Wind"
                "forward"   "Velocity"
                "relative"  "Relative"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "collisiongeometry"
            label   "External Geometry"
            type    ordinal
            default { "third" }
            menu {
                "none"      "None"
                "sop"       "SOP"
                "dopdata"   "DOP Data"
                "self"      "Myself"
                "first"     "First Context Geometry"
                "second"    "Second Context Geometry"
                "third"     "Third Context Geometry"
                "fourth"    "Fourth Context Geometry"
            }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "bindgeoinput"
            label   "SOP Path"
            type    oppath
            default { "" }
            hidewhen "{ collisiongeometry != sop }"
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "opfilter" "!!SOP!!" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "binddopinput"
            label   "DOP Data"
            type    string
            default { "" }
            hidewhen "{ collisiongeometry != dopdata }"
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "binddopuseself"
            label   "Use This Object's Data"
            type    toggle
            default { "off" }
            hidewhen "{ collisiongeometry != dopdata }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "doexternal"
            label   "External Shadow"
            type    toggle
            nolabel
            joinnext
            default { "1" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "externalmask"
            label   "External Shadow"
            type    float
            default { "1" }
            disablewhen "{ doexternal == 0 }"
            range   { 0! 1! }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "doself"
            label   "Self Shadow"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "selfmask"
            label   "Self Shadow"
            type    float
            default { "1" }
            disablewhen "{ doself == 0 }"
            range   { 0! 1! }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "maxdistance"
            label   "Max Distance"
            type    float
            default { "1" }
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
            parmtag { "units" "m1" }
        }
        parm {
            name    "raybias"
            label   "Self Shadow Bias"
            type    float
            default { "0.0001" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "coneangle"
            label   "Shadow Angle"
            type    float
            default { "0" }
            range   { 0! 180 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "samples"
            label   "Shadow Samples"
            type    integer
            default { "8" }
            range   { 1! 16 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "maskfalloff"
            label   "Falloff by Distance"
            type    ramp_flt
            default { "2" }
            range   { 1! 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "rampfloatdefault" "1pos ( 0.8500000238418579 ) 1value ( 1 ) 1interp ( linear ) 2pos ( 0.9973856210708618 ) 2value ( 0 ) 2interp ( linear )" }
            parmtag { "rampshowcontrolsdefault" "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "doblur"
            label   "Blur Wind Shadow"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "blur_iterations"
            label   "Blur Iterations"
            type    integer
            default { "4" }
            disablewhen "{ doblur != 1 }"
            range   { 0 100 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "blur_influencetype"
            label   "Blur Influence Type"
            type    ordinal
            default { "connectivity" }
            disablewhen "{ doblur != 1 }"
            menu {
                "connectivity"  "Connectivity"
                "proximity"     "Proximity"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "blur_proxrad"
            label   "Proximity Radius"
            type    float
            default { "0.5" }
            disablewhen "{ doblur == 0 }"
            hidewhen "{ blur_influencetype != proximity }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "blur_maxneigh"
            label   "Max Neighbors"
            type    integer
            default { "20" }
            disablewhen "{ doblur == 0 }"
            hidewhen "{ blur_influencetype != proximity }"
            range   { 0 50 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "updatewind"
            label   "Update Wind Velocity"
            type    toggle
            default { "1" }
            parmtag { "script_callback_language" "python" }
        }
    }

    group {
        name    "parameters_1"
        label   "Bindings"

        parm {
            name    "labelparm"
            label   "Inputs"
            type    label
            default { "Inputs" }
            parmtag { "sidefx::look" "heading" }
        }
        parm {
            name    "windvelocity"
            label   "Wind Velocity"
            type    string
            default { "targetv" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "velocity"
            label   "Velocity"
            type    string
            default { "v" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "binddopuseself2"
            label   "Use This Object's Data"
            type    toggle
            invisible
            default { "off" }
            hidewhen "{ collisiongeometry != dop }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "labelparm2"
            label   "Output Attributes"
            type    label
            default { "Output Attributes" }
            parmtag { "sidefx::look" "heading" }
        }
        parm {
            name    "windshadowmask"
            label   "Shadow Mask"
            type    string
            default { "windshadow_mask" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "windshadowv"
            label   "Shadowed Air Velocity"
            type    string
            default { "windshadow_v" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "windshadowdist"
            label   "Shadow Hit Distance"
            type    string
            default { "windshadow_dist" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

}
INDX              Contents       9j/   DialogScript   9 ufU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for principledshader::2.0 automatically generated

{
    name	principledshader::2.0
    script	principledshader::2.0
    label	"Principled Shader"

    rendermask	"VMantra OGL"
    shadertype	vopmaterial
    input	vector	uv	"UV Coordinates"
    input	vector	basecolor	"Base Color"
    input	float	albedomult	"Albedo Multiplier"
    input	int	basecolor_usePointColor	"Use Point Color"
    input	int	basecolor_usePackedColor	"Use Packed Color"
    input	int	frontface	"Shade Both Sides As Front"
    input	float	ior	IOR
    input	float	rough	Roughness
    input	float	aniso	Anisotropy
    input	float	anisodir	"Anisotropy Direction"
    input	float	metallic	Metallic
    input	float	reflect	Reflectivity
    input	float	reflecttint	"Reflect Tint"
    input	float	coat	Coat
    input	float	coatrough	"Coat Roughness"
    input	float	transparency	Transparency
    input	vector	transcolor	"Transmission Color"
    input	float	transdist	"At Distance"
    input	float	dispersion	Dispersion
    input	int	priority	"Surface Priority"
    input	float	sss	Subsurface
    input	string	sssmodel	"SSS Mode"
    input	float	sssdist	"Subsurface Distance"
    input	vector	ssscolor	"Subsurface Color"
    input	float	sssphase	"Scattering Phase"
    input	float	sheen	Sheen
    input	float	sheentint	"Sheen Tint"
    input	vector	emitcolor	"Emission Color"
    input	float	emitint	"Emission Intensity"
    input	int	emitillum	"Emission Illuminates Objects"
    input	float	opac	"Opacity Scale"
    input	vector	opaccolor	"Opacity Color"
    input	int	fakecausticsenabled	Enable
    input	float	fakecausticstransmit	"Transmission Tint"
    input	float	fakecausticsshadow	"Shadow Contour"
    input	float	fakecausticsopacity	"Shadow Opacity"
    input	int	basecolor_useTexture	"Use Texture"
    input	string	basecolor_texture	Texture
    input	float	basecolor_textureIntensity	"Tint Intensity"
    input	string	basecolor_textureWrap	Wrap
    input	string	basecolor_textureColorSpace	"Source Color Space"
    input	int	metallic_useTexture	"Use Texture"
    input	string	metallic_texture	Texture
    input	int	metallic_monoChannel	Channel
    input	string	metallic_textureWrap	Wrap
    input	string	metallic_textureColorSpace	"Source Color Space"
    input	int	transparency_useTexture	"Use Texture"
    input	string	transparency_texture	Texture
    input	int	transparency_monoChannel	Channel
    input	string	transparency_textureWrap	Wrap
    input	string	transparency_textureColorSpace	"Source Color Space"
    input	int	ior_useTexture	"Use Texture"
    input	string	ior_texture	Texture
    input	int	ior_monoChannel	Channel
    input	string	ior_textureWrap	Wrap
    input	string	ior_textureColorSpace	"Source Color Space"
    input	int	transcolor_useTexture	"Use Texture"
    input	string	transcolor_texture	Texture
    input	float	transcolor_textureIntensity	"Tint Intensity"
    input	string	transcolor_textureWrap	Wrap
    input	string	transcolor_textureColorSpace	"Source Color Space"
    input	int	transdist_useTexture	"Use Texture"
    input	string	transdist_texture	Texture
    input	int	transdist_monoChannel	Channel
    input	string	transdist_textureWrap	Wrap
    input	string	transdist_textureColorSpace	"Source Color Space"
    input	int	dispersion_useTexture	"Use Texture"
    input	string	dispersion_texture	Texture
    input	int	dispersion_monoChannel	Channel
    input	string	dispersion_textureWrap	Wrap
    input	string	dispersion_textureColorSpace	"Source Color Space"
    input	int	reflect_useTexture	"Use Texture"
    input	string	reflect_texture	Texture
    input	int	reflect_monoChannel	Channel
    input	string	reflect_textureWrap	Wrap
    input	string	reflect_textureColorSpace	"Source Color Space"
    input	int	reflecttint_useTexture	"Use Texture"
    input	string	reflecttint_texture	Texture
    input	int	reflecttint_monoChannel	Channel
    input	string	reflecttint_textureWrap	Wrap
    input	string	reflecttint_textureColorSpace	"Source Color Space"
    input	int	rough_useTexture	"Use Texture"
    input	string	rough_texture	Texture
    input	int	rough_monoChannel	Channel
    input	string	rough_textureWrap	Wrap
    input	string	rough_textureColorSpace	"Source Color Space"
    input	int	aniso_useTexture	"Use Texture"
    input	string	aniso_texture	Texture
    input	int	aniso_monoChannel	Channel
    input	string	aniso_textureWrap	Wrap
    input	string	aniso_textureColorSpace	"Source Color Space"
    input	int	anisodir_useTexture	"Use Texture"
    input	string	anisodir_texture	Texture
    input	int	anisodir_monoChannel	Channel
    input	string	anisodir_textureWrap	Wrap
    input	string	anisodir_textureColorSpace	"Source Color Space"
    input	string	anisodir_textureFilter	"Filter Type"
    input	int	sss_useTexture	"Use Texture"
    input	string	sss_texture	Texture
    input	int	sss_monoChannel	Channel
    input	string	sss_textureWrap	Wrap
    input	string	sss_textureColorSpace	"Source Color Space"
    input	int	sssdist_useTexture	"Use Texture"
    input	string	sssdist_texture	Texture
    input	int	sssdist_monoChannel	Channel
    input	string	sssdist_textureWrap	Wrap
    input	string	sssdist_textureColorSpace	"Source Color Space"
    input	int	ssscolor_useTexture	"Use Texture"
    input	string	ssscolor_texture	Texture
    input	string	ssscolor_textureWrap	Wrap
    input	string	ssscolor_textureColorSpace	"Source Color Space"
    input	int	sheen_useTexture	"Use Texture"
    input	string	sheen_texture	Texture
    input	int	sheen_monoChannel	Channel
    input	string	sheen_textureWrap	Wrap
    input	string	sheen_textureColorSpace	"Source Color Space"
    input	int	sheentint_useTexture	"Use Texture"
    input	string	sheentint_texture	Map
    input	int	sheentint_monoChannel	Channel
    input	string	sheentint_textureWrap	Wrap
    input	string	sheentint_textureColorSpace	"Source Color Space"
    input	int	coat_useTexture	"Use Texture"
    input	string	coat_texture	Texture
    input	int	coat_monoChannel	Channel
    input	string	coat_textureWrap	Wrap
    input	string	coat_textureColorSpace	"Source Color Space"
    input	int	coatrough_useTexture	"Use Texture"
    input	string	coatrough_texture	Texture
    input	int	coatrough_monoChannel	Channel
    input	string	coatrough_textureWrap	Wrap
    input	string	coatrough_textureColorSpace	"Source Color Space"
    input	int	emitcolor_useTexture	"Use Texture"
    input	string	emitcolor_texture	Texture
    input	float	emitcolor_textureIntensity	"Tint Intensity"
    input	string	emitcolor_textureWrap	Wrap
    input	string	emitcolor_textureColorSpace	"Source Color Space"
    input	int	opaccolor_useTexture	"Use Texture"
    input	string	opaccolor_texture	Texture
    input	string	opaccolor_textureWrap	Wrap
    input	float	opaccolor_textureIntensity	"Tint Intensity"
    input	string	opaccolor_textureColorSpace	"Source Color Space"
    input	string	surface_textureFilter	Filter
    input	float	surface_textureFilterWidth	"Filter Width"
    input	int	baseBumpAndNormal_enable	Enable
    input	string	baseBumpAndNormal_type	"Texture Type"
    input	string	baseBump_colorSpace	"Texture Color Space"
    input	float	baseBump_bumpScale	"Effect Scale"
    input	string	baseBump_bumpTexture	"Texture Path"
    input	string	baseBump_wrap	Wrap
    input	string	baseBump_filter	Filter
    input	float	baseBump_filterWidth	"Filter Width"
    input	int	baseBump_channel	Channel
    input	string	baseBump_imagePlane	"Image Plane"
    input	string	baseNormal_colorspace	"Texture Color Space"
    input	string	baseNormal_vectorSpace	"Vector Space"
    input	float	baseNormal_scale	"Effect Scale"
    input	string	baseNormal_texture	"Texture Path"
    input	string	baseNormal_wrap	Wrap
    input	string	baseNormal_filter	Filter
    input	float	baseNormal_filterWidth	"Filter Width"
    input	int	baseNormal_channel	Channel
    input	string	baseNormal_imagePlane	"Image Plane"
    input	int	baseNormal_space	"Normal Space"
    input	int	baseNormal_flipX	"Flip X"
    input	int	baseNormal_flipY	"Flip Y"
    input	int	separateCoatNormals	"Separate Coat Normals"
    input	int	coatBumpAndNormal_enable	Enable
    input	string	coatBumpAndNormal_type	"Texture Type"
    input	string	coatBump_colorSpace	"Texture Color Space"
    input	float	coatBump_bumpScale	"Effect Scale"
    input	string	coatBump_bumpTexture	"Texture Path"
    input	string	coatBump_wrap	Wrap
    input	string	coatBump_filter	Filter
    input	float	coatBump_filterWidth	"Filter Width"
    input	int	coatBump_channel	Channel
    input	string	coatBump_imagePlane	"Image Plane"
    input	string	coatNormal_colorspace	"Texture Color Space"
    input	string	coatNormal_vectorSpace	"Vector Space"
    input	float	coatNormal_scale	"Effect Scale"
    input	string	coatNormal_texture	"Texture Path"
    input	string	coatNormal_wrap	Wrap
    input	string	coatNormal_filter	Filter
    input	float	coatNormal_filterWidth	"Filter Width"
    input	int	coatNormal_channel	Channel
    input	string	coatNormal_imagePlane	"Image Plane"
    input	int	coatNormal_space	"Normal Space"
    input	int	coatNormal_flipX	"Flip X"
    input	int	coatNormal_flipY	"Flip Y"
    input	int	dispInput_enable	"Enable Input Displacement"
    input	float	dispInput_max	"Maximum Displacement"
    input	string	dispInput_vectorspace	"Vector Space"
    input	int	dispTex_enable	"Enable Texture Displacement"
    input	string	dispTex_type	"Texture Type"
    input	string	dispTex_colorSpace	"Texture Color Space"
    input	string	dispTex_vectorSpace	"Vector Space"
    input	string	dispTex_channelOrder	"Channel Order"
    input	float	dispTex_offset	Offset
    input	float	dispTex_scale	"Effect Scale"
    input	string	dispTex_texture	"Texture Path"
    input	int	dispTex_channel	Channel
    input	string	dispTex_wrap	Wrap
    input	string	dispTex_filter	Filter
    input	float	dispTex_filterWidth	"Filter Width"
    input	int	dispNoise_enable	"Enable Noise Displacement"
    input	string	dispNoise_type	"Noise Type"
    input	vector	dispNoise_freq	Frequency
    input	vector	dispNoise_offset	Offset
    input	float	dispNoise_amp	Amplitude
    input	float	dispNoise_rough	Roughness
    input	float	dispNoise_atten	Attenuation
    input	int	dispNoise_turb	Turbulence
    input	string	difflabel	Diffuse
    input	string	refllabel	Reflection
    input	string	refractlabel	Refraction
    input	string	coatlabel	"Coat Reflection"
    input	string	ssslabel	Subsurface
    input	vector2	uvtrans	Translate
    input	float	uvrot	Rotate
    input	vector2	uvscale	Scale
    input	vector	baseN	""
    input	vector	coatN	""
    input	float	disp	"Normal Displacement"
    input	vector	vdisp	"Vector Displacement"
    input	int	opacpointalpha	"Use Point Alpha"
    input	int	roundedEdge_enable	""
    input	float	roundedEdge_radius	"Round Edge Radius"
    input	int	roundedEdge_mode	"Round Edge Mode"
    input	int	opacpackedalpha	"Use Packed Alpha"
    input	vector2	st	""
    input	int	basecolor_useTextureAlpha	"Use Texture Alpha"
    input	int	occlusion_useTexture	"Use Texture"
    input	string	occlusion_texture	Texture
    input	float	occlusion_textureIntensity	"Tint Intensity"
    input	string	occlusion_textureWrap	Wrap
    input	string	occlusion_textureColorSpace	"Source Color Space"
    input	string	alphablendmode	"Alpha Mode"
    input	float	alphacutoff	"Alpha Cutoff"
    input	int	emitcolor_usePointColor	"Use Point Color"
    input	int	ssscolor_usePointColor	"Use Point Color"
    input	int	transcolor_usePointColor	"Use Point Color"
    output	surface	surface	surface
    output	displacement	displacement	displacement
    output	struct_ShaderLayer	layer	""
    inputflags	uv	2
    inputflags	basecolor	2
    inputflags	albedomult	2
    inputflags	basecolor_usePointColor	2
    inputflags	basecolor_usePackedColor	2
    inputflags	frontface	2
    inputflags	ior	2
    inputflags	rough	2
    inputflags	aniso	2
    inputflags	anisodir	2
    inputflags	metallic	2
    inputflags	reflect	2
    inputflags	reflecttint	2
    inputflags	coat	2
    inputflags	coatrough	2
    inputflags	transparency	2
    inputflags	transcolor	2
    inputflags	transdist	2
    inputflags	dispersion	2
    inputflags	priority	2
    inputflags	sss	2
    inputflags	sssmodel	2
    inputflags	sssdist	2
    inputflags	ssscolor	2
    inputflags	sssphase	2
    inputflags	sheen	2
    inputflags	sheentint	2
    inputflags	emitcolor	2
    inputflags	emitint	2
    inputflags	emitillum	2
    inputflags	opac	2
    inputflags	opaccolor	2
    inputflags	fakecausticsenabled	2
    inputflags	fakecausticstransmit	2
    inputflags	fakecausticsshadow	2
    inputflags	fakecausticsopacity	2
    inputflags	basecolor_useTexture	2
    inputflags	basecolor_texture	2
    inputflags	basecolor_textureIntensity	2
    inputflags	basecolor_textureWrap	2
    inputflags	basecolor_textureColorSpace	2
    inputflags	metallic_useTexture	2
    inputflags	metallic_texture	2
    inputflags	metallic_monoChannel	2
    inputflags	metallic_textureWrap	2
    inputflags	metallic_textureColorSpace	2
    inputflags	transparency_useTexture	2
    inputflags	transparency_texture	2
    inputflags	transparency_monoChannel	2
    inputflags	transparency_textureWrap	2
    inputflags	transparency_textureColorSpace	2
    inputflags	ior_useTexture	2
    inputflags	ior_texture	2
    inputflags	ior_monoChannel	2
    inputflags	ior_textureWrap	2
    inputflags	ior_textureColorSpace	2
    inputflags	transcolor_useTexture	2
    inputflags	transcolor_texture	2
    inputflags	transcolor_textureIntensity	2
    inputflags	transcolor_textureWrap	2
    inputflags	transcolor_textureColorSpace	2
    inputflags	transdist_useTexture	2
    inputflags	transdist_texture	2
    inputflags	transdist_monoChannel	2
    inputflags	transdist_textureWrap	2
    inputflags	transdist_textureColorSpace	2
    inputflags	dispersion_useTexture	2
    inputflags	dispersion_texture	2
    inputflags	dispersion_monoChannel	2
    inputflags	dispersion_textureWrap	2
    inputflags	dispersion_textureColorSpace	2
    inputflags	reflect_useTexture	2
    inputflags	reflect_texture	2
    inputflags	reflect_monoChannel	2
    inputflags	reflect_textureWrap	2
    inputflags	reflect_textureColorSpace	2
    inputflags	reflecttint_useTexture	2
    inputflags	reflecttint_texture	2
    inputflags	reflecttint_monoChannel	2
    inputflags	reflecttint_textureWrap	2
    inputflags	reflecttint_textureColorSpace	2
    inputflags	rough_useTexture	2
    inputflags	rough_texture	2
    inputflags	rough_monoChannel	2
    inputflags	rough_textureWrap	2
    inputflags	rough_textureColorSpace	2
    inputflags	aniso_useTexture	2
    inputflags	aniso_texture	2
    inputflags	aniso_monoChannel	2
    inputflags	aniso_textureWrap	2
    inputflags	aniso_textureColorSpace	2
    inputflags	anisodir_useTexture	2
    inputflags	anisodir_texture	2
    inputflags	anisodir_monoChannel	2
    inputflags	anisodir_textureWrap	2
    inputflags	anisodir_textureColorSpace	2
    inputflags	anisodir_textureFilter	2
    inputflags	sss_useTexture	2
    inputflags	sss_texture	2
    inputflags	sss_monoChannel	2
    inputflags	sss_textureWrap	2
    inputflags	sss_textureColorSpace	2
    inputflags	sssdist_useTexture	2
    inputflags	sssdist_texture	2
    inputflags	sssdist_monoChannel	2
    inputflags	sssdist_textureWrap	2
    inputflags	sssdist_textureColorSpace	2
    inputflags	ssscolor_useTexture	2
    inputflags	ssscolor_texture	2
    inputflags	ssscolor_textureWrap	2
    inputflags	ssscolor_textureColorSpace	2
    inputflags	sheen_useTexture	2
    inputflags	sheen_texture	2
    inputflags	sheen_monoChannel	2
    inputflags	sheen_textureWrap	2
    inputflags	sheen_textureColorSpace	2
    inputflags	sheentint_useTexture	2
    inputflags	sheentint_texture	2
    inputflags	sheentint_monoChannel	2
    inputflags	sheentint_textureWrap	2
    inputflags	sheentint_textureColorSpace	2
    inputflags	coat_useTexture	2
    inputflags	coat_texture	2
    inputflags	coat_monoChannel	2
    inputflags	coat_textureWrap	2
    inputflags	coat_textureColorSpace	2
    inputflags	coatrough_useTexture	2
    inputflags	coatrough_texture	2
    inputflags	coatrough_monoChannel	2
    inputflags	coatrough_textureWrap	2
    inputflags	coatrough_textureColorSpace	2
    inputflags	emitcolor_useTexture	2
    inputflags	emitcolor_texture	2
    inputflags	emitcolor_textureIntensity	2
    inputflags	emitcolor_textureWrap	2
    inputflags	emitcolor_textureColorSpace	2
    inputflags	opaccolor_useTexture	2
    inputflags	opaccolor_texture	2
    inputflags	opaccolor_textureWrap	2
    inputflags	opaccolor_textureIntensity	2
    inputflags	opaccolor_textureColorSpace	2
    inputflags	surface_textureFilter	2
    inputflags	surface_textureFilterWidth	2
    inputflags	baseBumpAndNormal_enable	2
    inputflags	baseBumpAndNormal_type	2
    inputflags	baseBump_colorSpace	2
    inputflags	baseBump_bumpScale	2
    inputflags	baseBump_bumpTexture	2
    inputflags	baseBump_wrap	2
    inputflags	baseBump_filter	2
    inputflags	baseBump_filterWidth	2
    inputflags	baseBump_channel	2
    inputflags	baseBump_imagePlane	2
    inputflags	baseNormal_colorspace	2
    inputflags	baseNormal_vectorSpace	2
    inputflags	baseNormal_scale	2
    inputflags	baseNormal_texture	2
    inputflags	baseNormal_wrap	2
    inputflags	baseNormal_filter	2
    inputflags	baseNormal_filterWidth	2
    inputflags	baseNormal_channel	2
    inputflags	baseNormal_imagePlane	2
    inputflags	baseNormal_space	2
    inputflags	baseNormal_flipX	2
    inputflags	baseNormal_flipY	2
    inputflags	separateCoatNormals	2
    inputflags	coatBumpAndNormal_enable	2
    inputflags	coatBumpAndNormal_type	2
    inputflags	coatBump_colorSpace	2
    inputflags	coatBump_bumpScale	2
    inputflags	coatBump_bumpTexture	2
    inputflags	coatBump_wrap	2
    inputflags	coatBump_filter	2
    inputflags	coatBump_filterWidth	2
    inputflags	coatBump_channel	2
    inputflags	coatBump_imagePlane	2
    inputflags	coatNormal_colorspace	2
    inputflags	coatNormal_vectorSpace	2
    inputflags	coatNormal_scale	2
    inputflags	coatNormal_texture	2
    inputflags	coatNormal_wrap	2
    inputflags	coatNormal_filter	2
    inputflags	coatNormal_filterWidth	2
    inputflags	coatNormal_channel	2
    inputflags	coatNormal_imagePlane	2
    inputflags	coatNormal_space	2
    inputflags	coatNormal_flipX	2
    inputflags	coatNormal_flipY	2
    inputflags	dispInput_enable	2
    inputflags	dispInput_max	2
    inputflags	dispInput_vectorspace	2
    inputflags	dispTex_enable	2
    inputflags	dispTex_type	2
    inputflags	dispTex_colorSpace	2
    inputflags	dispTex_vectorSpace	2
    inputflags	dispTex_channelOrder	2
    inputflags	dispTex_offset	2
    inputflags	dispTex_scale	2
    inputflags	dispTex_texture	2
    inputflags	dispTex_channel	2
    inputflags	dispTex_wrap	2
    inputflags	dispTex_filter	2
    inputflags	dispTex_filterWidth	2
    inputflags	dispNoise_enable	2
    inputflags	dispNoise_type	2
    inputflags	dispNoise_freq	2
    inputflags	dispNoise_offset	2
    inputflags	dispNoise_amp	2
    inputflags	dispNoise_rough	2
    inputflags	dispNoise_atten	2
    inputflags	dispNoise_turb	2
    inputflags	difflabel	2
    inputflags	refllabel	2
    inputflags	refractlabel	2
    inputflags	coatlabel	2
    inputflags	ssslabel	2
    inputflags	uvtrans	2
    inputflags	uvrot	2
    inputflags	uvscale	2
    inputflags	baseN	2
    inputflags	coatN	2
    inputflags	disp	2
    inputflags	vdisp	2
    inputflags	opacpointalpha	2
    inputflags	roundedEdge_enable	2
    inputflags	roundedEdge_radius	2
    inputflags	roundedEdge_mode	2
    inputflags	opacpackedalpha	2
    inputflags	st	2
    inputflags	basecolor_useTextureAlpha	2
    inputflags	occlusion_useTexture	2
    inputflags	occlusion_texture	2
    inputflags	occlusion_textureIntensity	2
    inputflags	occlusion_textureWrap	2
    inputflags	occlusion_textureColorSpace	2
    inputflags	alphablendmode	2
    inputflags	alphacutoff	2
    inputflags	emitcolor_usePointColor	2
    inputflags	ssscolor_usePointColor	2
    inputflags	transcolor_usePointColor	2
    outputflags	layer	2
    signature	"Default Inputs"	default	{ vector vector float int int int float float float float float float float float float float vector float float int float string float vector float float float vector float int float vector int float float float int string float string string int string int string string int string int string string int string int string string int string float string string int string int string string int string int string string int string int string string int string int string string int string int string string int string int string string int string int string string string int string int string string int string int string string int string string string int string int string string int string int string string int string int string string int string int string string int string float string string int string string float string string float int string string float string string string float int string string string float string string string float int string int int int int int string string float string string string float int string string string float string string string float int string int int int int float string int string string string string float float string int string string float int string vector vector float float float int string string string string string vector2 float vector2 vector vector float vector int int float int int vector2 int int string float string string string float int int int surface displacement struct_ShaderLayer }

    outputoverrides	default
    {
	___begin	auto
			(0)
	___begin	auto
			(0)
	___begin	auto
			(0)
    }

    help {
	""
    }

    parm {
        name    "specmodel"
        label   "OpenGL Specular Model"
        type    string
        invisible
        default { "ggx" }
        parmtag { "ogl_coat_model" "1" }
        parmtag { "ogl_spec_model" "1" }
    }
    parm {
        name    "coatspecmodel"
        label   "OpenGL Coat Specular Model"
        type    string
        invisible
        default { "ggx" }
        parmtag { "ogl_coat_model" "1" }
    }
    parm {
        name    "specular_tint"
        label   "OpenGL Specular Tint"
        type    float
        invisible
        default { [ "(1-ch(\"metallic\"))*ch(\"reflecttint\")" hscript-expr ] }
        range   { 0! 1! }
        parmtag { "units" "" }
    }
    group {
        name    "diffuse_folder_15"
        label   "Surface"

        groupcollapsible {
            name    "folder7"
            label   "Basic"
            parmtag { "group_default" "1" }

            parm {
                name    "basecolor"
                label   "Base Color"
                type    color
                size    3
                default { "0.2" "0.2" "0.2" }
                disablewhen "{ basecolor_useBaseColor == 0 } { diff_enable == 0 }"
                range   { 0 1 }
                parmtag { "ogl_amb" "1" }
                parmtag { "ogl_diff" "1" }
                parmtag { "ogl_spec" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "albedomult"
                label   "Albedo Multiplier"
                type    float
                default { "1" }
                range   { 0 1 }
                parmtag { "ogl_amb_intensity" "1" }
                parmtag { "ogl_diff_intensity" "1" }
                parmtag { "ogl_spec_intensity" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "basecolor_usePointColor"
                label   "Use Point Color"
                type    toggle
                default { "on" }
                disablewhen "{ diff_enable == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "basecolor_usePackedColor"
                label   "Use Packed Color"
                type    toggle
                default { "off" }
                disablewhen "{ diff_enable == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "frontface"
                label   "Shade Both Sides As Front"
                type    toggle
                default { "on" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupcollapsible {
            name    "folder4"
            label   "Specular"
            parmtag { "group_default" "1" }

            parm {
                name    "ior"
                label   "IOR"
                type    float
                default { "1.5" }
                range   { 1 3 }
                parmtag { "ogl_ior" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "rough"
                label   "Roughness"
                type    float
                default { "0.3" }
                hidewhen "{ useBaseColor == 0 }"
                range   { 0 1 }
                parmtag { "ogl_diff_rough" "1" }
                parmtag { "ogl_rough" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "aniso"
                label   "Anisotropy"
                type    float
                default { "0" }
                hidewhen "{ useBaseColor == 0 }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "anisodir"
                label   "Anisotropy Direction"
                type    float
                default { "0" }
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            groupcollapsible {
                name    "folder12"
                label   "Reflection"
                parmtag { "group_default" "1" }

                parm {
                    name    "metallic"
                    label   "Metallic"
                    type    float
                    default { "0" }
                    hidewhen "{ useBaseColor == 0 }"
                    range   { 0 1 }
                    parmtag { "ogl_metallic" "1" }
                    parmtag { "parmvop" "1" }
                    parmtag { "shaderparmcontexts" "surface" }
                }
                parm {
                    name    "reflect"
                    label   "Reflectivity"
                    type    float
                    default { "1" }
                    hidewhen "{ useBaseColor == 0 }"
                    range   { 0 1 }
                    parmtag { "ogl_reflect" "1" }
                    parmtag { "parmvop" "1" }
                    parmtag { "shaderparmcontexts" "surface" }
                }
                parm {
                    name    "reflecttint"
                    label   "Reflect Tint"
                    type    float
                    default { "0" }
                    hidewhen "{ useBaseColor == 0 }"
                    range   { 0 1 }
                    parmtag { "ogl_spectint" "1" }
                    parmtag { "parmvop" "1" }
                    parmtag { "shaderparmcontexts" "surface" }
                }
                parm {
                    name    "coat"
                    label   "Coat"
                    type    float
                    default { "0" }
                    hidewhen "{ useBaseColor == 0 }"
                    range   { 0 1 }
                    parmtag { "ogl_coat_intensity" "1" }
                    parmtag { "parmvop" "1" }
                    parmtag { "shaderparmcontexts" "surface" }
                }
                parm {
                    name    "coatrough"
                    label   "Coat Roughness"
                    type    float
                    default { "0" }
                    hidewhen "{ useBaseColor == 0 }"
                    range   { 0 1 }
                    parmtag { "ogl_coat_rough" "1" }
                    parmtag { "parmvop" "1" }
                    parmtag { "shaderparmcontexts" "surface" }
                }
            }

            groupcollapsible {
                name    "folder13"
                label   "Transparency"
                parmtag { "group_default" "1" }

                parm {
                    name    "transparency"
                    label   "Transparency"
                    type    float
                    default { "0" }
                    range   { 0 1 }
                    parmtag { "ogl_transparency" "1" }
                    parmtag { "parmvop" "1" }
                    parmtag { "shaderparmcontexts" "surface" }
                }
                parm {
                    name    "transcolor"
                    label   "Transmission Color"
                    type    color
                    size    3
                    default { "1" "1" "1" }
                    disablewhen "{ transcolor_useBaseColor == 0 } { diff_enable == 0 }"
                    range   { 0 1 }
                    parmtag { "parmvop" "1" }
                    parmtag { "shaderparmcontexts" "surface" }
                }
                parm {
                    name    "transdist"
                    label   "At Distance"
                    type    float
                    default { "0.1" }
                    hidewhen "{ useBaseColor == 0 }"
                    range   { 0 1 }
                    parmtag { "parmvop" "1" }
                    parmtag { "shaderparmcontexts" "surface" }
                }
                parm {
                    name    "dispersion"
                    label   "Dispersion"
                    type    float
                    default { "0" }
                    hidewhen "{ useBaseColor == 0 }"
                    range   { 0 1 }
                    parmtag { "parmvop" "1" }
                    parmtag { "shaderparmcontexts" "surface" }
                }
                parm {
                    name    "priority"
                    label   "Surface Priority"
                    type    integer
                    default { "0" }
                    range   { 0 10 }
                    parmtag { "parmvop" "1" }
                    parmtag { "shaderparmcontexts" "surface" }
                }
                parm {
                    name    "transcolor_usePointColor"
                    label   "Use Point Color"
                    type    toggle
                    default { "off" }
                    parmtag { "parmvop" "1" }
                    parmtag { "shaderparmcontexts" "surface" }
                }
            }

        }

        groupcollapsible {
            name    "folder8"
            label   "Subsurface Scattering"
            parmtag { "group_default" "1" }

            parm {
                name    "sss"
                label   "Subsurface"
                type    float
                default { "0" }
                hidewhen "{ useBaseColor == 0 }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "ssscolor"
                label   "Subsurface Color"
                type    color
                size    3
                default { "1" "1" "1" }
                hidewhen "{ useBaseColor == 0 }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sssmodel"
                label   "SSS Mode"
                type    string
                default { "pbrsss" }
                menu {
                    "pbrsss"        "Full Subsurface Scattering"
                    "pbrsingles"    "Single Scattering"
                    "pbrrwalksss"   "Random Walk (Karma)"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sssdist"
                label   "Subsurface Distance"
                type    float
                default { "0.1" }
                hidewhen "{ useBaseColor == 0 }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sssphase"
                label   "Scattering Phase"
                type    float
                default { "0" }
                disablewhen "{ sssmodel == pbrsss }"
                range   { -1 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "ssscolor_usePointColor"
                label   "Use Point Color"
                type    toggle
                default { "off" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupcollapsible {
            name    "folder11"
            label   "Sheen"
            parmtag { "group_default" "1" }

            parm {
                name    "sheen"
                label   "Sheen"
                type    float
                default { "0" }
                hidewhen "{ useBaseColor == 0 }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sheentint"
                label   "Sheen Tint"
                type    float
                default { "0" }
                hidewhen "{ useBaseColor == 0 }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupcollapsible {
            name    "folder9"
            label   "Emission"
            parmtag { "group_default" "1" }

            parm {
                name    "emitint"
                label   "Emission Intensity"
                type    float
                default { "0" }
                range   { 0 10 }
                parmtag { "ogl_emit_intensity" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "emitcolor"
                label   "Emission Color"
                type    color
                size    3
                default { "1" "1" "1" }
                range   { 0 1 }
                parmtag { "ogl_emit" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "emitcolor_usePointColor"
                label   "Use Point Color"
                type    toggle
                default { "off" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "emitillum"
                label   "Emission Illuminates Objects"
                type    toggle
                default { "on" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

    }

    group {
        name    "diffuse_folder_15_1"
        label   "Opacity"

        groupsimple {
            name    "folder15"
            label   "Opacity"

            parm {
                name    "opac"
                label   "Opacity Scale"
                type    float
                default { "1" }
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "opaccolor"
                label   "Opacity Color"
                type    color
                size    3
                default { "1" "1" "1" }
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "opacpointalpha"
                label   "Use Point Alpha"
                type    toggle
                default { "on" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "opacpackedalpha"
                label   "Use Packed Alpha"
                type    toggle
                default { "off" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder6"
            label   "Fake Caustics"

            parm {
                name    "fakecausticsenabled"
                label   "Enable"
                type    toggle
                default { "off" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "fakecausticstransmit"
                label   "Transmission Tint"
                type    float
                default { "1" }
                disablewhen "{ fakecausticsenabled == 0 }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "fakecausticsshadow"
                label   "Shadow Contour"
                type    float
                default { "1" }
                disablewhen "{ fakecausticsenabled == 0 }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "fakecausticsopacity"
                label   "Shadow Opacity"
                type    float
                default { "0" }
                disablewhen "{ fakecausticsenabled == 0 }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder17"
            label   "Masking"

            parm {
                name    "alphablendmode"
                label   "Alpha Mode"
                type    string
                default { "blend" }
                menu {
                    "blend"     "Blend"
                    "mask"      "Mask"
                    "opaque"    "Opaque"
                }
                parmtag { "ogl_alpha_mode" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "alphacutoff"
                label   "Alpha Cutoff"
                type    float
                default { "0.5" }
                disablewhen "{ alphablendmode != mask }"
                range   { 0 1 }
                parmtag { "ogl_alpha_cutoff" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

    }

    group {
        name    "diffuse_folder_15_2"
        label   "Textures"

        groupsimple {
            name    "folder54"
            label   "Base Color"
            grouptag { "group_type" "simple" }

            parm {
                name    "basecolor_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ diff_enable == 0 }"
                parmtag { "ogl_use_tex1" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "basecolor_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ diff_enable == 0 }"
                hidewhen "{ basecolor_useTexture == 0 }"
                parmtag { "ogl_specmap" "1" }
                parmtag { "ogl_tex1" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "basecolor_textureIntensity"
                label   "Tint Intensity"
                type    float
                default { "1" }
                disablewhen "{ diff_enable == 0 }"
                hidewhen "{ basecolor_useTexture == 0 }"
                range   { 0 2 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "basecolor_textureWrap"
                label   "Wrap"
                type    string
                default { "repeat" }
                disablewhen "{ diff_enable == 0 }"
                hidewhen "{ basecolor_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "ogl_tex_vwrap1" "1" }
                parmtag { "ogl_tex_wrap1" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "basecolor_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "auto" }
                disablewhen "{ diff_enable == 0 }"
                hidewhen "{ basecolor_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "basecolor_useTextureAlpha"
                label   "Use Texture Alpha"
                type    toggle
                default { "off" }
                disablewhen "{ diff_enable == 0 }"
                hidewhen "{ basecolor_useTexture == 0 }"
                parmtag { "ogl_use_diffuse_map_alpha" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder1"
            label   "IOR"

            parm {
                name    "ior_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "ior_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ ior_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "ior_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ ior_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "ior_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ ior_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "ior_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ ior_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder227"
            label   "Roughness"
            grouptag { "group_type" "simple" }

            parm {
                name    "rough_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "ogl_use_roughmap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "rough_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ rough_useTexture == 0 }"
                parmtag { "ogl_roughmap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "rough_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ rough_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "ogl_roughmap_comp" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "rough_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ rough_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "rough_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ rough_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder228"
            label   "Anisotropy"
            grouptag { "group_type" "simple" }

            parm {
                name    "aniso_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "aniso_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ aniso_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "aniso_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ aniso_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "aniso_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ aniso_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "aniso_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ aniso_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder229"
            label   "Anisotropy Direction"
            grouptag { "group_type" "simple" }

            parm {
                name    "anisodir_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "script_callback" "python -c 'hou.phm().toggle_anisodir_texture(hou.pwd())'" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "anisodir_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ anisodir_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "anisodir_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ anisodir_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "anisodir_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ anisodir_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "anisodir_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ anisodir_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "" }
            }
            parm {
                name    "anisodir_textureFilter"
                label   "Filter Type"
                type    string
                default { "point" }
                hidewhen "{ anisodir_useTexture == 0 }"
                menu {
                    "box"       "Box"
                    "gauss"     "Gaussian"
                    "bartlett"  "Bartlett/Triangular"
                    "sinc"      "Sinc Sharpening"
                    "hanning"   "Hanning"
                    "blackman"  "Blackman"
                    "catrom"    "Catmull-Rom"
                    "mitchell"  "Mitchell"
                    "point"     "Point (No Filter)"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder55"
            label   "Metallic"
            grouptag { "group_type" "simple" }

            parm {
                name    "metallic_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "ogl_use_metallicmap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "metallic_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ metallic_useTexture == 0 }"
                parmtag { "ogl_metallicmap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "metallic_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ metallic_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "ogl_metallicmap_comp" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "metallic_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ metallic_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "metallic_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ metallic_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder16"
            label   "Reflectivity"

            parm {
                name    "reflect_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "ogl_use_reflect_map" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "reflect_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ reflect_useTexture == 0 }"
                parmtag { "ogl_reflect_map" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "reflect_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ reflect_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "ogl_reflect_map_comp" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "reflect_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ reflect_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "reflect_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ reflect_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder226"
            label   "Reflect Tint"
            grouptag { "group_type" "simple" }

            parm {
                name    "reflecttint_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "reflecttint_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ reflecttint_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "reflecttint_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ reflecttint_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "reflecttint_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ reflecttint_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "reflecttint_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ reflecttint_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder233"
            label   "Coat"
            grouptag { "group_type" "simple" }

            parm {
                name    "coat_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "ogl_use_coat_intensity_map" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coat_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ coat_useTexture == 0 }"
                parmtag { "ogl_coat_intensity_map" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coat_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ coat_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "ogl_coat_intensity_comp" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coat_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ coat_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coat_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ coat_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder234"
            label   "Coat Roughness"
            grouptag { "group_type" "simple" }

            parm {
                name    "coatrough_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "ogl_use_coat_roughness_map" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatrough_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ coatrough_useTexture == 0 }"
                parmtag { "ogl_coat_roughness_map" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatrough_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ coatrough_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "ogl_coat_roughness_comp" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatrough_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ coatrough_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatrough_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ coatrough_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder2"
            label   "Transparency"

            parm {
                name    "transparency_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transparency_texture"
                label   "Texture"
                type    image
                default { "" }
                hidewhen "{ transparency_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transparency_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                hidewhen "{ transparency_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transparency_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                hidewhen "{ transparency_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transparency_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                hidewhen "{ transparency_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder5"
            label   "Transmission Color"

            parm {
                name    "transcolor_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ diff_enable == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transcolor_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ diff_enable == 0 }"
                hidewhen "{ transcolor_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transcolor_textureIntensity"
                label   "Tint Intensity"
                type    float
                default { "1" }
                disablewhen "{ diff_enable == 0 }"
                hidewhen "{ transcolor_useTexture == 0 }"
                range   { 0 2 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transcolor_textureWrap"
                label   "Wrap"
                type    string
                default { "repeat" }
                disablewhen "{ diff_enable == 0 }"
                hidewhen "{ transcolor_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transcolor_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "auto" }
                disablewhen "{ diff_enable == 0 }"
                hidewhen "{ transcolor_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder5_1"
            label   "At Distance"

            parm {
                name    "transdist_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transdist_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ transdist_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transdist_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ transdist_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transdist_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ transdist_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "transdist_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ transdist_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder5_2"
            label   "Dispersion"

            parm {
                name    "dispersion_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "dispersion_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ dispersion_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "dispersion_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ dispersion_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "dispersion_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ dispersion_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "dispersion_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ dispersion_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder230"
            label   "Subsurface"
            grouptag { "group_type" "simple" }

            parm {
                name    "sss_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sss_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sss_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sss_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sss_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sss_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sss_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sss_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ sss_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder3"
            label   "Subsurface Scattering Distance"

            parm {
                name    "sssdist_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sssdist_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sssdist_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sssdist_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sssdist_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sssdist_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sssdist_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sssdist_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ sssdist_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder3_1"
            label   "Subsurface Color"

            parm {
                name    "ssscolor_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "ssscolor_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ ssscolor_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "ssscolor_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ ssscolor_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "ssscolor_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ ssscolor_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder231"
            label   "Sheen"
            grouptag { "group_type" "simple" }

            parm {
                name    "sheen_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sheen_texture"
                label   "Texture"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sheen_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sheen_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sheen_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sheen_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sheen_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sheen_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ sheen_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder232"
            label   "Sheen Tint"
            grouptag { "group_type" "simple" }

            parm {
                name    "sheentint_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sheentint_texture"
                label   "Map"
                type    image
                default { "" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sheentint_useTexture == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sheentint_monoChannel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sheentint_useTexture == 0 }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sheentint_textureWrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ refl_enable == 0 } { refl_lights == 0 refl_objs == 0 }"
                hidewhen "{ sheentint_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "sheentint_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "linear" }
                disablewhen "{ refl_enable == 0 }"
                hidewhen "{ sheentint_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "diffuse_folder_14_3"
            label   "Emission"

            parm {
                name    "emitcolor_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                parmtag { "ogl_use_emissionmap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "emitcolor_texture"
                label   "Texture"
                type    image
                default { "" }
                hidewhen "{ emitcolor_useTexture == 0 }"
                parmtag { "ogl_emissionmap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "emitcolor_textureIntensity"
                label   "Tint Intensity"
                type    float
                default { "1" }
                hidewhen "{ emitcolor_useTexture == 0 }"
                range   { 0 2 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "emitcolor_textureWrap"
                label   "Wrap"
                type    string
                default { "repeat" }
                hidewhen "{ emitcolor_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "emitcolor_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "repeat" }
                hidewhen "{ emitcolor_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder14"
            label   "Opacity"

            parm {
                name    "opaccolor_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                parmtag { "ogl_use_opacitymap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "opaccolor_texture"
                label   "Texture"
                type    image
                default { "" }
                hidewhen "{ opaccolor_useTexture == 0 }"
                parmtag { "ogl_opacitymap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "opaccolor_textureWrap"
                label   "Wrap"
                type    string
                default { "repeat" }
                hidewhen "{ opaccolor_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "opaccolor_textureIntensity"
                label   "Tint Intensity"
                type    float
                default { "1" }
                hidewhen "{ opaccolor_useTexture == 0 }"
                range   { 0 2 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "opaccolor_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "repeat" }
                hidewhen "{ opaccolor_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder18"
            label   "Occlusion"

            parm {
                name    "occlusion_useTexture"
                label   "Use Texture"
                type    toggle
                default { "off" }
                parmtag { "ogl_use_occlusionmap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "occlusion_texture"
                label   "Texture"
                type    image
                default { "" }
                hidewhen "{ occlusion_useTexture == 0 }"
                parmtag { "ogl_occlusionmap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "occlusion_textureWrap"
                label   "Wrap"
                type    string
                default { "repeat" }
                hidewhen "{ occlusion_useTexture == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "ogl_tex_vwrap1" "1" }
                parmtag { "ogl_tex_wrap1" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "occlusion_textureIntensity"
                label   "Tint Intensity"
                type    float
                default { "1" }
                hidewhen "{ occlusion_useTexture == 0 }"
                range   { 0 2 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "occlusion_textureColorSpace"
                label   "Source Color Space"
                type    string
                default { "auto" }
                hidewhen "{ occlusion_useTexture == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder235"
            label   "Sampling"
            grouptag { "group_type" "simple" }

            parm {
                name    "surface_textureFilter"
                label   "Filter"
                type    string
                default { "catrom" }
                menu {
                    "box"       "Box"
                    "gauss"     "Gaussian"
                    "bartlett"  "Bartlett/Triangular"
                    "sinc"      "Sinc Sharpening"
                    "hanning"   "Hanning"
                    "blackman"  "Blackman"
                    "catrom"    "Catmull-Rom"
                    "mitchell"  "Mitchell"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "surface_textureFilterWidth"
                label   "Filter Width"
                type    float
                default { "1" }
                range   { 0 5 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

    }

    group {
        name    "diffuse_folder_15_3"
        label   "Bump & Normals"

        parm {
            name    "roundedEdge_enable"
            label   "roundedEdge_enable"
            type    toggle
            nolabel
            joinnext
            default { "off" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "surface" }
        }
        parm {
            name    "roundedEdge_radius"
            label   "Round Edge Radius"
            type    float
            joinnext
            default { "0.01" }
            disablewhen "{ roundedEdge_enable == 0 }"
            range   { 0 0.1 }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "surface" }
        }
        parm {
            name    "roundedEdge_mode"
            label   "Round Edge Mode"
            type    integer
            nolabel
            default { "0" }
            help    "Edge types to smooth."
            disablewhen "{ roundedEdge_enable == 0 }"
            menu {
                "both"      "Concave and Convex Edges"
                "concave"   "Concave Edges"
                "convex"    "Convex Edges"
            }
            range   { 0 10 }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "surface" }
        }
        group {
            name    "shading_16"
            label   "Base"

            parm {
                name    "baseBumpAndNormal_enable"
                label   "Enable"
                type    toggle
                default { "off" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseBumpAndNormal_type"
                label   "Texture Type"
                type    string
                default { "normal" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                menu {
                    "bump"      "Bump"
                    "normal"    "Normal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseBump_colorSpace"
                label   "Texture Color Space"
                type    string
                default { "linear" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != bump }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseBump_bumpScale"
                label   "Effect Scale"
                type    float
                default { "0.05" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != bump }"
                range   { 0 0.5 }
                parmtag { "ogl_bumpscale" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseBump_bumpTexture"
                label   "Texture Path"
                type    image
                default { "" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != bump }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseBump_wrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != bump }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseBump_filter"
                label   "Filter"
                type    string
                joinnext
                default { "gauss" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != bump }"
                menu {
                    "box"       "Box"
                    "gauss"     "Gaussian"
                    "bartlett"  "Bartlett/Triangular"
                    "sinc"      "Sinc Sharpening"
                    "hanning"   "Hanning"
                    "blackman"  "Blackman"
                    "catrom"    "Catmull-Rom"
                    "mitchell"  "Mitchell"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseBump_filterWidth"
                label   "Filter Width"
                type    float
                default { "1" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != bump }"
                range   { 0 2 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseBump_channel"
                label   "Channel"
                type    integer
                default { "0" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != bump }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseBump_imagePlane"
                label   "Image Plane"
                type    string
                default { "" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != bump }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_colorspace"
                label   "Texture Color Space"
                type    string
                default { "linear" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_vectorSpace"
                label   "Vector Space"
                type    string
                default { "uvtangent" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                menu {
                    "uvtangent" "UV Tangent Space"
                    "object"    "Object Space"
                    "world"     "World Space"
                }
                parmtag { "ogl_normalmap_type" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_scale"
                label   "Effect Scale"
                type    float
                default { "1" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_texture"
                label   "Texture Path"
                type    image
                default { "" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                parmtag { "ogl_normalmap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_wrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_filter"
                label   "Filter"
                type    string
                joinnext
                default { "gauss" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                menu {
                    "box"       "Box"
                    "gauss"     "Gaussian"
                    "bartlett"  "Bartlett/Triangular"
                    "sinc"      "Sinc Sharpening"
                    "hanning"   "Hanning"
                    "blackman"  "Blackman"
                    "catrom"    "Catmull-Rom"
                    "mitchell"  "Mitchell"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_filterWidth"
                label   "Filter Width"
                type    float
                default { "1" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                range   { 0 2 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_channel"
                label   "Channel"
                type    integer
                default { "0" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_imagePlane"
                label   "Image Plane"
                type    string
                default { "" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_space"
                label   "Normal Space"
                type    integer
                default { "0" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                menu {
                    "0" "0 to 1"
                    "1" "-1 to 1"
                }
                range   { 0 10 }
                parmtag { "ogl_normalbias" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_flipX"
                label   "Flip X"
                type    toggle
                default { "off" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                parmtag { "ogl_normalflipx" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseNormal_flipY"
                label   "Flip Y"
                type    toggle
                default { "off" }
                disablewhen "{ baseBumpAndNormal_enable == 0 }"
                hidewhen "{ baseBumpAndNormal_type != normal }"
                parmtag { "ogl_normalflipy" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "baseBump_useTexture"
                label   "OpenGL Use Bump Texture"
                type    toggle
                invisible
                default { [ "ch(\"baseBumpAndNormal_enable\") && strcmp(chs(\"baseBumpAndNormal_type\"), \"bump\") == 0" hscript-expr ] }
                parmtag { "ogl_use_bumpmap" "1" }
            }
            parm {
                name    "baseNormal_useTexture"
                label   "OpenGL Use Normal Texture"
                type    toggle
                invisible
                default { [ "ch(\"baseBumpAndNormal_enable\") && strcmp(chs(\"baseBumpAndNormal_type\"), \"normal\") == 0" hscript-expr ] }
                parmtag { "ogl_use_normalmap" "1" }
            }
        }

        group {
            name    "shading_16_1"
            label   "Coat"

            parm {
                name    "separateCoatNormals"
                label   "Separate Coat Normals"
                type    toggle
                default { "off" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatBumpAndNormal_enable"
                label   "Enable"
                type    toggle
                default { "on" }
                disablewhen "{ separateCoatNormals == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatBumpAndNormal_type"
                label   "Texture Type"
                type    string
                default { "normal" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                menu {
                    "bump"      "Bump"
                    "normal"    "Normal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatBump_colorSpace"
                label   "Texture Color Space"
                type    string
                default { "linear" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != bump }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatBump_bumpScale"
                label   "Effect Scale"
                type    float
                default { "0.05" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != bump }"
                range   { 0 0.5 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatBump_bumpTexture"
                label   "Texture Path"
                type    image
                default { "" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != bump }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatBump_wrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != bump }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatBump_filter"
                label   "Filter"
                type    string
                joinnext
                default { "gauss" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != bump }"
                menu {
                    "box"       "Box"
                    "gauss"     "Gaussian"
                    "bartlett"  "Bartlett/Triangular"
                    "sinc"      "Sinc Sharpening"
                    "hanning"   "Hanning"
                    "blackman"  "Blackman"
                    "catrom"    "Catmull-Rom"
                    "mitchell"  "Mitchell"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatBump_filterWidth"
                label   "Filter Width"
                type    float
                default { "1" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != bump }"
                range   { 0 2 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatBump_channel"
                label   "Channel"
                type    integer
                default { "0" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != bump }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatBump_imagePlane"
                label   "Image Plane"
                type    string
                default { "" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != bump }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_colorspace"
                label   "Texture Color Space"
                type    string
                default { "linear" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_vectorSpace"
                label   "Vector Space"
                type    string
                default { "uvtangent" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                menu {
                    "uvtangent" "UV Tangent Space"
                    "object"    "Object Space"
                    "world"     "World Space"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_scale"
                label   "Effect Scale"
                type    float
                default { "1" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_texture"
                label   "Texture Path"
                type    image
                default { "" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_wrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_filter"
                label   "Filter"
                type    string
                joinnext
                default { "gauss" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                menu {
                    "box"       "Box"
                    "gauss"     "Gaussian"
                    "bartlett"  "Bartlett/Triangular"
                    "sinc"      "Sinc Sharpening"
                    "hanning"   "Hanning"
                    "blackman"  "Blackman"
                    "catrom"    "Catmull-Rom"
                    "mitchell"  "Mitchell"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_filterWidth"
                label   "Filter Width"
                type    float
                default { "1" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                range   { 0 2 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_channel"
                label   "Channel"
                type    integer
                default { "0" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_imagePlane"
                label   "Image Plane"
                type    string
                default { "" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_space"
                label   "Normal Space"
                type    integer
                default { "0" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                menu {
                    "0" "0 to 1"
                    "1" "-1 to 1"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_flipX"
                label   "Flip X"
                type    toggle
                default { "off" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatNormal_flipY"
                label   "Flip Y"
                type    toggle
                default { "off" }
                disablewhen "{ coatBumpAndNormal_enable == 0 } { separateCoatNormals == 0 }"
                hidewhen "{ coatBumpAndNormal_type != normal }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

    }

    group {
        name    "diffuse_folder_15_4"
        label   "Displacement"

        parm {
            name    "shop_disable_displace_shader"
            label   "Disable Displace Shader"
            type    toggle
            invisible
            default { [ "!ch(\"dispInput_enable\") && !ch(\"dispTex_enable\") && !ch(\"dispNoise_enable\")" hscript-expr ] }
            help    "None"
            parmtag { "spare_category" "Shaders" }
        }
        groupsimple {
            name    "folder236"
            label   "General"
            grouptag { "group_type" "simple" }

            parm {
                name    "vm_displacebound"
                label   "Displacement Bound"
                type    float
                default { [ "1.01*ch(\"dispInput_enable\")*ch(\"dispInput_max\") + ch(\"dispTex_enable\")*max(abs((1.0+ch(\"dispTex_offset\"))*ch(\"dispTex_scale\")), abs(ch(\"dispTex_offset\")*ch(\"dispTex_scale\"))) + ch(\"dispNoise_enable\")*abs(ch(\"dispNoise_amp\"))" hscript-expr ] }
                disablewhen "{ enableDispMap == 0 enableNoise == 0 }"
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "" }
            }
            parm {
                name    "vm_truedisplace"
                label   "True Displacements"
                type    toggle
                default { [ "on" hscript-expr ] }
                disablewhen "{ enableDispMap == 0 enableNoise == 0 }"
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "" }
            }
            parm {
                name    "vm_bumpraydisplace"
                label   "Add Bump To Ray Traced Displacements"
                type    toggle
                default { "1" }
                help    "None"
                disablewhen "{ vm_truedisplace == 0 }"
                parmtag { "mantra_class" "object" }
                parmtag { "mantra_name" "bumpraydisplace" }
                parmtag { "spare_category" "Shading" }
            }
        }

        groupsimple {
            name    "folder10"
            label   "Custom Input"

            parm {
                name    "dispInput_enable"
                label   "Enable Input Displacement"
                type    toggle
                default { "off" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispInput_max"
                label   "Maximum Displacement"
                type    float
                default { "1" }
                hidewhen "{ dispInput_enable == 0 }"
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "" }
            }
            parm {
                name    "dispInput_vectorspace"
                label   "Vector Space"
                type    string
                default { "uvtangent" }
                hidewhen "{ dispInput_enable == 0 }"
                menu {
                    "uvtangent" "UV Tangent Space"
                    "object"    "Object Space"
                    "world"     "World Space"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
        }

        groupsimple {
            name    "folder237"
            label   "Texture"
            hidewhentab "{ enableDispMap == 0 }"
            grouptag { "group_type" "simple" }

            parm {
                name    "dispTex_enable"
                label   "Enable Texture Displacement"
                type    toggle
                default { "off" }
                parmtag { "ogl_use_displacemap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispTex_type"
                label   "Texture Type"
                type    string
                default { "disp" }
                hidewhen "{ dispTex_enable == 0 }"
                menu {
                    "disp"          "Displacement Along Normal"
                    "vectordisp"    "Vector Displacement"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispTex_colorSpace"
                label   "Texture Color Space"
                type    string
                default { "linear" }
                hidewhen "{ dispTex_enable == 0 }"
                menu {
                    [ "echo `pythonexprs(\"__import__('toolutils').ocioColorSpaceMenu(include_roles=False,extra_choices=['auto','Automatic','linear','Linear','sRGB','sRGB','rec709','Rec 709','raw','Raw','_separator_','_separator'])\")`" ]
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispTex_vectorSpace"
                label   "Vector Space"
                type    string
                default { "uvtangent" }
                hidewhen "{ dispTex_enable == 0 } { dispTex_type != normal dispTex_type != vectordisp }"
                menu {
                    "uvtangent" "UV Tangent Space"
                    "object"    "Object Space"
                    "world"     "World Space"
                }
                parmtag { "ogl_displace_space" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispTex_channelOrder"
                label   "Channel Order"
                type    string
                default { "xyz" }
                hidewhen "{ dispTex_enable == 0 } { dispTex_type != vectordisp }"
                menu {
                    "xyz"   "XYZ"
                    "xzy"   "XZY"
                }
                parmtag { "ogl_displace_up" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispTex_offset"
                label   "Offset"
                type    float
                default { "-0.5" }
                hidewhen "{ dispTex_enable == 0 } { dispTex_type != bump dispTex_type != disp }"
                range   { -1 0 }
                parmtag { "ogl_displaceoffset" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispTex_scale"
                label   "Effect Scale"
                type    float
                default { "0.05" }
                hidewhen "{ dispTex_enable == 0 }"
                range   { 0 1 }
                parmtag { "ogl_displacescale" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispTex_texture"
                label   "Texture Path"
                type    image
                default { "" }
                hidewhen "{ dispTex_enable == 0 }"
                parmtag { "ogl_displacemap" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispTex_channel"
                label   "Channel"
                type    integer
                joinnext
                default { "0" }
                hidewhen "{ dispTex_enable == 0 } { dispTex_type != bump dispTex_type != disp }"
                menu {
                    "0" "Luminance"
                    "1" "Red"
                    "2" "Green"
                    "3" "Blue"
                }
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispTex_wrap"
                label   "Wrap"
                type    string
                joinnext
                default { "repeat" }
                hidewhen "{ dispTex_enable == 0 }"
                menu {
                    "repeat"    "Repeat"
                    "streak"    "Streak"
                    "decal"     "Decal"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispTex_filter"
                label   "Filter"
                type    string
                default { "gauss" }
                hidewhen "{ dispTex_enable == 0 }"
                menu {
                    "box"       "Box"
                    "gauss"     "Gaussian"
                    "bartlett"  "Bartlett/Triangular"
                    "sinc"      "Sinc Sharpening"
                    "hanning"   "Hanning"
                    "blackman"  "Blackman"
                    "catrom"    "Catmull-Rom"
                    "mitchell"  "Mitchell"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispTex_filterWidth"
                label   "Filter Width"
                type    float
                default { "1" }
                hidewhen "{ dispTex_enable == 0 }"
                range   { 0 2 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
        }

        groupsimple {
            name    "folder238"
            label   "Noise"
            hidewhentab "{ enableNoise == 0 }"
            grouptag { "group_type" "simple" }

            parm {
                name    "dispNoise_enable"
                label   "Enable Noise Displacement"
                type    toggle
                default { "off" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispNoise_type"
                label   "Noise Type"
                type    string
                default { "xnoise" }
                disablewhen "{ enableNoise == 0 }"
                hidewhen "{ dispNoise_enable == 0 }"
                menu {
                    "pnoise"    "Perlin Noise"
                    "onoise"    "Original Perlin Noise"
                    "xnoise"    "Simplex Noise"
                    "snoise"    "Sparse Convolution Noise"
                    "anoise"    "Alligator Noise"
                }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispNoise_freq"
                label   "Frequency"
                type    float
                size    3
                default { "10" "10" "10" }
                disablewhen "{ enableNoise == 0 }"
                hidewhen "{ dispNoise_enable == 0 }"
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispNoise_offset"
                label   "Offset"
                type    float
                size    3
                default { "0" "0" "0" }
                disablewhen "{ enableNoise == 0 }"
                hidewhen "{ dispNoise_enable == 0 }"
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispNoise_amp"
                label   "Amplitude"
                type    float
                default { "1" }
                disablewhen "{ enableNoise == 0 }"
                hidewhen "{ dispNoise_enable == 0 }"
                range   { -1 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispNoise_rough"
                label   "Roughness"
                type    float
                default { "0.5" }
                disablewhen "{ enableNoise == 0 }"
                hidewhen "{ dispNoise_enable == 0 }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispNoise_atten"
                label   "Attenuation"
                type    float
                default { "1" }
                disablewhen "{ enableNoise == 0 }"
                hidewhen "{ dispNoise_enable == 0 }"
                range   { 0 1 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
            parm {
                name    "dispNoise_turb"
                label   "Turbulence"
                type    integer
                default { "5" }
                disablewhen "{ enableNoise == 0 }"
                hidewhen "{ dispNoise_enable == 0 }"
                range   { 0 10 }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "displace" }
            }
        }

    }

    group {
        name    "diffuse_folder_15_5"
        label   "Settings"

        groupsimple {
            name    "folder239"
            label   "Component Labels"
            grouptag { "group_type" "simple" }

            parm {
                name    "difflabel"
                label   "Diffuse"
                type    string
                default { "diffuse" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "refllabel"
                label   "Reflection"
                type    string
                default { "reflect" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "refractlabel"
                label   "Refraction"
                type    string
                default { "refract" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "coatlabel"
                label   "Coat Reflection"
                type    string
                default { "coat" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
            parm {
                name    "ssslabel"
                label   "Subsurface"
                type    string
                default { "sss" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface" }
            }
        }

        groupsimple {
            name    "folder0"
            label   "UV"

            parm {
                name    "uvtrans"
                label   "Translate"
                type    float
                size    2
                default { "0" "0" }
                range   { 0 10 }
                parmtag { "ogl_bump_uvtranslate" "1" }
                parmtag { "ogl_coat_intensity_uvtranslate" "1" }
                parmtag { "ogl_coat_roughness_uvtranslate" "1" }
                parmtag { "ogl_displace_uvtranslate" "1" }
                parmtag { "ogl_emission_uvtranslate" "1" }
                parmtag { "ogl_metallic_uvtranslate" "1" }
                parmtag { "ogl_normal_uvtranslate" "1" }
                parmtag { "ogl_occlusion_uvtranslate" "1" }
                parmtag { "ogl_opacity_uvtranslate" "1" }
                parmtag { "ogl_reflect_uvtranslate" "1" }
                parmtag { "ogl_rough_uvtranslate" "1" }
                parmtag { "ogl_spec_uvtranslate" "1" }
                parmtag { "ogl_tex_uvtranslate1" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface displace" }
            }
            parm {
                name    "uvrot"
                label   "Rotate"
                type    float
                default { "0" }
                range   { 0 360 }
                parmtag { "ogl_bump_uvrotate" "1" }
                parmtag { "ogl_coat_intensity_uvrotate" "1" }
                parmtag { "ogl_coat_roughness_uvrotate" "1" }
                parmtag { "ogl_displace_uvrotate" "1" }
                parmtag { "ogl_emission_uvrotate" "1" }
                parmtag { "ogl_metallic_uvrotate" "1" }
                parmtag { "ogl_normal_uvrotate" "1" }
                parmtag { "ogl_occlusion_uvrotate" "1" }
                parmtag { "ogl_opacity_uvrotate" "1" }
                parmtag { "ogl_reflect_uvrotate" "1" }
                parmtag { "ogl_rough_uvrotate" "1" }
                parmtag { "ogl_spec_uvrotate" "1" }
                parmtag { "ogl_tex_uvrotate1" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface displace" }
            }
            parm {
                name    "uvscale"
                label   "Scale"
                type    float
                size    2
                default { "1" "1" }
                range   { 0 10 }
                parmtag { "ogl_bump_uvscale" "1" }
                parmtag { "ogl_coat_intensity_uvscale" "1" }
                parmtag { "ogl_coat_roughness_uvscale" "1" }
                parmtag { "ogl_displace_uvscale" "1" }
                parmtag { "ogl_emission_uvscale" "1" }
                parmtag { "ogl_metallic_uvscale" "1" }
                parmtag { "ogl_normal_uvscale" "1" }
                parmtag { "ogl_occlusion_uvscale" "1" }
                parmtag { "ogl_opacity_uvscale" "1" }
                parmtag { "ogl_reflect_uvscale" "1" }
                parmtag { "ogl_rough_uvscale" "1" }
                parmtag { "ogl_spec_uvscale" "1" }
                parmtag { "ogl_tex_uvscale1" "1" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "surface displace" }
            }
        }

    }

    parm {
        name    "Cd"
        label   "Attribute Color"
        type    color
        invisible
        size    3
        default { "1" "1" "1" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "Alpha"
        label   "Attribute Alpha"
        type    float
        invisible
        default { "1" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "layer"
        label   "layer"
        type    label
        invisible
        default { "" }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface displace" }
    }
    parm {
        name    "direct"
        label   "direct"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "indirect"
        label   "indirect"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "Ce"
        label   "Ce"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "direct_emission"
        label   "direct_emission"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "all_emission"
        label   "all_emission"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "all"
        label   "all"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "indirect_emission"
        label   "indirect_emission"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "direct_comp"
        label   "direct_comp"
        type    label
        invisible
        default { "" }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "indirect_comp"
        label   "indirect_comp"
        type    label
        invisible
        default { "" }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "all_comp"
        label   "all_comp"
        type    label
        invisible
        default { "" }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "direct_noshadow"
        label   "direct_noshadow"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "direct_shadow"
        label   "direct_shadow"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "indirect_noshadow"
        label   "indirect_noshadow"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "indirect_shadow"
        label   "indirect_shadow"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "level"
        label   "level"
        type    float
        invisible
        default { "0" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "diffuselevel"
        label   "diffuselevel"
        type    float
        invisible
        default { "0" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "specularlevel"
        label   "specularlevel"
        type    float
        invisible
        default { "0" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "volumelevel"
        label   "volumelevel"
        type    float
        invisible
        default { "0" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "direct_samples"
        label   "direct_samples"
        type    float
        invisible
        default { "0" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "indirect_samples"
        label   "indirect_samples"
        type    float
        invisible
        default { "0" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "nlights"
        label   "nlights"
        type    float
        invisible
        default { "0" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "direct_noshadow_comp"
        label   "direct_noshadow_comp"
        type    label
        invisible
        default { "" }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "indirect_noshadow_comp"
        label   "indirect_noshadow_comp"
        type    label
        invisible
        default { "" }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "nddispersion"
        label   "nddispersion"
        type    float
        invisible
        default { "0" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "ndpriority"
        label   "ndpriority"
        type    float
        invisible
        default { "0" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "ndior"
        label   "ndior"
        type    float
        invisible
        default { "0" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "absorption"
        label   "absorption"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "Oc"
        label   "Oc"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "Cv"
        label   "Cv"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "Th"
        label   "Th"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "Ab"
        label   "Ab"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "Cu"
        label   "Cu"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "Vd"
        label   "Vd"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "Nt"
        label   "Nt"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "Ds"
        label   "Ds"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "pre_disp_P"
        label   "pre_disp_P"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "displace" }
    }
    parm {
        name    "pre_disp_utan"
        label   "pre_disp_utan"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "displace" }
    }
    parm {
        name    "pre_disp_vtan"
        label   "pre_disp_vtan"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "displace" }
    }
    parm {
        name    "pre_disp_N"
        label   "pre_disp_N"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "displace" }
    }
    parm {
        name    "disp"
        label   "Normal Displacement"
        type    float
        invisible
        default { "0" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "displace" }
    }
    parm {
        name    "vdisp"
        label   "Vector Displacement"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "displace" }
    }
    parm {
        name    "Dt"
        label   "Dt"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "Vdt"
        label   "Vdt"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "baseN"
        label   "baseN"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "coatN"
        label   "coatN"
        type    float
        invisible
        size    3
        default { "0" "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "speccolor"
        label   "Specular Color"
        type    color
        invisible
        size    3
        default { "1" "1" "1" }
        help    "Deprecated Parameter"
        range   { 0 1 }
    }
    parm {
        name    "displayColor"
        label   "Attribute Color"
        type    color
        invisible
        size    3
        default { "1" "1" "1" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
    parm {
        name    "st"
        label   "st"
        type    float
        invisible
        size    2
        default { "0" "0" }
        range   { 0 10 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface displace" }
    }
    parm {
        name    "displayOpacity"
        label   "Attribute Alpha"
        type    float
        invisible
        default { "1" }
        range   { 0 1 }
        parmtag { "parmvop" "1" }
        parmtag { "shaderparmcontexts" "surface" }
    }
}
INDX              Contents       9j/   DialogScript   9  ~fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for singlecurveoperation automatically generated

{
    name	singlecurveoperation
    script	singlecurveoperation
    label	"Single Curve Operation"

    help {
	""
    }

    inputlabel	1	"CURRENT CURVE"
    inputlabel	2	N/A
    inputlabel	3	N/A
    inputlabel	4	N/A

    parm {
        name    "outputtype"
        label   "Output Type"
        type    string
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "order"
        label   "Order"
        type    integer
        default { "4" }
        range   { 0 10 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "optype"
        label   "Optype"
        type    string
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "group"
        label   "Group"
        type    string
        default { "" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "maintainpoint"
        label   "Approximate Shape on Delete"
        type    toggle
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "approxendtangents"
        label   "Approximate End Tangents"
        type    toggle
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "convertcurves"
        label   "Convert Curves to Output Type"
        type    toggle
        default { "1" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "translate"
        label   "Translate"
        type    vector
        size    3
        default { "0" "0" "0" }
        range   { -1 1 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "rotate"
        label   "Rotate"
        type    vector
        size    3
        default { "0" "0" "0" }
        range   { -1 1 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "scale"
        label   "Scale"
        type    vector
        size    3
        default { "1" "1" "1" }
        range   { -1 1 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "pivottranslate"
        label   "Pivot Translate"
        type    vector
        size    3
        default { "0" "0" "0" }
        range   { -1 1 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "pivotrotate"
        label   "Pivot Rotate"
        type    vector
        size    3
        default { "0" "0" "0" }
        range   { -1 1 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "addpts"
        label   "Add Points"
        type    string
        default { "" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "activeprim"
        label   "Active Prim"
        type    integer
        default { "0" }
        range   { 0 10 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "activebrokenpts"
        label   "Active Broken Points"
        type    string
        default { "" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "activesmoothpts"
        label   "Active Smooth Points"
        type    string
        default { "" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "activeroundcorners"
        label   "Active Round Corners"
        type    string
        default { "" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "activeautopts"
        label   "Active Auto Points"
        type    string
        default { "" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "interpmethod"
        label   "Interpolation Method"
        type    integer
        default { "0" }
        range   { 0 10 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "softtransform"
        label   "Soft Transform"
        type    integer
        default { "0" }
        range   { 0 10 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "softtransformrad"
        label   "Soft Transform Radius"
        type    float
        default { "0" }
        range   { 0 10 }
        parmtag { "script_callback_language" "python" }
    }
    groupsimple {
        name    "handleparms"
        label   "Handle Parms"
        grouptag { "sidefx::switcher" "handleparms" }

        parm {
            name    "handlepts"
            label   "Handle Points"
            type    intvector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "handlep0pos"
            label   "Handle Lower Point Pos"
            type    vector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "handlep1pos"
            label   "Handle Center Point Pos"
            type    vector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "handlep2pos"
            label   "Handle Upper Point Pos"
            type    vector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupsimple {
        name    "editopparms"
        label   "Editopparms"
        grouptag { "sidefx::switcher" "editopparms" }

        parm {
            name    "planeorig"
            label   "Plane Origin"
            type    vector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "planenml"
            label   "Plane Normal"
            type    vector
            size    3
            default { "0" "0" "0" }
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "constrainstraighten"
            label   "Constrain Straighten to Plane"
            type    toggle
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupsimple {
        name    "config"
        label   "Config"
        grouptag { "sidefx::switcher" "config" }

        parm {
            name    "autobezier"
            label   "Legacy Auto Bezier"
            type    integer
            default { "0" }
            range   { 0 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "segmentbezierclose"
            label   "Segment Bezier Close"
            type    integer
            default { "0" }
            range   { 0 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "iscurrentoperation"
            label   "Is Current Operation"
            type    integer
            default { "0" }
            range   { 0 10 }
            parmtag { "script_callback_language" "python" }
        }
    }

}
INDX              Contents       9j/   DialogScript   9  fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for split automatically generated

{
    name	split
    script	split
    label	Split

    help {
	""
    }

    inputlabel	1	"Geometry to Split"
    inputlabel	2	"Sub-Network Input #2"
    inputlabel	3	"Sub-Network Input #3"
    inputlabel	4	"Sub-Network Input #4"
    outputlabel	1	"Selected Geometry"
    outputlabel	2	"Non-Selected Geometry"

    parm {
        name    "group"
        label   "Group"
        type    string
        default { "" }
        menutoggle {
            [ "opmenu -l -a blast1 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" }
        parmtag { "script_callback" "" }
        bindselector everything Split
            "Select the geometry to keep as first output and press Enter to complete."
            0 1 0xffffffff 0 grouptype 0
    }
    parm {
        name    "grouptype"
        label   "Group Type"
        type    ordinal
        default { "guess" }
        menu {
            "guess"         "Guess from Group"
            "breakpoints"   "Breakpoints"
            "edges"         "Edges"
            "points"        "Points"
            "prims"         "Primitives"
        }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback" "" }
    }
    parm {
        name    "negate"
        label   "Invert Selection"
        type    toggle
        default { "off" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback" "" }
    }
    parm {
        name    "removegrp"
        label   "Delete Unused Groups"
        type    toggle
        default { "off" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
}
INDX              Contents       9j/   DialogScript   9  n:fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for staticobject automatically generated

{
    name	staticobject
    script	staticobject
    label	"Static Object"


    help {
	""
    }

    inputlabel	1	"Input 1"
    inputlabel	2	"Input 2"
    inputlabel	3	"Input 3"
    inputlabel	4	"Input 4"

    parm {
        name    "usesimframe"
        label   "Creation Frame Specifies Simulation Frame"
        type    toggle
        default { "0" }
        range   { 0 1 }
        parmtag { "autoscope" "0000" }
    }
    parm {
        name    "createframe"
        label   "Creation Frame"
        type    float
        default { "ch(opcreator(\".\")+\"/startframe\")" }
        range   { 1 100 }
        parmtag { "autoscope" "0000" }
    }
    parm {
        name    "object_name"
        label   "Object Name"
        type    string
        default { "$OS" }
        range   { 0 1 }
        parmtag { "autoscope" "0000" }
    }
    parm {
        name    "soppath"
        label   "SOP Path"
        type    oppath
        default { "" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "opfilter" "!!SOP!!" }
        parmtag { "oprelative" "." }
    }
    parm {
        name    "primgroup"
        label   "Primitive Group"
        type    string
        default { "" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback" "" }
    }
    parm {
        name    "objpath"
        label   "OBJ Path"
        type    oppath
        default { "" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "opfilter" "!!OBJ!!" }
        parmtag { "oprelative" "." }
    }
    parm {
        name    "animategeo"
        label   "Use Deforming Geometry"
        type    toggle
        default { "0" }
        range   { 0 1 }
        export  all
        parmtag { "autoscope" "0000" }
    }
    parm {
        name    "letsopsinterpolate"
        label   "Re-evaluate SOPs to Interpolate Geometry"
        type    toggle
        default { "off" }
        disablewhen "{ animategeo == 0 }"
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback" "" }
    }
    parm {
        name    "usetransform"
        label   "Use Object Transform"
        type    toggle
        default { "off" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "active"
        label   "Create Active Object"
        type    toggle
        default { "0" }
        range   { 0 1 }
        parmtag { "autoscope" "0000" }
    }
    parm {
        name    "intangible"
        label   "Ignore Merge Relationships"
        type    toggle
        default { "0" }
        range   { 0 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "display"
        label   "Display Geometry"
        type    toggle
        default { "1" }
        range   { 0 1 }
        export  all
    }
    group {
        name    "std_switcher_0_2_1"
        label   "Physical"

        parm {
            name    "bounce"
            label   "Bounce"
            type    float
            default { "0.5" }
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "" }
        }
        parm {
            name    "bounceforward"
            label   "Bounce Forward"
            type    float
            default { "1" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "" }
        }
        parm {
            name    "friction"
            label   "Friction"
            type    float
            default { "1" }
            range   { 0 1 }
            parmtag { "autoscope" "0000" }
        }
        parm {
            name    "dynamicfriction"
            label   "Dynamic Friction Scale"
            type    float
            default { "1" }
            range   { 0 1 }
            parmtag { "autoscope" "0000" }
        }
        parm {
            name    "temperature"
            label   "Temperature"
            type    float
            default { "0" }
            range   { 0 100 }
            parmtag { "autoscope" "0000000000000000" }
        }
    }

    group {
        name    "std_switcher_0_2_1_1"
        label   "Collisions"

        group {
            name    "rbd_solver"
            label   "RBD Solver"

            parm {
                name    "collisiondetection"
                label   "Collision Detection"
                type    ordinal
                default { "default" }
                menu {
                    "default"   "Use Solver Default"
                    "volume"    "Use Volume Collisions"
                    "surface"   "Use Surface Collisions"
                }
            }
            parm {
                name    "usevolume"
                label   "Use Volume Based Collision Detection"
                type    toggle
                invisible
                default { "1" }
                range   { 0 1 }
                parmtag { "autoscope" "0000" }
            }
            group {
                name    "std_switcher_3"
                label   "Volume"

                parm {
                    name    "showguide"
                    label   "Show Collision Guide Geometry"
                    type    toggle
                    nolabel
                    joinnext
                    default { "0" }
                    disablewhen "{ collisiondetection == surface }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "volumecolor"
                    label   "Collision Guide"
                    type    color
                    size    3
                    default { "0" "0" "1" }
                    disablewhen "{ collisiondetection == surface } { showguide == 0 }"
                    range   { 0! 1! }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "mode"
                    label   "Mode"
                    type    ordinal
                    default { "0" }
                    disablewhen "{ collisiondetection == surface }"
                    menu {
                        "rayintersect"      "Ray Intersect"
                        "metafield"         "Meta Balls"
                        "implicitbox"       "Implicit Box"
                        "implicitsphere"    "Implicit Sphere"
                        "implicitplane"     "Implicit Plane"
                        "minimum"           "Minimum"
                        "volume"            "Volume Sample"
                        "heightfield"       "Heightfield"
                    }
                    range   { 0 10 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "uniformvoxels"
                    label   "Division Method"
                    type    ordinal
                    default { "max" }
                    disablewhen "{ collisiondetection == surface }"
                    menu {
                        "nonsquare" "Non Square"
                        "x"         "X Axis"
                        "y"         "Y Axis"
                        "z"         "Z Axis"
                        "max"       "Max Axis"
                        "size"      "By Size"
                    }
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                }
                parm {
                    name    "div"
                    label   "Divisions"
                    type    integer
                    size    3
                    default { "30" "30" "30" }
                    disablewhen "{ collisiondetection == surface }"
                    hidewhen "{ uniformvoxels != nonsquare }"
                    range   { 2! 50 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "uniformdiv"
                    label   "Uniform Divisions"
                    type    integer
                    default { "30" }
                    disablewhen "{ collisiondetection == surface }"
                    hidewhen "{ uniformvoxels == nonsquare } { uniformvoxels == size }"
                    range   { 1! 1000 }
                    parmtag { "autoscope" "0000000000000000" }
                }
                parm {
                    name    "divsize"
                    label   "Division Size"
                    type    float
                    default { "0.1" }
                    disablewhen "{ collisiondetection == surface }"
                    hidewhen "{ uniformvoxels != size }"
                    range   { 0! 10 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "units" "m1" }
                }
                parm {
                    name    "laserscan"
                    label   "Laser Scan"
                    type    toggle
                    default { "0" }
                    disablewhen "{ collisiondetection == surface }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "fixsigns"
                    label   "Fix Signs"
                    type    toggle
                    default { "1" }
                    disablewhen "{ collisiondetection == surface }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "forcebounds"
                    label   "Force Bounds"
                    type    toggle
                    default { "1" }
                    disablewhen "{ collisiondetection == surface }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "invert"
                    label   "Invert Sign"
                    type    toggle
                    default { "0" }
                    disablewhen "{ collisiondetection == surface }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "sweepalpha"
                    label   "Sign Sweep Threshold"
                    type    float
                    default { "2" }
                    disablewhen "{ collisiondetection == surface }"
                    range   { 0! 10 }
                    parmtag { "autoscope" "0000000000000000" }
                }
                parm {
                    name    "sweepcount"
                    label   "Max Sign Sweep Count"
                    type    integer
                    default { "3" }
                    disablewhen "{ collisiondetection == surface }"
                    range   { 0! 10 }
                    parmtag { "autoscope" "0000000000000000" }
                }
                parm {
                    name    "offset"
                    label   "Offset Surface"
                    type    float
                    default { "0" }
                    range   { 0 10 }
                    parmtag { "autoscope" "0000000000000000" }
                }
                parm {
                    name    "sdftol"
                    label   "Tolerance"
                    type    float
                    default { "0.001" }
                    range   { 0 10 }
                    parmtag { "autoscope" "0000000000000000" }
                }
                parm {
                    name    "proxyvolume"
                    label   "Proxy Volume"
                    type    oppath
                    default { "" }
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "opfilter" "!!SOP!!" }
                    parmtag { "oprelative" "." }
                }
                parm {
                    name    "proxyprimgroup"
                    label   "Proxy Primitive Group"
                    type    string
                    default { "" }
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "script_callback" "" }
                }
                parm {
                    name    "volumefilemode"
                    label   "File Mode"
                    type    ordinal
                    default { "3" }
                    disablewhen "{ collisiondetection == surface }"
                    menu {
                        "auto"  "Automatic"
                        "read"  "Read Files"
                        "write" "Write Files"
                        "none"  "No Operation"
                    }
                    range   { 0 10 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "volumefile"
                    label   "File"
                    type    file
                    default { "" }
                    disablewhen "{ collisiondetection == surface }"
                    menureplace {
                    }
                    range   { 0 1 }
                    parmtag { "autoscope" "0000" }
                }
            }

            group {
                name    "std_switcher_3_1"
                label   "Surface"

                parm {
                    name    "showthickness"
                    label   "Show Collision Radius"
                    type    toggle
                    default { "0" }
                    range   { 0 1 }
                }
                parm {
                    name    "thicknesscolor"
                    label   "Collision Radius Color"
                    type    color
                    size    3
                    default { "0" "1" "0" }
                    disablewhen "{ showthickness == 0 }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                }
                parm {
                    name    "thickness"
                    label   "Collision Radius"
                    type    float
                    default { "0" }
                    range   { 0 1 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "showvelocity"
                    label   "Show Velocity"
                    type    toggle
                    default { "0" }
                    range   { 0 1 }
                }
                parm {
                    name    "velocityscale"
                    label   "Velocity Scale"
                    type    float
                    default { "0" }
                    disablewhen "{ showvelocity == 0 }"
                    range   { 0 10 }
                }
                parm {
                    name    "velocitycolor"
                    label   "Velocity Color"
                    type    color
                    size    3
                    default { "1" "0" "0" }
                    disablewhen "{ showvelocity == 0 }"
                    range   { 0 1 }
                }
                parm {
                    name    "surfreptype"
                    label   "Surface Representation"
                    type    ordinal
                    default { "0" }
                    menu {
                        "0" "Points"
                        "1" "Edges"
                    }
                    range   { 0 10 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "polyconvert"
                    label   "Convert To Poly"
                    type    toggle
                    invisible
                    default { "1" }
                    range   { 0 1 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "triangulate"
                    label   "Triangulate"
                    type    toggle
                    default { "0" }
                    range   { 0 1 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "polylod"
                    label   "LOD"
                    type    float
                    size    2
                    default { "1" "1" }
                    range   { 0! 10 }
                    parmtag { "autoscope" "0000" }
                }
                parm {
                    name    "addbarycenter"
                    label   "Add Barycenters"
                    type    toggle
                    default { "1" }
                    range   { 0 1 }
                    parmtag { "autoscope" "0000" }
                }
            }

        }

        group {
            name    "rbd_solver_1"
            label   "Bullet Data"

            parm {
                name    "showguide2"
                label   "Show Guide Geometry"
                type    toggle
                default { "off" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "color"
                label   "Color"
                type    color
                size    3
                default { "0" "0" "1" }
                range   { 0! 1! }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_deactivated_color"
                label   "Deactivated Color"
                type    color
                size    3
                default { "1" "0" "0" }
                range   { 0! 1! }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "sepparm"
                label   "Separator"
                type    separator
                default { "" }
                range   { 0 1 }
            }
            parm {
                name    "bullet_georep"
                label   "Geometry Representation"
                type    string
                default { "convexhull" }
                menu {
                    "convexhull"    "Convex Hull"
                    "concave"       "Concave"
                    "box"           "Box"
                    "capsule"       "Capsule"
                    "cylinder"      "Cylinder"
                    "compound"      "Compound"
                    "sphere"        "Sphere"
                    "plane"         "Plane"
                }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "geo_triangulate"
                label   "Triangulate Polygons (not working yet)"
                type    toggle
                invisible
                default { "on" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_geoconvexhull"
                label   "Polygons As Convex Hulls"
                type    toggle
                invisible
                default { "on" }
                disablewhen "{ bullet_georep != as-is }"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_groupconnected"
                label   "Create Convex Hull per Set of Connected Primitives"
                type    toggle
                default { "off" }
                disablewhen "{ bullet_georep != convexhull }"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_autofit"
                label   "AutoFit Primitive Boxes, Capsules, Cylinders, Spheres, or Planes to Geometry"
                type    toggle
                default { "on" }
                disablewhen "{ bullet_georep == compound } { bullet_georep == as-is }"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_primT"
                label   "Position"
                type    vector
                size    3
                default { "0" "0" "0" }
                disablewhen "{ bullet_autofit == 1 } { bullet_georep == compound } { bullet_georep == convexhull } { bullet_georep == concave }"
                range   { -1 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_primR"
                label   "Rotation"
                type    vector
                size    3
                default { "0" "0" "0" }
                disablewhen "{ bullet_autofit == 1 } { bullet_georep == compound } { bullet_georep == convexhull } { bullet_georep == concave }"
                range   { -1 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_primS"
                label   "Box Size"
                type    vector
                size    3
                default { "1" "1" "1" }
                disablewhen "{ bullet_autofit == 1 } { bullet_georep != box }"
                range   { -1 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_radius"
                label   "Radius"
                type    float
                default { "1" }
                disablewhen "{ bullet_autofit == 1 } { bullet_georep == compound } { bullet_georep == convexhull } { bullet_georep == concave } { bullet_georep == box } { bullet_georep == plane }"
                range   { 0.1 5 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_length"
                label   "Length"
                type    float
                default { "1" }
                disablewhen "{ bullet_autofit == 1 } { bullet_georep == convexhull } { bullet_georep == concave } { bullet_georep == sphere } { bullet_georep == compound } { bullet_georep == box } { bullet_georep == plane }"
                range   { 0.1 5 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_collision_margin"
                label   "Collision Padding"
                type    float
                default { "0.02" }
                disablewhen "{ bullet_georep == plane }"
                range   { 0! 0.5 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_adjust_geometry"
                label   "Shrink Collision Geometry"
                type    toggle
                default { "on" }
                disablewhen "{ bullet_georep == plane } { bullet_georep == concave }"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_shrink_amount"
                label   "Shrink Amount"
                type    float
                default { "ch(\"bullet_collision_margin\")" }
                disablewhen "{ bullet_georep == plane } { bullet_georep == concave } { bullet_adjust_geometry == 0 }"
                range   { 0! 5 }
            }
            parm {
                name    "bullet_adjust_factor"
                label   "Adjustment Factor"
                type    float
                invisible
                default { "1" }
                disablewhen "{ bullet_georep == sphere } { bullet_georep == box } { bullet_georep == capsule } { bullet_adjust_geometry == 0 } { bullet_georep == cylinder } { bullet_georep == plane }"
                range   { 1! 5 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_add_impact"
                label   "Add Impact Data"
                type    toggle
                default { "off" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_want_deactivate"
                label   "Enable Sleeping"
                type    toggle
                default { "on" }
                help    "If checked, object would be deactivated after a certain time"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "bullet_linear_sleep_threshold"
                label   "Linear Threshold"
                type    float
                default { "0.8" }
                disablewhen "{ bullet_want_deactivate == 0 }"
                range   { 0! 2 }
            }
            parm {
                name    "bullet_angular_sleep_threshold"
                label   "Angular Threshold"
                type    float
                default { "1" }
                disablewhen "{ bullet_want_deactivate == 0 }"
                range   { 0! 2 }
            }
        }

        group {
            name    "rbd_solver_2"
            label   "ODE Primitive"
            invisibletab

            parm {
                name    "enableode"
                label   "Enable ODE Data"
                type    toggle
                default { "0" }
                range   { 0 1 }
            }
            parm {
                name    "odeDisp"
                label   "Display ODE Primitive"
                type    toggle
                default { "0" }
                disablewhen "{ enableode == 0 }"
                range   { 0 1 }
            }
            parm {
                name    "objType"
                label   "Object Type"
                type    integer
                default { "0" }
                disablewhen "{ enableode == 0 }"
                menu {
                    "0" "Box"
                    "1" "Sphere"
                    "2" "Cylinder"
                    "3" "Capsule"
                }
                range   { 0 10 }
            }
            parm {
                name    "autofit"
                label   "Automatically Fit Geometry"
                type    toggle
                default { "1" }
                disablewhen "{ objType >= 4 } { enableode == 0 }"
                range   { 0 1 }
            }
            parm {
                name    "primT"
                label   "Position"
                type    vector
                size    3
                default { "0" "0" "0" }
                disablewhen "{ objType >= 4 } { autofit == 1 } { enableode == 0 }"
                range   { -1 1 }
            }
            parm {
                name    "primR"
                label   "Rotation"
                type    vector
                size    3
                default { "0" "0" "0" }
                disablewhen "{ objType >= 4 } { autofit == 1 } { enableode == 0 }"
                range   { -1 1 }
            }
            parm {
                name    "primS"
                label   "Box Size"
                type    vector
                size    3
                default { "1" "1" "1" }
                disablewhen "{ objType != 0 } { autofit == 1 } { enableode == 0 }"
                range   { -1 1 }
            }
            parm {
                name    "radius"
                label   "Radius"
                type    float
                default { "1" }
                disablewhen "{ objType == 0 } { objType >= 4 } { autofit == 1 } { enableode == 0 }"
                range   { 0 10 }
            }
            parm {
                name    "length"
                label   "Cylinder Length"
                type    float
                default { "2" }
                disablewhen "{ objType <= 1 } { objType >= 4 } { autofit == 1 } { enableode == 0 }"
                range   { 0 10 }
            }
        }

    }

}
INDX              Contents       9j/   DialogScript   9  6fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for testgeometry_tommy automatically generated

{
    name	testgeometry_tommy
    script	testgeometry_defaultman
    label	"Test Geometry: Tommy"

    help {
	""
    }

    inputlabel	1	"Sub-Network Input #1"
    inputlabel	2	"Sub-Network Input #2"
    inputlabel	3	"Sub-Network Input #3"
    inputlabel	4	"Sub-Network Input #4"

    parm {
        name    "t"
        label   "Translate"
        type    vector
        size    3
        default { "0" "0" "0" }
        range   { -1 1 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "r"
        label   "Rotate"
        type    vector
        size    3
        default { "0" "0" "0" }
        range   { 0 360 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "scale"
        label   "Uniform Scale"
        type    float
        default { "1" }
        range   { 0 10 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "res"
        label   "Resolution"
        type    integer
        default { "0" }
        menu {
            "0" "Hi Res"
            "1" "Low Res"
        }
        range   { 0 10 }
    }
    parm {
        name    "switch_clothing"
        label   "Clothing"
        type    toggle
        default { "1" }
        range   { 0! 10 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "switch_textures"
        label   "Textures"
        type    toggle
        default { "1" }
        range   { 0! 10 }
        parmtag { "autoscope" "0000000000000000" }
    }
}
INDX              Contents       9j/   DialogScript   9  fHouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for vdbcollidersprocess automatically generated

{
    name	vdbcollidersprocess
    script	vdbcollidersprocess
    label	"VDB Colliders Process"

    help {
	""
    }

    inputlabel	1	"Sub-Network Input #1"
    inputlabel	2	"Sub-Network Input #2"
    inputlabel	3	"Sub-Network Input #3"
    inputlabel	4	"Sub-Network Input #4"

    groupcollapsible {
        name    "folder0"
        label   "Frame Range"

        parm {
            name    "rangeclamp"
            label   "Clamp"
            type    ordinal
            default { "none" }
            menu {
                "none"  "None"
                "first" "Clamp to First"
                "last"  "Clamp to Last"
                "both"  "Clamp to Both"
            }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "frange"
            label   "Start/End Frame"
            type    float
            size    2
            default { [ "$FSTART" hscript-expr ] [ "$FEND" hscript-expr ] }
            disablewhen "{ rangeclamp == none }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

    parm {
        name    "substeps"
        label   "Substeps"
        type    integer
        default { "1" }
        range   { 1 10 }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "computemaxspeed"
        label   "Compute Speed Maximum"
        type    toggle
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
}
INDX              Contents       9j/   DialogScript   9  6fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for vellumbrush automatically generated

{
    name	vellumbrush
    script	jlait_cloth_play
    label	"Vellum Brush"

    help {
	""
    }

    inputlabel	1	"Vellum Geometry"
    inputlabel	2	"Constraint Geometry"
    inputlabel	3	"Collision Geometry"
    parmtag { inputisref3 1 }
    inputlabel	4	"Sub-Network Input #4"
    outputlabel	1	"Vellum Geometry"
    outputlabel	2	"Constraint Geometry"
    outputlabel	3	"Collision Geometry"

    parm {
        name    "simframe"
        label   "Simulation Frame"
        type    integer
        invisible
        default { "1" }
        disablewhen "{ simframe != 0 }"
        range   { 0 10 }
        parmtag { "autoscope" "0000000000000000" }
        parmtag { "script_callback_language" "python" }
        parmtag { "sidefx::save_value" "0" }
    }
    parm {
        name    "clearstash"
        label   "Clear Snapshot"
        type    button
        invisible
        default { "0" }
        parmtag { "script_callback" "kwargs['node'].parm('clothstash').set(None) ; kwargs['node'].parm('constraintstash').set(None)" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "autostash"
        label   "Auto Snapshot"
        type    toggle
        invisible
        default { "on" }
    }
    parm {
        name    "showcollision"
        label   "Show Collision"
        type    toggle
        default { "1" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "showguide"
        label   "Show Guide Geometry"
        type    toggle
        default { "1" }
        parmtag { "script_callback" "" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "usedisplay"
        label   "Show Output when not Displayed"
        type    toggle
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "setrest"
        label   "Set Rest State"
        type    button
        default { "0" }
        parmtag { "script_callback" "kwargs['node'].hdaViewerStateModule().setNewRestState(kwargs['node'])" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "reset"
        label   "Reset All Changes"
        type    button
        default { "0" }
        parmtag { "script_callback" "kwargs['node'].hdaViewerStateModule().snapshot(kwargs['node'], reason=\"Reset All Changes\", clear=True)" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "doinputframe"
        label   "doinputframe"
        type    toggle
        nolabel
        joinnext
        default { "0" }
        parmtag { "script_callback_language" "python" }
    }
    parm {
        name    "inputframe"
        label   "Input Frame"
        type    integer
        default { "1" }
        disablewhen "{ doinputframe == 0 }"
        range   { 0 100 }
        parmtag { "script_callback_language" "python" }
    }
    groupcollapsible {
        name    "folder4"
        label   "Brush"

        parm {
            name    "shape"
            label   "Shape"
            type    ordinal
            default { "screen" }
            menu {
                "volume"    "Volume"
                "surface"   "Surface"
                "screen"    "Screen"
                "nearest"   "Nearest Point"
                "connected" "Connected Geometry"
            }
            export  all
            parmtag { "script_action" "kwargs['node'].hdaViewerStateModule().visualize(kwargs)" }
            parmtag { "script_action_help" "Toggle visualization\nCtrl-LMB: Open the visualization editor" }
            parmtag { "script_action_icon" "VIEW_visualization" }
            parmtag { "script_callback" "kwargs['node'].hdaViewerStateModule().updateInfoBox()" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "mode"
            label   "Mode"
            type    ordinal
            default { "0" }
            menu {
                "brush"     "Brush"
                "drag"      "Drag"
                "expand"    "Contract / Expand"
                "rotate"    "Rotate"
                "restlen"   "Crease / Ruffle"
                "disable"   "Disable Collisions"
            }
            export  all
            parmtag { "script_callback" "kwargs['node'].hdaViewerStateModule().updateInfoBox()" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "radius"
            label   "Radius"
            type    float
            default { "0.1" }
            disablewhen "{ shape == nearest }"
            hidewhen "{ shape == screen }"
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "screenradius"
            label   "Screen Radius"
            type    float
            default { "50" }
            hidewhen "{ shape != screen }"
            range   { 0 100 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "freezeoutside"
            label   "Freeze Outside"
            type    toggle
            default { "0" }
            export  all
            parmtag { "script_callback" "kwargs['node'].hdaViewerStateModule().updateInfoBox()" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "connectedpins"
            label   "Drag Connected Pins Only"
            type    toggle
            invisible
            default { "1" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "strength"
            label   "Strength"
            type    float
            default { "1" }
            disablewhen "{ mode != drag mode != brush mode != expand mode != rotate mode != restlen }"
            range   { 0! 10 }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "softedge"
            label   "Soft Edge"
            type    float
            default { "1" }
            disablewhen "{ shape == nearest } { shape == connected }"
            range   { 0! 1! }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "lmbrestlen"
            label   "Crease Scale"
            type    float
            joinnext
            default { "0.75" }
            range   { 0.1 1.9 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "mmbrestlen"
            label   "Ruffle Scale"
            type    float
            default { "1.25" }
            range   { 0.1 1.9 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "postframes"
            label   "Post Drag Frames"
            type    integer
            default { "1" }
            range   { 0! 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "strengthpressure"
            label   "Strength Pressure"
            type    float
            default { "1" }
            disablewhen "{ mode == drag }"
            range   { 0! 1! }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "radiuspressure"
            label   "Radius Pressure"
            type    float
            default { "1" }
            disablewhen "{ mode == drag }"
            range   { 0! 1! }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "folder2"
        label   "Forces"
        parmtag { "sidefx::header_parm" "simmode" }

        parm {
            name    "simmode"
            label   "Simulation Mode"
            type    ordinal
            default { "0" }
            menu {
                "damped"    "Damped"
                "settle"    "Settle"
            }
            export  all
            parmtag { "script_callback" "kwargs['node'].hdaViewerStateModule().updateIsLive()" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "livesim_damped"
            label   "Live Simulation"
            type    toggle
            default { "0" }
            hidewhen "{ simmode != damped }"
            export  all
            parmtag { "script_callback" "kwargs['node'].hdaViewerStateModule().updateIsLive()" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "livesim_settle"
            label   "Live Simulation"
            type    toggle
            default { "1" }
            hidewhen "{ simmode != settle }"
            export  all
            parmtag { "script_callback" "kwargs['node'].hdaViewerStateModule().updateIsLive()" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "timescale_damped"
            label   "Time Scale"
            type    float
            default { "0.2" }
            hidewhen "{ simmode != damped }"
            range   { 0! 1! }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "timescale_settle"
            label   "Time Scale"
            type    float
            default { "0.4" }
            hidewhen "{ simmode != settle }"
            range   { 0! 1! }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "usegravity_damped"
            label   "Enable Gravity"
            type    toggle
            nolabel
            joinnext
            default { "off" }
            hidewhen "{ simmode != damped }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "gravity_damped"
            label   "Gravity"
            type    vector
            size    3
            default { "0" "-9.81" "0" }
            disablewhen "{ usegravity_damped == 0 }"
            hidewhen "{ simmode != damped }"
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "m1s-2" }
        }
        parm {
            name    "usegravity_settle"
            label   "Enable Gravity"
            type    toggle
            nolabel
            joinnext
            default { "on" }
            hidewhen "{ simmode != settle }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "gravity_settle"
            label   "Gravity"
            type    vector
            size    3
            default { "0" "-9.81" "0" }
            disablewhen "{ usegravity_settle == 0 }"
            hidewhen "{ simmode != settle }"
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "m1s-2" }
        }
        parm {
            name    "veldamping_damped"
            label   "Velocity Damping"
            type    float
            default { "1" }
            hidewhen "{ simmode != damped }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "veldamping_settle"
            label   "Velocity Damping"
            type    float
            default { "0.05" }
            hidewhen "{ simmode != settle }"
            range   { 0! 1! }
            export  all
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "static_threshold"
            label   "Static Friction"
            type    float
            default { "0.5" }
            range   { 0! 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "kinetic_scale"
            label   "Dynamic Scale"
            type    float
            default { "0.1" }
            range   { 0! 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "folder1"
        label   "Quality"

        parm {
            name    "passes_damped"
            label   "Substeps"
            type    integer
            default { "1" }
            hidewhen "{ simmode != damped }"
            range   { 1! 20 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "passes_settle"
            label   "Substeps"
            type    integer
            default { "5" }
            hidewhen "{ simmode != settle }"
            range   { 1! 20 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "niter_damped"
            label   "Constraint Iterations"
            type    integer
            default { "100" }
            hidewhen "{ simmode != damped }"
            range   { 0 200 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "" }
        }
        parm {
            name    "niter_settle"
            label   "Constraint Iterations"
            type    integer
            default { "20" }
            hidewhen "{ simmode != settle }"
            range   { 0 200 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "" }
        }
        parm {
            name    "smoothiter_damped"
            label   "Smoothing Iterations"
            type    integer
            default { "10" }
            hidewhen "{ simmode != damped }"
            range   { 0! 20 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "smoothiter_settle"
            label   "Smoothing Iterations"
            type    integer
            default { "2" }
            hidewhen "{ simmode != settle }"
            range   { 0! 20 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
    }

    group {
        name    "folder5_1_1"
        label   "State Parameters"
        invisibletab
        tabbreak

        groupsimple {
            name    "folder3"
            label   "Capture"

            parm {
                name    "hitpt"
                label   "Nearest Point"
                type    integer
                default { "-1" }
                range   { 0 10 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "hitpiece"
                label   "Hit Piece"
                type    integer
                default { "-1" }
                range   { 0 10 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "hitprim"
                label   "Hit Primitive"
                type    integer
                default { "0" }
                range   { 0 10 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "hittype"
                label   "Hit Primitive Type"
                type    integer
                default { "-1" }
                range   { 0 10 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "hituv"
                label   "Hit UV"
                type    vector
                size    3
                default { "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "hitnml"
                label   "Hit Normal"
                type    vector
                size    3
                default { "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "hitpts"
                label   "Hit Points"
                type    intvector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "cursorpos"
                label   "Cursor Position"
                type    vector2
                size    2
                default { "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_enableattach"
                label   "Enable Attach Handle"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_draggedpoint"
                label   "Handle Dragged Point"
                type    integer
                default { "-1" }
                range   { 0 10 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_pointdict"
                label   "Handle to Point Dictionary"
                type    string
                default { "{}" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_maskoverride"
                label   "Mask Override"
                type    string
                default { "" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_enablemaskoverride"
                label   "Enable Mask Override"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_enabled"
                label   "Handle Mode"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_enablepointdictoverride"
                label   "Enable Handle Point Dict Override"
                type    toggle
                default { "0" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_dragglobal"
                label   "Drag Global Handle"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_globalvisible"
                label   "Global Handle Visible"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_selectedisland"
                label   "Selected Island"
                type    string
                default { "" }
                menutoggle {
                    [ "opmenu -l -a select_group group" ]
                }
                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.\nShift-click to turn on Select Groups." }
                parmtag { "script_action_icon" "BUTTONS_reselect" }
            }
            parm {
                name    "handle_enabledrag"
                label   "Enable Handle Drag"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "fuzzyraycastgroup"
                label   "Fuzzy Raycast Group"
                type    string
                default { "@stopped=1" }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "showcookselection"
                label   "Show Cook Selection"
                type    toggle
                default { "0" }
                range   { 0! 1! }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
        }

        groupsimple {
            name    "folder0"
            label   "Live Parameters"

            parm {
                name    "omitdynamics"
                label   "Omit Dynamic Solve"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "method"
                label   "Method"
                type    ordinal
                default { "0" }
                menu {
                    "none"              "None"
                    "brush"             "Brush"
                    "drag"              "Drag"
                    "restlen"           "Rest Length"
                    "stop"              "Stopped Points"
                    "disable"           "Disable Collisions"
                    "sim"               "Simulate"
                    "expand"            "Contract / Expand"
                    "rotate"            "Rotate"
                    "handle_drag"       "Drag Handle"
                    "handle_attach"     "Attach Handle"
                    "handle_autoadd"    "Auto-add handles"
                }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "scale"
                label   "Scale"
                type    float
                default { "1" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "center"
                label   "Center"
                type    vector
                size    3
                default { "0" "0" "0" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "displace"
                label   "Displacement"
                type    vector
                size    3
                default { "0" "0" "0" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "rotate"
                label   "Rotate"
                type    float
                default { "0" }
                range   { -5 5 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "rotateaxis"
                label   "Rotate Axis"
                type    vector
                size    3
                default { "0" "0" "0" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "doblend"
                label   "Blend to Correct"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "blend"
                label   "Blend"
                type    float
                default { "1" }
                range   { 0! 1! }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "stopval"
                label   "Stop Value"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "stopall"
                label   "Stop All"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "disableself"
                label   "Disable Self"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "disableexternal"
                label   "Disable External"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "strengthscale"
                label   "Strength Scale"
                type    float
                default { "1" }
                range   { 0 10 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "radscale"
                label   "Radius Scale"
                type    float
                default { "1" }
                range   { 0 10 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "dragpins"
                label   "Drag Pins"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_m1"
                label   "Handle Transform Matrix Row 1"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_m2"
                label   "Handle Transform Matrix Row 2"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "handle_m3"
                label   "Handle Transform Matrix Row 3"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "mouse_point"
                label   "Mouse Point"
                type    vector
                size    3
                default { "0" "0" "0" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "mouse_dir"
                label   "Mouse Dir"
                type    vector
                size    3
                default { "0" "0" "0" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "screenxform0"
                label   "Screen Xform 0"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "screenxform1"
                label   "Screen Xform 1"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "screenxform2"
                label   "Screen Xform 2"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "screenxform3"
                label   "Screen Xform 3"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "screenxforminv0"
                label   "Screen Xform Inverse 0"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "screenxforminv1"
                label   "Screen Xform Inverse 1"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "screenxforminv2"
                label   "Screen Xform Inverse 2"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "screenxforminv3"
                label   "Screen Xform Inverse 3"
                type    vector4
                size    4
                default { "0" "0" "0" "0" }
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
        }

    }

    groupcollapsible {
        name    "folder5"
        label   "Collisions"
        parmtag { "sidefx::header_parm" "enablecollisions" }

        parm {
            name    "enablecollisions"
            label   "External Collisions"
            type    ordinal
            default { "polygon" }
            menu {
                "none"      "None"
                "polygon"   "Polygons"
                "vdb"       "VDB Volume"
                "volume"    "Dense Volume"
            }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "volumeresscale"
            label   "Resolution Scale"
            type    float
            joinnext
            default { "1" }
            disablewhen "{ enablecollisions != vdb enablecollisions != volume }"
            range   { 0! 5 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "volumedilate"
            label   "Dilation"
            type    float
            joinnext
            default { "0" }
            disablewhen "{ enablecollisions != vdb enablecollisions != volume }"
            range   { -1 1 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "showvolume"
            label   "Show Volume"
            type    toggle
            default { "0" }
            disablewhen "{ enablecollisions != vdb enablecollisions != volume } { showguide == 0 }"
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "doselfcollisions"
            label   "Self Collisions"
            type    toggle
            default { "on" }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "resetdetangled"
            label   "Reset Detangled Points"
            type    toggle
            default { "on" }
            disablewhen "{ enablecollisions != polygon doselfcollisions == 0 }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "collisionsiter"
            label   "Polygon Passes"
            type    integer
            default { "1" }
            disablewhen "{ enablecollisions != polygon doselfcollisions == 0 }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "" }
        }
        parm {
            name    "sdfcollisionsiter"
            label   "Volume Passes"
            type    integer
            default { "4" }
            disablewhen "{ enablecollisions != vdb enablecollisions != volume }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "" }
        }
        parm {
            name    "useground"
            label   "Label"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "groundpos"
            label   "Ground Position"
            type    vector
            size    3
            default { "0" "0" "0" }
            disablewhen "{ useground == 0 }"
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "m1" }
        }
        parm {
            name    "groundup"
            label   "Ground Up"
            type    vector
            size    3
            default { "0" "1" "0" }
            disablewhen "{ useground == 0 }"
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "" }
        }
    }

    groupcollapsible {
        name    "folder6"
        label   "Rest State"

        parm {
            name    "labelparm"
            label   "Label"
            type    label
            nolabel
            joinnext
            default { "" }
        }
        parm {
            name    "doreststretch"
            label   "Stretch"
            type    toggle
            joinnext
            default { "1" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "dorestbend"
            label   "Bend"
            type    toggle
            joinnext
            default { "1" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "dorestvolume"
            label   "Volume"
            type    toggle
            default { "1" }
            parmtag { "script_callback_language" "python" }
        }
    }

    groupcollapsible {
        name    "folder7"
        label   "Simulation"

        groupcollapsible {
            name    "folder8"
            label   "Grain Collisions"

            parm {
                name    "grain_uniformradius"
                label   "Assume Uniform Radius"
                type    toggle
                default { "on" }
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "cvex" }
            }
            parm {
                name    "ignorepiece"
                label   "Ignore Neighbors with Same Name or Piece"
                type    toggle
                default { "on" }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "repulsionweight"
                label   "Repulsion Weight"
                type    float
                default { "1" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "attractionweight"
                label   "Attraction Weight"
                type    float
                default { "0" }
                range   { 0! 0.4! }
                parmtag { "autoscope" "0000000000000000" }
            }
        }

        groupcollapsible {
            name    "folder11"
            label   "Fluids"

            parm {
                name    "viscosity"
                label   "Viscosity"
                type    float
                default { "0.5" }
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "surfacetension"
                label   "Surface Tension"
                type    float
                default { "0.001" }
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
        }

    }

    groupcollapsible {
        name    "folder5_1"
        label   "Snapshot"

        parm {
            name    "movestashtofile"
            label   "Move Stash to New File"
            type    button
            joinnext
            default { "0" }
            disablewhen "{ clothstash == \"\" }"
            parmtag { "script_callback" "kwargs['node'].node('snapshot_constraints').parm('movestashtofile').pressButton() ; kwargs['node'].node('snapshot_cloth').parm('movestashtofile').pressButton() " }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "loadstashfromfile"
            label   "Load Stash from File"
            type    button
            default { "0" }
            disablewhen "{ clothstash != \"\" } { clothstashfile == \"\" } { clothstashfile =~ \"Error: .*\" }"
            parmtag { "script_callback" "kwargs['node'].node('snapshot_constraints').parm('loadstashfromfile').pressButton() ; kwargs['node'].node('snapshot_cloth').parm('loadstashfromfile').pressButton()  " }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "clothstash"
            label   "Cloth Stash"
            type    geometrydata
            invisible
            default { "0" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "clothstashfile"
            label   "Cloth Stash File"
            type    geometry
            default { "" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "filechooser_mode" "read_and_write" }
        }
        parm {
            name    "constraintstash"
            label   "Constraint Stash"
            type    geometrydata
            invisible
            default { "0" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "constraintstashfile"
            label   "Constraint Stash File"
            type    geometry
            default { "" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "filechooser_mode" "read_and_write" }
        }
    }

}
INDX              Contents       9j/   DialogScript   9  2-fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for vellumobject automatically generated

{
    name	vellumobject
    script	vellumobject
    label	"Vellum Object"


    help {
	""
    }

    inputlabel	1	"Input 1"
    inputlabel	2	"Input 2"
    inputlabel	3	"Input 3"
    inputlabel	4	"Input 4"

    group {
        name    "folder0"
        label   "Creation"
        tabbreak

        parm {
            name    "usesimframe"
            label   "Creation Frame Specifies Simulation Frame"
            type    toggle
            default { "0" }
        }
        parm {
            name    "createframe"
            label   "Creation Frame"
            type    integer
            default { "ch(opcreator(\".\")+\"/startframe\")" }
            range   { 0 10 }
        }
        parm {
            name    "objname"
            label   "Object Name"
            type    string
            default { "$OS" }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "solvefirstframe"
            label   "Solve on Creation Frame"
            type    toggle
            default { "on" }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "allowcaching"
            label   "Allow Caching"
            type    toggle
            default { "on" }
            parmtag { "autoscope" "0000000000000000" }
        }
    }

    group {
        name    "folder1"
        label   "Initial Data"

        parm {
            name    "displaysoppath"
            label   "Initial Geometry"
            type    oppath
            default { "" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "opfilter" "!!SOP!!" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "displaygeo"
            label   "Display Geometry"
            type    toggle
            default { "1" }
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "constraintsoppath"
            label   "Initial Constraints"
            type    oppath
            default { "" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "opfilter" "!!SOP!!" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "displayconstraints"
            label   "Display Constraints"
            type    toggle
            default { "0" }
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
        }
    }

    group {
        name    "folder1_1"
        label   "Guides"

        parm {
            name    "showguide"
            label   "Show Guide Geometry"
            type    toggle
            default { "on" }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "guide_wireframe"
            label   "Draw as Wireframe"
            type    toggle
            default { "off" }
            disablewhen "{ showguide == 0 }"
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "export_disable" "1" }
        }
        groupsimple {
            name    "vis_foldergeo"
            label   "Geometry"
            disablewhentab "{ showguide == 0 }"

            parm {
                name    "guide_showthickness"
                label   "showthickness"
                type    toggle
                nolabel
                joinnext
                default { "0" }
            }
            parm {
                name    "guide_thicknesscolor"
                label   "Thickness"
                type    color
                joinnext
                size    3
                default { "0" "0.9" "0" }
                disablewhen "{ guide_showthickness == 0 }"
                range   { 0 1 }
            }
            parm {
                name    "guide_showthicknessextrude"
                label   "Extrude"
                type    toggle
                default { "0" }
                disablewhen "{ guide_showthickness == 0 }"
            }
            parm {
                name    "guide_showfailedself"
                label   "showfailedselfcol"
                type    toggle
                nolabel
                joinnext
                default { "0" }
            }
            parm {
                name    "guide_failedself"
                label   "Failed Self Collision"
                type    color
                size    3
                default { "0.9" "0" "0" }
                disablewhen "{ guide_showfailedself == 0 }"
                range   { 0 1 }
            }
            parm {
                name    "guide_showfailedexternal"
                label   "showfailedexternalcol"
                type    toggle
                nolabel
                joinnext
                default { "0" }
            }
            parm {
                name    "guide_failedexternal"
                label   "Failed External Collision"
                type    color
                size    3
                default { "0.9" "0.45" "0" }
                disablewhen "{ guide_showfailedexternal == 0 }"
                range   { 0 1 }
            }
            parm {
                name    "guide_showwelds"
                label   "showwelds"
                type    toggle
                nolabel
                joinnext
                default { "0" }
            }
            parm {
                name    "guide_weldcolor"
                label   "Welds"
                type    color
                size    3
                default { "0" "0.9" "0.45" }
                disablewhen "{ guide_showwelds == 0 } { vis_mode == stretchstress }"
                range   { 0 1 }
            }
            parm {
                name    "guide_colvisscale"
                label   "Radius Scale"
                type    float
                default { "1" }
                disablewhen "{ guide_showfailedself == 0 guide_showfailedexternal == 0 guide_showwelds == 0 }"
                range   { 0 10 }
            }
        }

        groupsimple {
            name    "vis_folderconstraints"
            label   "Constraints"
            disablewhentab "{ showguide == 0 }"

            parm {
                name    "guide_usegroup"
                label   "usegroup"
                type    toggle
                nolabel
                joinnext
                default { "0" }
            }
            parm {
                name    "guide_constraintgroup"
                label   "Group"
                type    string
                default { "" }
                disablewhen "{ guide_usegroup == 0 }"
            }
            parm {
                name    "guide_showpin"
                label   "showpin"
                type    toggle
                nolabel
                joinnext
                default { "0" }
            }
            parm {
                name    "guide_pincolor"
                label   "Pin to Target"
                type    color
                size    3
                default { "0.25" "0" "0.5" }
                disablewhen "{ guide_showpin == 0 } { vis_mode != none }"
                range   { 0 1 }
            }
            parm {
                name    "guide_showstitch"
                label   "showstitch"
                type    toggle
                nolabel
                joinnext
                default { "0" }
            }
            parm {
                name    "guide_stitchcolor"
                label   "Stitch Points"
                type    color
                size    3
                default { "0.9" "0.9" "0" }
                disablewhen "{ guide_showstitch == 0 } { vis_mode == stretchstress } { vis_mode == stretchdistance } { vis_mode == stretchratio }"
                range   { 0 1 }
            }
            parm {
                name    "guide_showattach"
                label   "showattach"
                type    toggle
                nolabel
                joinnext
                default { "0" }
            }
            parm {
                name    "guide_attachcolor"
                label   "Attach to Geometry"
                type    color
                size    3
                default { "0" "0.45" "0.9" }
                disablewhen "{ guide_showattach == 0 } { vis_mode == stretchstress } { vis_mode == stretchdistance } { vis_mode == stretchratio }"
                range   { 0 1 }
            }
            parm {
                name    "guide_constraintvisradius"
                label   "Radius"
                type    float
                default { "0.01" }
                range   { 0 1 }
            }
        }

        groupsimple {
            name    "vis_foldervis"
            label   "Visualization"
            disablewhentab "{ showguide == 0 }"

            parm {
                name    "vis_mode"
                label   "False Color Mode"
                type    ordinal
                default { "0" }
                menu {
                    "none"                  "None"
                    "stretchstress"         "Stretch Stress"
                    "bendstress"            "Bend Stress"
                    "stretchdistance"       "Stretch Distance"
                    "stretchratio"          "Stretch Ratio"
                    "bendangle"             "Bend Angle"
                    "stretchplasticflow"    "Stretch Plastic Flow"
                    "bendplasticflow"       "Bend Plastic Flow"
                    "volumestress"          "Volume Stress"
                    "volumedistance"        "Volume Distance"
                    "volumeratio"           "Volume Ratio"
                }
            }
            parm {
                name    "vis_displaygeo"
                label   "Display Visualization Geometry"
                type    toggle
                default { "1" }
                disablewhen "{ vis_mode == none }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "vis_maxstretchstress"
                label   "Max Stretch Stress"
                type    float
                default { "0.01" }
                hidewhen "{ vis_mode != stretchstress }"
                range   { 0 10 }
            }
            parm {
                name    "vis_maxbendstress"
                label   "Max Bend Stress"
                type    float
                default { "0.001" }
                hidewhen "{ vis_mode != bendstress }"
                range   { 0 10 }
            }
            parm {
                name    "vis_maxstretchdistance"
                label   "Max Stretch Distance"
                type    float
                default { "0.01" }
                hidewhen "{ vis_mode != stretchdistance }"
                range   { 0 10 }
            }
            parm {
                name    "vis_maxstretchratio"
                label   "Max Stretch Ratio"
                type    float
                default { "0.1" }
                hidewhen "{ vis_mode != stretchratio }"
                range   { 0 10 }
            }
            parm {
                name    "vis_maxbendangle"
                label   "Max Bend Angle"
                type    float
                default { "5" }
                hidewhen "{ vis_mode != bendangle }"
                range   { 0 10 }
            }
            parm {
                name    "vis_maxstretchplasticflow"
                label   "Max Stretch Plastic Flow"
                type    float
                default { "1" }
                hidewhen "{ vis_mode != stretchplasticflow }"
                range   { 0 10 }
            }
            parm {
                name    "vis_maxbendplasticflow"
                label   "Max Bend Plastic Flow"
                type    float
                default { "10" }
                hidewhen "{ vis_mode != bendplasticflow }"
                range   { 0 100 }
            }
            parm {
                name    "vis_maxvolumestress"
                label   "Max Volume Stress"
                type    float
                default { "0.01" }
                hidewhen "{ vis_mode != volumestress }"
                range   { 0 10 }
            }
            parm {
                name    "vis_maxvolumedistance"
                label   "Max Volume Distance"
                type    float
                default { "0.0001" }
                hidewhen "{ vis_mode != volumedistance }"
                range   { 0 10 }
            }
            parm {
                name    "vis_maxvolumeratio"
                label   "Max Volume Ratio"
                type    float
                default { "0.1" }
                hidewhen "{ vis_mode != volumeratio }"
                range   { 0 10 }
            }
        }

    }

}
INDX              Contents       9j/   DialogScript   9  mSfU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for vellumsolver automatically generated

{
    name	vellumsolver
    script	vellumsolver
    label	"Vellum Solver"


    help {
	""
    }

    inputlabel	1	"Objects to Solve"
    inputlabel	2	"Particle Forces"
    inputlabel	3	Post-Solve
    inputlabel	4	"Input 4"

    group {
        name    "folder1"
        label   "Common"

        parm {
            name    "enablecollisions"
            label   "Enable Collisions"
            type    toggle
            default { "1" }
        }
        parm {
            name    "doselfcollisions"
            label   "Self Collisions"
            type    toggle
            default { "on" }
            disablewhen "{ enablecollisions == 0 }"
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "timescale"
            label   "Time Scale"
            type    float
            default { "1" }
            range   { 0 10 }
        }
        parm {
            name    "veldamping"
            label   "Velocity Damping"
            type    float
            default { "0" }
            range   { 0! 1! }
            parmtag { "script_callback_language" "python" }
        }
        groupsimple {
            name    "folder0"
            label   "Iterations"

            parm {
                name    "substeps"
                label   "Substeps"
                type    integer
                default { "1" }
                range   { 1 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "units" "" }
            }
            parm {
                name    "niter"
                label   "Constraint Iterations"
                type    integer
                default { "100" }
                range   { 0 200 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "units" "" }
            }
            parm {
                name    "smoothiter"
                label   "Smoothing Iterations"
                type    integer
                default { "10" }
                range   { 0 50 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "units" "" }
            }
        }

        groupsimple {
            name    "folder6"
            label   "Collisions"

            parm {
                name    "collisioniter"
                label   "Collision Passes"
                type    integer
                default { "10" }
                disablewhen "{ enablecollisions == 0 }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "units" "" }
            }
            parm {
                name    "postcollisioniter"
                label   "Post Collision Passes"
                type    integer
                default { "3" }
                disablewhen "{ enablecollisions == 0 }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "units" "" }
            }
            parm {
                name    "resolveall"
                label   "Resolve All Collisions"
                type    toggle
                nolabel
                joinnext
                default { "on" }
                disablewhen "{ enablecollisions == 0 }"
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "resolveallmax"
                label   "Polish Passes"
                type    integer
                default { "10" }
                disablewhen "{ enablecollisions == 0 } { resolveall == 0 }"
                range   { 0! 10 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "layershock"
                label   "Layer Shock"
                type    float
                default { "4" }
                range   { 1 10 }
                parmtag { "autoscope" "0000000000000000" }
            }
        }

        groupsimple {
            name    "folder3"
            label   "Friction"

            parm {
                name    "static_threshold"
                label   "Static Threshold"
                type    float
                default { "0.5" }
                range   { 0! 10 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "dynamic_scale"
                label   "Dynamic Scale"
                type    float
                default { "0.1" }
                range   { 0! 1! }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "sepparm"
                label   "Separator"
                type    separator
                default { "" }
            }
            parm {
                name    "friction"
                label   "External Enable"
                type    float
                default { "1" }
                range   { 0! 1! }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "selffriction"
                label   "Self Enable"
                type    float
                default { "1" }
                range   { 0! 1! }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "static_sdfscale"
                label   "Static SDF Enable"
                type    float
                default { "1" }
                range   { 0! 1! }
            }
            parm {
                name    "dynamic_sdfscale"
                label   "Dynamic SDF Enable"
                type    float
                default { "1" }
                range   { 0! 1! }
            }
        }

    }

    group {
        name    "folder1_1"
        label   "Advanced"

        parm {
            name    "integration"
            label   "Integration"
            type    ordinal
            default { "secondorder" }
            menu {
                "firstorder"    "First Order"
                "secondorder"   "Second Order"
            }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "externalforce"
            label   "External Forces"
            type    toggle
            default { "1" }
        }
        parm {
            name    "mass"
            label   "Default Mass"
            type    float
            default { "0.1" }
            range   { 0 10 }
            parmtag { "units" "kg1" }
        }
        parm {
            name    "thickness"
            label   "Default Thickness"
            type    float
            default { "0.01" }
            range   { 0 10 }
        }
        groupcollapsible {
            name    "folder10"
            label   "Secondary Constraint Pass"

            parm {
                name    "dosecondary"
                label   "Enable Secondary Constraint Pass"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "secondarygroup"
                label   "Constraint Group"
                type    string
                default { "@type==bend" }
                disablewhen "{ dosecondary == 0 }"
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "secondaryfrequency"
                label   "Solve Frequency"
                type    float
                default { "0.25" }
                disablewhen "{ dosecondary == 0 }"
                range   { 0! 1! }
                parmtag { "script_callback_language" "python" }
            }
        }

        groupcollapsible {
            name    "folder8"
            label   "Multi-Pass Solve"

            parm {
                name    "domultipass"
                label   "Enable Multi-Pass"
                type    toggle
                default { "0" }
            }
            parm {
                name    "maxmultipass"
                label   "Maximum Passes"
                type    integer
                default { "10" }
                disablewhen "{ domultipass == 0 }"
                range   { 0! 20 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "disablestretchratio"
                label   "Disable Stretch Ratio"
                type    float
                default { "0.5" }
                disablewhen "{ domultipass == 0 }"
                range   { 0! 2 }
                parmtag { "autoscope" "0000000000000000" }
            }
        }

        groupcollapsible {
            name    "folder2"
            label   "Collisions"

            parm {
                name    "disablefailedcollisions"
                label   "Disable Failed Collisions"
                type    toggle
                default { "1" }
                disablewhen "{ enablecollisions == 0 }"
                range   { 0! 10 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "resetcollided"
                label   "Reset Collided Points"
                type    toggle
                default { "on" }
                disablewhen "{ disablefailedcollisions == 0 } { enablecollisions == 0 }"
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "initoverlap"
                label   "Initialize Overlap Distances"
                type    toggle
                default { "1" }
                disablewhen "{ enablecollisions == 0 }"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "updateoverlap"
                label   "Update Overlap Distances"
                type    toggle
                default { "on" }
                disablewhen "{ disablefailedcollisions == 0 } { enablecollisions == 0 }"
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "dotet"
                label   "Tetrahedral Open Faces"
                type    toggle
                default { "on" }
                disablewhen "{ enablecollisions == 0 }"
                parmtag { "autoscope" "0000000000000000" }
            }
        }

        groupcollapsible {
            name    "folder4"
            label   "Motion"

            parm {
                name    "domaxaccel"
                label   "Cap Displacement"
                type    toggle
                nolabel
                joinnext
                default { "on" }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "maxaccel"
                label   "Max Acceleration"
                type    float
                default { "30" }
                disablewhen "{ domaxaccel == 0 }"
                range   { 0! 500 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "accelfallback"
                label   "Fallback to First Order Integration on Collision"
                type    toggle
                default { "1" }
                disablewhen "{ domaxaccel == 0 } { integration == firstorder }"
            }
            parm {
                name    "limitaccel"
                label   "Limit Acceleration in Velocity Update"
                type    toggle
                default { "0" }
                disablewhen "{ domaxaccel == 0 }"
            }
            parm {
                name    "limitdisplace"
                label   "Limit Displacement on Collision"
                type    toggle
                default { "0" }
                disablewhen "{ domaxaccel == 0 } { enablecollisions == 0 }"
            }
            parm {
                name    "disablebrokenwelds"
                label   "Disable Broken Welds"
                type    toggle
                default { "0" }
            }
            parm {
                name    "normalizestress"
                label   "Normalize Stress"
                type    toggle
                default { "1" }
            }
            parm {
                name    "breakfrequency"
                label   "Breaking Frequency"
                type    ordinal
                default { "perframe" }
                menu {
                    "never"         "Never"
                    "perframe"      "Per Frame"
                    "persubstep"    "Per Substep"
                }
            }
            parm {
                name    "slidingmethod"
                label   "Sliding Method"
                type    ordinal
                default { "closest" }
                menu {
                    "closest"       "Closest Point"
                    "traverse"      "Traverse Polygons"
                    "traversetris"  "Traverse Triangles (Optimized)"
                }
                parmtag { "script_callback_language" "python" }
            }
        }

        groupcollapsible {
            name    "folder7"
            label   "Sleeping"

            parm {
                name    "doautosleep"
                label   "Enable Auto Sleep"
                type    toggle
                default { "0" }
            }
            parm {
                name    "sleep_velocitythreshold"
                label   "Velocity Threshold"
                type    float
                default { "0.01" }
                disablewhen "{ doautosleep == 0 }"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "cvex" }
            }
            parm {
                name    "sleep_delay"
                label   "Sleep Delay"
                type    float
                default { "0.1" }
                disablewhen "{ doautosleep == 0 }"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "cvex" }
            }
        }

        groupcollapsible {
            name    "folder5"
            label   "Grain Collisions"

            parm {
                name    "grain_searchscale"
                label   "Search Scale"
                type    float
                default { "2.5" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "cvex" }
            }
            parm {
                name    "grain_maxneighbor"
                label   "Max Neighbors"
                type    integer
                default { "20" }
                disablewhen "{ oclneighborsearch == 1 }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "cvex" }
            }
            parm {
                name    "grain_weight"
                label   "Global Weight"
                type    float
                default { "0.5" }
                range   { 0 0.5 }
            }
            parm {
                name    "grain_uniformradius"
                label   "Assume Uniform Radius"
                type    toggle
                default { "1" }
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "cvex" }
            }
            parm {
                name    "ignorepiece"
                label   "Ignore Neighbors with Same Name or Piece"
                type    toggle
                default { "on" }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "doconstraintaveraging"
                label   "Enable Constraint Averaging"
                type    toggle
                default { "0" }
            }
            parm {
                name    "repulsionweight"
                label   "Repulsion Weight"
                type    float
                default { "1" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "repulsionstiffness"
                label   "Repulsion"
                type    log
                default { "10000" }
                range   { 0 100000 }
            }
            parm {
                name    "attractionweight"
                label   "Attraction Weight"
                type    float
                default { "0" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "attractionstiffness"
                label   "Attraction"
                type    log
                default { "10" }
                range   { 0 1000 }
            }
            parm {
                name    "domassshock"
                label   "Enable Mass Shock"
                type    toggle
                default { "1" }
            }
            parm {
                name    "massshockpower"
                label   "Shock Scaling Power"
                type    float
                default { "1" }
                disablewhen "{ domassshock == 0 }"
                range   { 0 4 }
            }
            parm {
                name    "massshockaxis"
                label   "Shock Axis"
                type    vector
                size    3
                default { "0" "1" "0" }
                disablewhen "{ domassshock == 0 }"
                range   { -1 1 }
            }
        }

        groupcollapsible {
            name    "folder11"
            label   "Fluids"

            parm {
                name    "fluid_searchscale"
                label   "Kernel Radius Scale"
                type    float
                default { "4" }
                range   { 3 5 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "viscosity"
                label   "Viscosity"
                type    float
                default { "0.5" }
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "collisionviscosity"
                label   "SDF Collision Viscosity"
                type    float
                default { "0" }
                disablewhen "{ minimalmode == 0 } { useground == 0 sdfcollisions == 0 }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "viscositysolver"
                label   "Viscosity Solver"
                type    ordinal
                default { "implicit" }
                menu {
                    "explicit"  "Explicit"
                    "implicit"  "Implicit"
                }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "tol"
                label   "Viscosity Tolerance"
                type    float
                default { "0.001" }
                disablewhen "{ viscositysolver == explicit }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "maxviscosityiterations"
                label   "Max Viscosity Iterations"
                type    integer
                default { "500" }
                disablewhen "{ viscositysolver == explicit }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "surfacetension"
                label   "Surface Tension"
                type    float
                default { "0.001" }
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "adhesion"
                label   "Adhesion"
                type    float
                default { "0" }
                range   { 0 10 }
                parmtag { "autoscope" "1000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "dosort"
                label   "Spatial Sort"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "sortinterval"
                label   "Spatial Sort Interval"
                type    integer
                default { "20" }
                disablewhen "{ dosort == 0 }"
                range   { 0 10 }
                parmtag { "script_callback_language" "python" }
            }
        }

        groupcollapsible {
            name    "folder9"
            label   "Minimal Solver"

            parm {
                name    "minimalmode"
                label   "Enable Minimal Solver"
                type    toggle
                default { "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "minimalnoinit"
                label   "Bypass Initialization in Minimal Solver"
                type    toggle
                default { "0" }
                disablewhen "{ minimalmode == 0 }"
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "forcefrequency"
                label   "Evaluate POP Forces"
                type    ordinal
                default { "perframe" }
                disablewhen "{ minimalmode == 0 }"
                menu {
                    "perframe"      "Per Frame"
                    "persubstep"    "Per Substep"
                }
            }
            parm {
                name    "useground"
                label   "Label"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                disablewhen "{ minimalmode == 0 }"
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "groundpos"
                label   "Ground Position"
                type    vector
                size    3
                default { "0" "0" "0" }
                disablewhen "{ minimalmode == 0 } { useground == 0 }"
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "groundup"
                label   "Ground Up Direction"
                type    vector
                size    3
                default { "0" "1" "0" }
                disablewhen "{ minimalmode == 0 } { useground == 0 }"
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "usegravity"
                label   "Label"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                disablewhen "{ minimalmode == 0 }"
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "gravity"
                label   "Gravity"
                type    vector
                size    3
                default { "0" "-9.81" "0" }
                disablewhen "{ minimalmode == 0 } { usegravity == 0 }"
                range   { -1 1 }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "sdfcollisions"
                label   "Label"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                disablewhen "{ minimalmode == 0 }"
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "sdfpath"
                label   "SDF Collision Path"
                type    oppath
                default { "" }
                disablewhen "{ sdfcollisions == 0 } { minimalmode == 0 }"
                parmtag { "export_disable" "1" }
                parmtag { "opfilter" "!!SOP!!" }
                parmtag { "oprelative" "." }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "sdfcollisioniter"
                label   "Collision Passes"
                type    integer
                default { "25" }
                disablewhen "{ sdfcollisions == 0 } { minimalmode == 0 }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "units" "" }
            }
            parm {
                name    "sdfresolveall"
                label   "Resolve All Collisions"
                type    toggle
                nolabel
                joinnext
                default { "on" }
                disablewhen "{ sdfcollisions == 0 } { minimalmode == 0 }"
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "sdfresolveallmax"
                label   "Polish Passes"
                type    integer
                default { "5" }
                disablewhen "{ sdfresolveall == 0 } { sdfcollisions == 0 } { minimalmode == 0 }"
                range   { 0! 10 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "sdfaccurategrad"
                label   "Use Accurate Gradient"
                type    toggle
                default { "0" }
                disablewhen "{ sdfcollisions == 0 } { minimalmode == 0 }"
                parmtag { "script_callback_language" "python" }
            }
        }

        groupcollapsible {
            name    "folder0_1"
            label   "OpenCL"

            parm {
                name    "kerneloptions"
                label   "Kernel Options"
                type    string
                default { "-cl-fast-relaxed-math" }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "finish"
                label   "Finish Kernels"
                type    toggle
                default { "off" }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "recompile"
                label   "Recompile Kernels"
                type    toggle
                default { "off" }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "oclgraphcolor"
                label   "OpenCL Graph Coloring"
                type    toggle
                default { "1" }
            }
            parm {
                name    "oclneighborsearch"
                label   "OpenCL Neighbor Search"
                type    toggle
                default { "1" }
                disablewhen "{ grain_uniformradius == 0 }"
            }
        }

    }

}
INDX              Contents       9j/   DialogScript   9  :fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for vellumsolver automatically generated

{
    name	vellumsolver
    script	vellumsolver
    label	"Vellum Solver"

    help {
	""
    }

    inputlabel	1	"Vellum Geometry"
    inputlabel	2	"Constraint Geometry"
    inputlabel	3	"Collision Geometry"
    parmtag { inputisref3 1 }
    inputlabel	4	"Sub-Network Input #4"
    outputlabel	1	"Vellum Geometry"
    outputlabel	2	"Constraint Geometry"
    outputlabel	3	"Collision Geometry"

    parm {
        name    "resimulate"
        label   "Reset Simulation"
        type    button
        default { "0" }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "startframe"
        label   "Start Frame"
        type    integer
        default { "1" }
        range   { 1 240 }
        parmtag { "autoscope" "0000000000000000" }
    }
    group {
        name    "folder0_1"
        label   "Solver"

        parm {
            name    "solvermode"
            label   "Solver Mode"
            type    ordinal
            default { "0" }
            menu {
                "full"      "Full"
                "minimal"   "Minimal (Grains and Fluid)"
            }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "timescale"
            label   "Time Scale"
            type    float
            default { "1" }
            range   { 0 2 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "dosubstep"
            label   "Use Global Substeps"
            type    toggle
            nolabel
            joinnext
            default { "0" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "substep"
            label   "Global Substeps"
            type    integer
            default { "1" }
            disablewhen "{ dosubstep == 0 }"
            range   { 1! 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "substeps"
            label   "Substeps"
            type    integer
            default { "1" }
            range   { 1 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "" }
        }
        parm {
            name    "niter"
            label   "Constraint Iterations"
            type    integer
            default { "100" }
            range   { 0 200 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "" }
        }
        parm {
            name    "smoothiter"
            label   "Smoothing Iterations"
            type    integer
            default { "10" }
            range   { 0 50 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "" }
        }
        group {
            name    "folder4"
            label   "Collisions"

            parm {
                name    "enablecollisions"
                label   "Enable Collisions"
                type    toggle
                default { "on" }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "doselfcollisions"
                label   "Self Collisions"
                type    toggle
                default { "on" }
                disablewhen "{ enablecollisions == 0 }"
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "useground"
                label   "Ground Plane"
                type    toggle
                nolabel
                joinnext
                default { "0" }
                disablewhen "{ enablecollisions == off }"
            }
            parm {
                name    "groundpos"
                label   "Ground Position"
                type    vector
                size    3
                default { "0" "0" "0" }
                disablewhen "{ enablecollisions == off } { useground == 0 }"
                range   { -1 1 }
            }
            parm {
                name    "collisionsiter"
                label   "Collision Passes"
                type    integer
                default { "10" }
                disablewhen "{ enablecollisions == 0 }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "units" "" }
            }
            parm {
                name    "postcollisioniter"
                label   "Post Collision Passes"
                type    integer
                default { "3" }
                disablewhen "{ enablecollisions == 0 }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "units" "" }
            }
            parm {
                name    "resolveall"
                label   "Resolve All Collisions"
                type    toggle
                nolabel
                joinnext
                default { "on" }
                disablewhen "{ enablecollisions == 0 }"
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "resolveallmax"
                label   "Polish Passes"
                type    integer
                default { "10" }
                disablewhen "{ enablecollisions == 0 } { resolveall == 0 }"
                range   { 0! 10 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "layershock"
                label   "Layer Shock"
                type    float
                default { "4" }
                disablewhen "{ enablecollisions == 0 }"
                range   { 1 10 }
                parmtag { "autoscope" "0000000000000000" }
            }
        }

    }

    group {
        name    "folder0_1_1"
        label   "Forces"

        parm {
            name    "gravity"
            label   "Gravity"
            type    vector
            size    3
            default { "0" "-9.80665" "0" }
            range   { -1 1 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "units" "m1s-2" }
        }
        parm {
            name    "dowind"
            label   "Activation"
            type    toggle
            nolabel
            joinnext
            default { "1" }
            range   { 0 1 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "wind"
            label   "Built-in Wind"
            type    direction
            size    3
            default { "0" "0" "0" }
            disablewhen "{ dowind == 0 }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "cvex" }
            parmtag { "units" "kg1m1s-2" }
        }
        parm {
            name    "windspeed"
            label   "Built-in Wind Speed"
            type    float
            default { "1" }
            hidewhen "{ dowind == 0 }"
            range   { 0 10 }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "winddrag"
            label   "Built-in Wind Drag"
            type    float
            default { "0.1" }
            hidewhen "{ dowind == 0 }"
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "parmvop" "1" }
            parmtag { "shaderparmcontexts" "cvex" }
        }
        parm {
            name    "veldamping"
            label   "Velocity Damping"
            type    float
            default { "0" }
            range   { 0! 1! }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        groupcollapsible {
            name    "folder12"
            label   "Wind Shadowing"
            parmtag { "sidefx::header_parm" "windshadow_type" }

            parm {
                name    "windshadow_type"
                label   "Type"
                type    ordinal
                default { "0" }
                menu {
                    "none"  "None"
                    "ray"   "Ray"
                }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_doexternal"
                label   "External Shadow"
                type    toggle
                nolabel
                joinnext
                default { "on" }
                disablewhen "{ windshadow_type == none }"
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_externalmask"
                label   "External Shadow"
                type    float
                default { "1" }
                disablewhen "{ windshadow_doexternal == 0 } { windshadow_type == none }"
                range   { 0! 1! }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_doself"
                label   "Self Shadow"
                type    toggle
                nolabel
                joinnext
                default { "off" }
                disablewhen "{ windshadow_type == none }"
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_selfmask"
                label   "Self Shadow"
                type    float
                default { "1" }
                disablewhen "{ windshadow_doself == 0 } { windshadow_type == none }"
                range   { 0! 1! }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_maxdistance"
                label   "Max Distance"
                type    float
                default { "1" }
                disablewhen "{ windshadow_type == none }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
                parmtag { "units" "m1" }
            }
            parm {
                name    "windshadow_raybias"
                label   "Self Shadow Bias"
                type    float
                default { "0.0001" }
                disablewhen "{ windshadow_type == none }"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_coneangle"
                label   "Shadow Angle"
                type    float
                default { "0" }
                disablewhen "{ windshadow_type == none }"
                range   { 0! 180 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_samples"
                label   "Shadow Samples"
                type    integer
                default { "8" }
                disablewhen "{ windshadow_type == none }"
                range   { 1! 16 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_maskfalloff"
                label   "Falloff by Distance"
                type    ramp_flt
                default { "2" }
                disablewhen "{ windshadow_type == none }"
                range   { 1! 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "rampfloatdefault" "1pos ( 0.8500000238418579 ) 1value ( 1 ) 1interp ( linear ) 2pos ( 0.9973856210708618 ) 2value ( 0 ) 2interp ( linear )" }
                parmtag { "rampshowcontrolsdefault" "0" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_doblur"
                label   "Blur Wind Shadow"
                type    toggle
                nolabel
                joinnext
                default { "off" }
                disablewhen "{ windshadow_type == none }"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_blur_iterations"
                label   "Blur Iterations"
                type    integer
                default { "4" }
                disablewhen "{ windshadow_doblur != 1 } { windshadow_type == none }"
                range   { 0 100 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_blur_influencetype"
                label   "Blur Influence Type"
                type    ordinal
                default { "connectivity" }
                disablewhen "{ windshadow_doblur != 1 } { windshadow_type == none }"
                menu {
                    "connectivity"  "Connectivity"
                    "proximity"     "Proximity"
                }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_blur_proxrad"
                label   "Proximity Radius"
                type    float
                default { "0.5" }
                disablewhen "{ windshadow_doblur == 0 } { windshadow_type == none }"
                hidewhen "{ windshadow_blur_influencetype != proximity }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "windshadow_blur_maxneigh"
                label   "Max Neighbors"
                type    integer
                default { "20" }
                disablewhen "{ windshadow_doblur == 0 } { windshadow_type == none }"
                hidewhen "{ windshadow_blur_influencetype != proximity }"
                range   { 0 50 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
        }

        groupsimple {
            name    "folder2"
            label   "Friction"

            parm {
                name    "static_threshold"
                label   "Static Threshold"
                type    float
                default { "0.5" }
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "dynamic_scale"
                label   "Dynamic Scale"
                type    float
                default { "0.1" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "sepparm"
                label   "Separator"
                type    separator
                default { "" }
            }
            parm {
                name    "friction"
                label   "Enable External"
                type    toggle
                default { "1" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "selffriction"
                label   "Enable Self"
                type    toggle
                default { "1" }
                range   { 0! 1! }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "static_sdfscale"
                label   "Ground Static Scale"
                type    float
                default { "1" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "dynamic_sdfscale"
                label   "Ground Dynamic Scale"
                type    float
                default { "1" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
        }

    }

    group {
        name    "folder0_1_2"
        label   "Simulation"

        parm {
            name    "cacheenabled"
            label   "Cache Enabled"
            type    toggle
            nolabel
            joinnext
            default { "1" }
        }
        parm {
            name    "cachemaxsize"
            label   "Cache Memory (MB)"
            type    integer
            default { "5000" }
            disablewhen "{ cacheenabled == 0 }"
            range   { 0! 1000 }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "autoresim"
            label   "Enable Automatic Resimulation"
            type    toggle
            default { "on" }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        parm {
            name    "simulationtype"
            label   "Simulation Type"
            type    ordinal
            default { "dynamic" }
            menu {
                "quasistatic"   "Quasistatic"
                "dynamic"       "Dynamic"
            }
        }
        parm {
            name    "quasistaticframes"
            label   "Quasistatic Frames"
            type    integer
            default { "10" }
            disablewhen "{ simulationtype == dynamic }"
            range   { 0! 100 }
        }
        parm {
            name    "zerodynamics"
            label   "Clear Dynamics"
            type    toggle
            default { "0" }
        }
    }

    group {
        name    "folder0_1_3"
        label   "Advanced"

        parm {
            name    "targetmethod"
            label   "Target"
            type    ordinal
            default { "0" }
            menu {
                "first"     "First Input"
                "soppath"   "SOP Path"
            }
        }
        parm {
            name    "targetpath"
            label   "Target Path"
            type    oppath
            default { "" }
            hidewhen "{ targetmethod != soppath }"
            parmtag { "opfilter" "!!SOP!!" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "integration"
            label   "Integration"
            type    ordinal
            default { "secondorder" }
            menu {
                "firstorder"    "First Order"
                "secondorder"   "Second Order"
            }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "thickness"
            label   "Default Thickness"
            type    float
            default { "0.01" }
            range   { 0 10 }
            parmtag { "autoscope" "0000000000000000" }
            parmtag { "script_callback_language" "python" }
        }
        groupcollapsible {
            name    "folder10"
            label   "Secondary Constraint Pass"

            parm {
                name    "dosecondary"
                label   "Enable Secondary Constraint Pass"
                type    toggle
                default { "off" }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "secondarygroup"
                label   "Constraint Group"
                type    string
                default { "@type==bend" }
                disablewhen "{ dosecondary == 0 }"
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "secondaryfrequency"
                label   "Solve Frequency"
                type    float
                default { "0.25" }
                disablewhen "{ dosecondary == 0 }"
                range   { 0! 1! }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
        }

        groupcollapsible {
            name    "folder7"
            label   "Multi-Pass Solve"

            parm {
                name    "domultipass"
                label   "Enable Multi-Pass"
                type    toggle
                default { "off" }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "maxmultipass"
                label   "Maximum Passes"
                type    integer
                default { "10" }
                disablewhen "{ domultipass == 0 }"
                range   { 0! 20 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "disablestretchratio"
                label   "Disable Stretch Ratio"
                type    float
                default { "0.5" }
                disablewhen "{ domultipass == 0 }"
                range   { 0! 2 }
                parmtag { "autoscope" "0000000000000000" }
            }
        }

        groupcollapsible {
            name    "folder5"
            label   "Motion"

            parm {
                name    "domaxaccel"
                label   "Cap Displacement"
                type    toggle
                nolabel
                joinnext
                default { "on" }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "maxaccel"
                label   "Max Acceleration"
                type    float
                default { "30" }
                disablewhen "{ domaxaccel == 0 }"
                range   { 0! 500 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "units" "m1s-2" }
            }
            parm {
                name    "accelfallback"
                label   "Fallback to First Order Integration on Collision"
                type    toggle
                default { "on" }
                disablewhen "{ domaxaccel == 0 } { integration == firstorder }"
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "limitaccel"
                label   "Limit Acceleration in Velocity Update"
                type    toggle
                default { "off" }
                disablewhen "{ domaxaccel == 0 }"
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "limitdisplace"
                label   "Limit Displacement on Collision"
                type    toggle
                default { "off" }
                disablewhen "{ domaxaccel == 0 } { enablecollisions == 0 }"
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "disablebrokenwelds"
                label   "Disable Broken Welds"
                type    toggle
                default { "off" }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "normalizestress"
                label   "Normalize Stress"
                type    toggle
                default { "on" }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "slidingmethod"
                label   "Sliding Method"
                type    ordinal
                default { "closest" }
                menu {
                    "closest"       "Closest Point"
                    "traverse"      "Traverse Polygons"
                    "traversetris"  "Traverse Triangles (Optimized)"
                }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
        }

        groupcollapsible {
            name    "folder8"
            label   "Sleeping"

            parm {
                name    "doautosleep"
                label   "Enable Auto Sleep"
                type    toggle
                default { "off" }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "sleep_velocitythreshold"
                label   "Velocity Threshold"
                type    float
                default { "0.01" }
                disablewhen "{ doautosleep == 0 }"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "cvex" }
            }
            parm {
                name    "sleep_delay"
                label   "Sleep Delay"
                type    float
                default { "0.1" }
                disablewhen "{ doautosleep == 0 }"
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "cvex" }
            }
        }

        groupcollapsible {
            name    "folder9"
            label   "Grain Collisions"

            parm {
                name    "grain_searchscale"
                label   "Search Scale"
                type    float
                default { "2.5" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "cvex" }
            }
            parm {
                name    "grain_maxneighbor"
                label   "Max Neighbors"
                type    integer
                default { "20" }
                disablewhen "{ oclneighborsearch == 1 }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "cvex" }
            }
            parm {
                name    "grain_uniformradius"
                label   "Assume Uniform Radius"
                type    toggle
                default { "on" }
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "parmvop" "1" }
                parmtag { "shaderparmcontexts" "cvex" }
            }
            parm {
                name    "ignorepiece"
                label   "Ignore Neighbors with Same Name or Piece"
                type    toggle
                default { "on" }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "repulsionweight"
                label   "Repulsion Weight"
                type    float
                default { "1" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "attractionweight"
                label   "Attraction Weight"
                type    float
                default { "0" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
            }
        }

        groupcollapsible {
            name    "folder11"
            label   "Fluids"

            parm {
                name    "fluid_searchscale"
                label   "Kernel Radius Scale"
                type    float
                default { "4" }
                range   { 3 5 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "viscosity"
                label   "Viscosity"
                type    float
                default { "5" }
                range   { 0 1000 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "collisionviscosity"
                label   "Collision Viscosity"
                type    float
                default { "0" }
                range   { 0 1000 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "viscositysolver"
                label   "Viscosity Solver"
                type    ordinal
                default { "implicit" }
                menu {
                    "explicit"  "Explicit"
                    "implicit"  "Implicit"
                }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "tol"
                label   "Viscosity Tolerance"
                type    float
                default { "0.001" }
                disablewhen "{ viscositysolver == explicit }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "maxviscosityiterations"
                label   "Max Viscosity Iterations"
                type    integer
                default { "500" }
                disablewhen "{ viscositysolver == explicit }"
                range   { 0 1000 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "surfacetension"
                label   "Surface Tension"
                type    float
                default { "0.0001" }
                range   { 0 1 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "adhesion"
                label   "Adhesion"
                type    float
                default { "0" }
                range   { 0 1 }
                parmtag { "autoscope" "1000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "dosort"
                label   "Spatial Sort"
                type    toggle
                nolabel
                joinnext
                default { "off" }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
            parm {
                name    "sortinterval"
                label   "Spatial Sort Interval"
                type    integer
                default { "20" }
                disablewhen "{ dosort == 0 }"
                range   { 0 10 }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
        }

        groupcollapsible {
            name    "folder6"
            label   "OpenCL"

            parm {
                name    "oclgraphcolor"
                label   "OpenCL Graph Coloring"
                type    toggle
                default { "on" }
                parmtag { "autoscope" "0000000000000000" }
            }
            parm {
                name    "oclneighborsearch"
                label   "OpenCL Neighbor Search"
                type    toggle
                default { "on" }
                disablewhen "{ grain_uniformradius == 0 }"
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "script_callback_language" "python" }
            }
        }

    }

    group {
        name    "folder0_1_4"
        label   "Visualize"

        parm {
            name    "showcollision"
            label   "Show Collision"
            type    toggle
            default { "1" }
        }
        import {
            label   "Visualize Import"
            source  "op:dopnet1/vellumobject1"
            mask    "showguide guide_* vis_*"
            enable  1

            parm {
                name    "showguide"
                label   "Show Guide Geometry"
                type    toggle
                default { "on" }
                parmtag { "autoscope" "0000000000000000" }
                parmtag { "import_source" "op:dopnet1/vellumobject1" }
                parmtag { "import_token" "showguide" }
            }
            groupsimple {
                name    "folder0"
                label   "Geometry"
                disablewhentab "{ showguide == 0 }"
                grouptag { "import_source" "op:dopnet1/vellumobject1" }
                grouptag { "import_token" "vis_foldergeo2:Geometry" }

                parm {
                    name    "guide_showthickness"
                    label   "showthickness"
                    type    toggle
                    nolabel
                    joinnext
                    default { "off" }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_showthickness" }
                }
                parm {
                    name    "guide_thicknesscolor"
                    label   "Thickness"
                    type    color
                    joinnext
                    size    3
                    default { "0" "0.9" "0" }
                    disablewhen "{ guide_showthickness == 0 }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_thicknesscolor" }
                }
                parm {
                    name    "guide_showthicknessextrude"
                    label   "Extrude"
                    type    toggle
                    default { "off" }
                    disablewhen "{ guide_showthickness == 0 }"
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_showthicknessextrude" }
                }
                parm {
                    name    "guide_showfailedself"
                    label   "showfailedselfcol"
                    type    toggle
                    nolabel
                    joinnext
                    default { "off" }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_showfailedself" }
                }
                parm {
                    name    "guide_failedself"
                    label   "Failed Self Collision"
                    type    color
                    size    3
                    default { "0.9" "0" "0" }
                    disablewhen "{ guide_showfailedself == 0 }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_failedself" }
                }
                parm {
                    name    "guide_showfailedexternal"
                    label   "showfailedexternalcol"
                    type    toggle
                    nolabel
                    joinnext
                    default { "off" }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_showfailedexternal" }
                }
                parm {
                    name    "guide_failedexternal"
                    label   "Failed External Collision"
                    type    color
                    size    3
                    default { "0.9" "0.45" "0" }
                    disablewhen "{ guide_showfailedexternal == 0 }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_failedexternal" }
                }
                parm {
                    name    "guide_showwelds"
                    label   "showwelds"
                    type    toggle
                    nolabel
                    joinnext
                    default { "off" }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_showwelds" }
                }
                parm {
                    name    "guide_weldcolor"
                    label   "Welds"
                    type    color
                    size    3
                    default { "0" "0.9" "0.45" }
                    disablewhen "{ guide_showwelds == 0 } { vis_mode == stretchstress }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_weldcolor" }
                }
                parm {
                    name    "guide_colvisscale"
                    label   "Radius Scale"
                    type    float
                    default { "1" }
                    disablewhen "{ guide_showfailedself == 0 guide_showfailedexternal == 0 guide_showwelds == 0 }"
                    range   { 0 10 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_colvisscale" }
                }
            }

            groupsimple {
                name    "folder1"
                label   "Constraints"
                disablewhentab "{ showguide == 0 }"
                grouptag { "import_source" "op:dopnet1/vellumobject1" }
                grouptag { "import_token" "vis_folderconstraints2:Constraints" }

                parm {
                    name    "guide_usegroup"
                    label   "usegroup"
                    type    toggle
                    nolabel
                    joinnext
                    default { "off" }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_usegroup" }
                }
                parm {
                    name    "guide_constraintgroup"
                    label   "Group"
                    type    string
                    default { "" }
                    disablewhen "{ guide_usegroup == 0 }"
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_constraintgroup" }
                }
                parm {
                    name    "guide_showpin"
                    label   "showpin"
                    type    toggle
                    nolabel
                    joinnext
                    default { "off" }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_showpin" }
                }
                parm {
                    name    "guide_pincolor"
                    label   "Pin to Target"
                    type    color
                    size    3
                    default { "0.25" "0" "0.5" }
                    disablewhen "{ guide_showpin == 0 } { vis_mode != none }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_pincolor" }
                }
                parm {
                    name    "guide_showstitch"
                    label   "showstitch"
                    type    toggle
                    nolabel
                    joinnext
                    default { "off" }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_showstitch" }
                }
                parm {
                    name    "guide_stitchcolor"
                    label   "Stitch Points"
                    type    color
                    size    3
                    default { "0.9" "0.9" "0" }
                    disablewhen "{ guide_showstitch == 0 } { vis_mode == stretchstress } { vis_mode == stretchdistance } { vis_mode == stretchratio }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_stitchcolor" }
                }
                parm {
                    name    "guide_showattach"
                    label   "showattach"
                    type    toggle
                    nolabel
                    joinnext
                    default { "off" }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_showattach" }
                }
                parm {
                    name    "guide_attachcolor"
                    label   "Attach to Geometry"
                    type    color
                    size    3
                    default { "0" "0.45" "0.9" }
                    disablewhen "{ guide_showattach == 0 } { vis_mode == stretchstress } { vis_mode == stretchdistance } { vis_mode == stretchratio }"
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_attachcolor" }
                }
                parm {
                    name    "guide_constraintvisradius"
                    label   "Radius"
                    type    float
                    default { "0.01" }
                    range   { 0 1 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "guide_constraintvisradius" }
                }
            }

            groupsimple {
                name    "folder3"
                label   "Visualization"
                disablewhentab "{ showguide == 0 }"
                grouptag { "import_source" "op:dopnet1/vellumobject1" }
                grouptag { "import_token" "vis_foldervis2:Visualization" }

                parm {
                    name    "vis_mode"
                    label   "False Color Mode"
                    type    ordinal
                    default { "none" }
                    menu {
                        "none"                  "None"
                        "stretchstress"         "Stretch Stress"
                        "bendstress"            "Bend Stress"
                        "stretchdistance"       "Stretch Distance"
                        "stretchratio"          "Stretch Ratio"
                        "bendangle"             "Bend Angle"
                        "stretchplasticflow"    "Stretch Plastic Flow"
                        "bendplasticflow"       "Bend Plastic Flow"
                        "volumestress"          "Volume Stress"
                        "volumedistance"        "Volume Distance"
                        "volumeratio"           "Volume Ratio"
                    }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "vis_mode" }
                }
                parm {
                    name    "vis_displaygeo"
                    label   "Display Visualization Geometry"
                    type    toggle
                    default { "on" }
                    disablewhen "{ vis_mode == none }"
                    range   { 0 10 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "vis_displaygeo" }
                }
                parm {
                    name    "vis_maxstretchstress"
                    label   "Max Stretch Stress"
                    type    float
                    default { "0.01" }
                    hidewhen "{ vis_mode != stretchstress }"
                    range   { 0 10 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "vis_maxstretchstress" }
                }
                parm {
                    name    "vis_maxbendstress"
                    label   "Max Bend Stress"
                    type    float
                    default { "0.001" }
                    hidewhen "{ vis_mode != bendstress }"
                    range   { 0 10 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "vis_maxbendstress" }
                }
                parm {
                    name    "vis_maxstretchdistance"
                    label   "Max Stretch Distance"
                    type    float
                    default { "0.01" }
                    hidewhen "{ vis_mode != stretchdistance }"
                    range   { 0 10 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "vis_maxstretchdistance" }
                }
                parm {
                    name    "vis_maxstretchratio"
                    label   "Max Stretch Ratio"
                    type    float
                    default { "0.1" }
                    hidewhen "{ vis_mode != stretchratio }"
                    range   { 0 10 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "vis_maxstretchratio" }
                }
                parm {
                    name    "vis_maxbendangle"
                    label   "Max Bend Angle"
                    type    float
                    default { "5" }
                    hidewhen "{ vis_mode != bendangle }"
                    range   { 0 10 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "vis_maxbendangle" }
                }
                parm {
                    name    "vis_maxstretchplasticflow"
                    label   "Max Stretch Plastic Flow"
                    type    float
                    default { "1" }
                    hidewhen "{ vis_mode != stretchplasticflow }"
                    range   { 0 10 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "vis_maxstretchplasticflow" }
                }
                parm {
                    name    "vis_maxbendplasticflow"
                    label   "Max Bend Plastic Flow"
                    type    float
                    default { "10" }
                    hidewhen "{ vis_mode != bendplasticflow }"
                    range   { 0 100 }
                    parmtag { "autoscope" "0000000000000000" }
                    parmtag { "import_source" "op:dopnet1/vellumobject1" }
                    parmtag { "import_token" "vis_maxbendplasticflow" }
                }
                parm {
                    name    "vis_maxvolumestress"
                    label   "Max Volume Stress"
                    type    float
                    default { "0.01" }
                    hidewhen "{ vis_mode != volumestress }"
                    range   { 0 10 }
                }
                parm {
                    name    "vis_maxvolumedistance"
                    label   "Max Volume Distance"
                    type    float
                    default { "0.0001" }
                    hidewhen "{ vis_mode != volumedistance }"
                    range   { 0 10 }
                }
                parm {
                    name    "vis_maxvolumeratio"
                    label   "Max Volume Ratio"
                    type    float
                    default { "0.1" }
                    hidewhen "{ vis_mode != volumeratio }"
                    range   { 0 10 }
                }
            }

        }

    }

}
INDX              Contents       9j/   DialogScript   9  fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for vellumsource automatically generated

{
    name	vellumsource
    script	vellumsource
    label	"Vellum Source"


    help {
	""
    }

    inputlabel	1	"Input 1"
    inputlabel	2	"Input 2"
    inputlabel	3	"Input 3"
    inputlabel	4	"Input 4"

    parm {
        name    "activate"
        label   "Activation"
        type    float
        default { "1" }
        range   { 0 1 }
    }
    parm {
        name    "emittype"
        label   "Emission Type"
        type    ordinal
        default { "0" }
        menu {
            "once"          "Only Once"
            "continuous"    "Each Frame"
            "persubstep"    "Each Substep"
            "points"        "Instance on Points"
        }
    }
    parm {
        name    "particledensity"
        label   "Particle Density"
        type    float
        default { "1" }
        range   { 0.5 2 }
        parmtag { "script_callback_language" "python" }
    }
    group {
        name    "folder1"
        label   "Source"

        parm {
            name    "soppath"
            label   "SOP Path"
            type    oppath
            default { "" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "targetpath"
            label   "Target Path"
            type    oppath
            default { "" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "constraintpath"
            label   "Constraint SOP Path"
            type    oppath
            default { "" }
            parmtag { "oprelative" "." }
        }
        parm {
            name    "instancepath"
            label   "Instance Points"
            type    oppath
            default { "" }
            disablewhen "{ emittype != points }"
            parmtag { "oprelative" "." }
        }
        parm {
            name    "setpt"
            label   "Copy Instance Attr."
            type    string
            default { "" }
            hidewhen "{ emittype != points }"
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "vellumname"
            label   "Vellum Patch Name"
            type    string
            default { "$OS" }
        }
    }

    group {
        name    "folder1_1"
        label   "Stream"

        parm {
            name    "streamname"
            label   "Stream Name"
            type    string
            default { "$OS" }
        }
    }

    group {
        name    "folder1_2"
        label   "Bindings"

        parm {
            name    "importxform"
            label   "Transform"
            type    ordinal
            default { "local" }
            menu {
                "none"  "None"
                "local" "Into This Object"
            }
            parmtag { "autoscope" "0000000000000000" }
        }
        parm {
            name    "bindgeo"
            label   "Geometry"
            type    string
            default { "Geometry" }
        }
        parm {
            name    "bindconstraint"
            label   "Constraint Geometry"
            type    string
            default { "ConstraintGeometry" }
        }
        parm {
            name    "bindpatch"
            label   "Patch Index Geometry"
            type    string
            default { "PatchGeometry" }
        }
    }

}
INDX              Contents       9j/   DialogScript   9  fU}HouNC1033600bba06a1fdf2f08919230fNON_COMMERCIAL_FILE!!! # Dialog script for visualize automatically generated

{
    name	visualize
    script	visualize
    label	"Visualize Properties"

    help {
	""
    }

    inputlabel	1	"Sub-Network Input #1"
    inputlabel	2	"Sub-Network Input #2"
    inputlabel	3	"Sub-Network Input #3"
    inputlabel	4	"Sub-Network Input #4"

    parm {
        name    "setvisualizers"
        label   "Update Visualizers"
        type    toggle
        default { "0" }
    }
    parm {
        name    "clearvisualizers"
        label   "Clear Incoming Visualizers"
        type    toggle
        default { "0" }
        disablewhen "{ setvisualizers == 0 }"
        range   { 0 10 }
        parmtag { "autoscope" "0000000000000000" }
    }
    parm {
        name    "wireframe"
        label   "Wireframe"
        type    ordinal
        default { "0" }
        menu {
            "nochange"  "No Change"
            "shaded"    "Force Shaded"
            "viewport"  "Use Viewport Settings"
            "wireframe" "Force Wireframe"
        }
    }
    parm {
        name    "shadeopencurves"
        label   "Shade Open Curves"
        type    ordinal
        default { "0" }
        menu {
            "nochange"  "No Change"
            "wireframe" "Wireframe"
            "shaded"    "Shaded"
        }
    }
    parm {
        name    "lit"
        label   "Lighting"
        type    ordinal
        default { "0" }
        menu {
            "nochange"  "No Change"
            "unlit"     "Unlit"
            "lit"       "Lit"
        }
    }
    parm {
        name    "xray"
        label   "X-Ray"
        type    ordinal
        default { "0" }
        menu {
            "nochange"  "No Change"
            "disable"   "Disable"
            "enable"    "Enable"
        }
    }
    parm {
        name    "setcuspangle"
        label   "Set Cusp Angle"
        type    toggle
        nolabel
        joinnext
        default { "0" }
    }
    parm {
        name    "cuspangle"
        label   "Cusp Angle"
        type    float
        default { "60" }
        disablewhen "{ setcuspangle == 0 }"
        range   { 0 180 }
    }
    parm {
        name    "showpoints"
        label   "Show Points"
        type    ordinal
        default { "0" }
        menu {
            "nochange"      "No Change"
            "unconnected"   "Unconnected"
            "all"           "All"
        }
    }
    parm {
        name    "spherepoints"
        label   "Points as Spheres"
        type    ordinal
        default { "0" }
        menu {
            "nochange"  "No Change"
            "disable"   "Disable"
            "enable"    "Enable"
        }
    }
    parm {
        name    "spriteblend"
        label   "Sprite Blending"
        type    ordinal
        default { "0" }
        menu {
            "nochange"  "No Change"
            "disable"   "Disable"
            "enable"    "Enable"
        }
    }
    parm {
        name    "setspritecutoff"
        label   "Set Sprite Cutoff"
        type    toggle
        nolabel
        joinnext
        default { "0" }
    }
    parm {
        name    "spritecutoff"
        label   "Sprite Cutoff"
        type    float
        default { "0.5" }
        disablewhen "{ setspritecutoff == 0 }"
        range   { 0! 1! }
    }
}
HouNC1033600bbd06a1ff8ab093af9ae7expression.func # 0 bytes
HouNC1033600ba706a1ff8ab00fddd16f.userdata     quickmark_0    {"net": "/obj/atlas", "currentnode": "/obj/atlas/featherwidth1", "bounds": [-5.113625369833404, -14.373209721101794, 5.246738275267879, -8.590681174998753], "items": ["featherwidth1"]} quickmark_1    {"net": "/obj/feather_guides", "currentnode": "", "bounds": [-1.074813394093153, -15.54943838437802, 10.352689087878995, -11.355074177511838], "items": []}HouNC1033600ba506a1ff8ab03897b9c3obj.def comment ""
position 0 0
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
outputsNamed3
{
}
inputsNamed3
{
}
inputs
{
}
stat
{
  create 1780231846
  modify 1780479656
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600ba406a1ff8ab029ff291eobj.parm {
version 0.8
}
HouNC1033600ba006a1ff8ab01274efaaobj.userdata     ___Version___    20.5.445HouNC1033600bb506a1ff8ab08647633dobj/feather_guides.init type = sesi_temporary::geo
matchesdef = 0
HouNC1033600bba06a1ff8ab01c6ff971obj/feather_guides.def objflags objflags =  origin off
pretransform UT_DMatrix4 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
comment ""
position -0.618715 -1.15
connectornextid 0
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 on exposed on selectable on
outputsNamed3
{
}
inputsNamed3
{
}
inputs
{
}
stat
{
  create 1780232568
  modify 1780480164
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600bb506a1ff8ab0f24f549bobj/feather_guides.parm {
version 0.8
stdswitcher	[ 0	locks=0 ]	(	0	0	0	)
xOrd	[ 0	locks=0 ]	(	"srt"	)
rOrd	[ 0	locks=0 ]	(	"xyz"	)
t	[ 0	locks=0 ]	(	0	0	0	)
r	[ 0	locks=0 ]	(	0	0	0	)
s	[ 0	locks=0 ]	(	1	1	1	)
p	[ 0	locks=0 ]	(	0	0	0	)
pr	[ 0	locks=0 ]	(	0	0	0	)
scale	[ 0	locks=0 ]	(	1	)
pre_xform	[ 0	locks=0 ]	(	0	)
keeppos	[ 0	locks=0 ]	(	"off"	)
childcomp	[ 0	locks=0 ]	(	"off"	)
constraints_on	[ 0	locks=0 ]	(	"off"	)
constraints_path	[ 0	locks=0 ]	(	""	)
lookatpath	[ 0	locks=0 ]	(	""	)
lookupobjpath	[ 0	locks=0 ]	(	""	)
lookup	[ 0	locks=0 ]	(	on	)
pathobjpath	[ 0	locks=0 ]	(	""	)
roll	[ 0	locks=0 ]	(	0	)
pos	[ 0	locks=0 ]	(	0	)
uparmtype	[ 0	locks=0 ]	(	"arc"	)
pathorient	[ 0	locks=0 ]	(	1	)
up	[ 0	locks=0 ]	(	0	1	0	)
bank	[ 0	locks=0 ]	(	0	)
shop_materialpath	[ 0	locks=0 ]	(	""	)
shop_materialopts	[ 0	locks=0 ]	(	0	)
tdisplay	[ 0	locks=0 ]	(	"off"	)
display	[ 0	locks=0 ]	(	1	)
use_dcolor	[ 0	locks=0 ]	(	"off"	)
dcolor	[ 0	locks=0 ]	(	1	1	1	)
picking	[ 0	locks=0 ]	(	"on"	)
pickscript	[ 0	locks=0 ]	(	""	)
caching	[ 0	locks=0 ]	(	"on"	)
vport_shadeopen	[ 0	locks=0 ]	(	"off"	)
vport_displayassubdiv	[ 0	locks=0 ]	(	"off"	)
vport_onionskin	[ 0	locks=0 ]	(	"off"	)
}
HouNC1033600bb106a1ff8ab02657744bobj/feather_guides.userdata     ___Version___    20.5.445HouNC1033600bb306a1ff8ab03f31ed37obj/feather_guides/tommy.init type = testgeometry_tommy
matchesdef = 1
HouNC1033600bb006a1ff8ab09dfb3dfcobj/feather_guides/tommy.def sopflags sopflags = 
comment ""
position 1.5 -2.15
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
outputsNamed3
{
0 "output1"
}
inputsNamed3
{
}
inputs
{
}
stat
{
  create 1780231885
  modify 1780479033
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600bb306a1ff8ab0fd3e4999obj/feather_guides/tommy.parm {
version 0.8
t	[ 0	locks=0 ]	(	0	0	0	)
r	[ 0	locks=0 ]	(	0	0	0	)
scale	[ 0	locks=0 ]	(	1	)
res	[ 0	locks=0 ]	(	0	)
switch_clothing	[ 0	locks=0 ]	(	"off"	)
switch_textures	[ 0	locks=0 ]	(	"off"	)
}
HouNC1033600b8f06a1ff8ab06bba4498obj/feather_guides/tommy.userdata     ___Version___      ___toolcount___    1 ___toolid___    sop_testgeometry_tommyHouNC1033600ba506a1ff8ab006d0ac60vex.def comment ""
position 0 6
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 off
outputsNamed3
{
}
inputsNamed3
{
}
inputs
{
}
stat
{
  create 1780231846
  modify 1780232830
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600ba406a1ff8ab05af56f87vex.parm {
version 0.8
}
HouNC1033600ba006a1ff8ab084719914vex.userdata     ___Version___    20.5.445HouNC1033600ba506a1ff8ab0061a1f0cmat.def comment ""
position 0 3.75
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
{
}
inputs
{
}
stat
{
  create 1780231846
  modify 1780232830
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600ba406a1ff8ab0f7597b92mat.parm {
version 0.8
}
HouNC1033600ba006a1ff8ab0d43f5e73mat.userdata     ___Version___    20.5.445HouNC1033600b8906a1ff8ab06cf1fb97obj/feather_guides/guidegroom1.init type = guidegroom::2.0
matchesdef = 1
HouNC1033600b8e06a1ff8ab03890bbcaobj/feather_guides/guidegroom1.def sopflags sopflags = 
comment ""
position 1.49875 -4.15155
connectornextid 5
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"
3 "output2"
4 "output3"
}
inputsNamed3
{
0 	"" "" 1 "input1"
1 	tommy 0 1 "input2"
}
inputs
{
0 	"" 0 1
1 	tommy 0 1
}
stat
{
  create 1780232616
  modify 1780484084
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600b8e06a1ff8ab0eb5c655aobj/feather_guides/guidegroom1.chn {
    channel hasstash {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = "evalParm(\"strokes\") is not None or evalParm(\"groom\") is not None" language = python }
    }
  }
HouNC1033600b8906a1ff8ab022a156d1obj/feather_guides/guidegroom1.parm {
version 0.8
recordstrokes	[ 0	locks=0 ]	(	"off"	)
clear	[ 0	locks=0 ]	(	0	)
group	[ 0	locks=0 ]	(	1	)
grouptype	[ 0	locks=0 ]	(	"prims"	)
hasstash	[ 0	locks=0 ]	(	[ hasstash	0 ] 	)
tool	[ 0	locks=0 ]	(	"brush"	)
raybias	[ 0	locks=0 ]	(	0.001	)
strandmode	[ 0	locks=0 ]	(	"off"	)
collidewithskin	[ 0	locks=0 ]	(	"on"	)
usemask	[ 0	locks=0 ]	(	"on"	)
folder_feathers	[ 0	locks=0 ]	(	1	)
feathers	[ 0	locks=0 ]	(	"on"	)
featherdrawmode	[ 0	locks=0 ]	(	"barbs"	)
setfeathersettings	[ 0	locks=0 ]	(	0	)
templategeosop	[ 0	locks=0 ]	(	../norm_width	)
templategroup	[ 0	locks=0 ]	(	""	)
sideautoassign	[ 0	locks=0 ]	(	"on"	)
sidesetleft	[ 0	locks=0 ]	(	0	)
sidesetcenter	[ 0	locks=0 ]	(	0	)
sidesetright	[ 0	locks=0 ]	(	0	)
brushoptions	[ 0	locks=0 ]	(	1	)
brushsurface	[ 0	locks=0 ]	(	"off"	)
usepartinglines	[ 0	locks=0 ]	(	"on"	)
screenradius	[ 0	locks=0 ]	(	241.45778201206934	)
objectradius	[ 0	locks=0 ]	(	0.019788484881445752	)
soft	[ 0	locks=0 ]	(	1	)
spacing	[ 0	locks=0 ]	(	0	)
brushstrength	[ 0	locks=0 ]	(	1	)
brushmaintainlength	[ 0	locks=0 ]	(	1	)
brushbend	[ 0	locks=0 ]	(	0	)
brushbendfalloff	[ 0	locks=0 ]	(	1	)
straightenstrength	[ 0	locks=0 ]	(	0.05	)
relaxstrength	[ 0	locks=0 ]	(	1	)
movestrength	[ 0	locks=0 ]	(	1	)
painttemplatestrength	[ 0	locks=0 ]	(	1	)
moverotatewithskin	[ 0	locks=0 ]	(	"off"	)
deintersectstrength	[ 0	locks=0 ]	(	1	)
sculptstrength	[ 0	locks=0 ]	(	1	)
sculptdoconstrain	[ 0	locks=0 ]	(	"on"	)
sculptmaintainevensegments	[ 0	locks=0 ]	(	"off"	)
sculptlockroot	[ 0	locks=0 ]	(	"on"	)
orientstrength	[ 0	locks=0 ]	(	1	)
orientbrushupmode	[ 0	locks=0 ]	(	"cam"	)
orientbrushperpoint	[ 0	locks=0 ]	(	"off"	)
shapefeatherstrength	[ 0	locks=0 ]	(	1	)
smoothstrength	[ 0	locks=0 ]	(	1	)
smoothtargetsmoothness	[ 0	locks=0 ]	(	0.5	)
smoothposition	[ 0	locks=0 ]	(	"on"	)
smoothorient	[ 0	locks=0 ]	(	"on"	)
liftstrength	[ 0	locks=0 ]	(	0.05	)
liftmode	[ 0	locks=0 ]	(	"addsub"	)
paintmaskstrength	[ 0	locks=0 ]	(	1	)
paintmaskpoints	[ 0	locks=0 ]	(	"off"	)
liftangle	[ 0	locks=0 ]	(	45	)
adjustlengthstrength	[ 0	locks=0 ]	(	0.05	)
adjustlengthmode	[ 0	locks=0 ]	(	"addsub"	)
adjustlengthvalue	[ 0	locks=0 ]	(	0.1	)
adjustlengthlength	[ 0	locks=0 ]	(	0.1	)
adjustlengthmethod	[ 0	locks=0 ]	(	"scale"	)
plantmode	[ 0	locks=0 ]	(	"single"	)
density	[ 0	locks=0 ]	(	1000	)
plantlength	[ 0	locks=0 ]	(	0.05	)
blurstrength	[ 0	locks=0 ]	(	0.05	)
sculptphysstrength	[ 0	locks=0 ]	(	1	)
blurinskinspace	[ 0	locks=0 ]	(	"off"	)
blurperpoint	[ 0	locks=0 ]	(	"off"	)
blurshape	[ 0	locks=0 ]	(	"on"	)
blurlength	[ 0	locks=0 ]	(	"on"	)
blurorient	[ 0	locks=0 ]	(	"on"	)
clumpstrength	[ 0	locks=0 ]	(	0.05	)
clumpperpoint	[ 0	locks=0 ]	(	"off"	)
plantsegcount	[ 0	locks=0 ]	(	8	)
plantinterpolateguides	[ 0	locks=0 ]	(	"on"	)
plantinterpolaterelskin	[ 0	locks=0 ]	(	"on"	)
plantinterpolateorient	[ 0	locks=0 ]	(	"on"	)
planttemplatesource	[ 0	locks=0 ]	(	"activetemplate"	)
drawcurvetype	[ 0	locks=0 ]	(	"guide"	)
drawonskin	[ 0	locks=0 ]	(	"off"	)
drawinterpolateorient	[ 0	locks=0 ]	(	"on"	)
drawtemplatesource	[ 0	locks=0 ]	(	"activetemplate"	)
drawlimitlength	[ 0	locks=0 ]	(	"off"	)
drawsegmode	[ 0	locks=0 ]	(	"fixed"	)
drawsegcount	[ 0	locks=0 ]	(	8	)
drawseglength	[ 0	locks=0 ]	(	0.05	)
cutmode	[ 0	locks=0 ]	(	"redistribute"	)
painttemplateallowblending	[ 0	locks=0 ]	(	"off"	)
sepparm2	[ 0	locks=0 ]	(	)
sculptphyssimmode	[ 0	locks=0 ]	(	"settle"	)
sculptphyslivesimdamped	[ 0	locks=0 ]	(	"off"	)
sculptphyslivesimsettle	[ 0	locks=0 ]	(	"off"	)
sculptphystimescalesettle	[ 0	locks=0 ]	(	1	)
sculptphysgravitysettle	[ 0	locks=0 ]	(	0	-9.81	0	)
sculptphysconstrainrootorient	[ 0	locks=0 ]	(	"on"	)
sculptphysbendstiffness	[ 0	locks=0 ]	(	1	)
sculptphysstretchstiffness	[ 0	locks=0 ]	(	10	)
setrest	[ 0	locks=0 ]	(	0	)
clearrest	[ 0	locks=0 ]	(	0	)
folder1	[ 0	locks=0 ]	(	0	)
mirrorbrush	[ 0	locks=0 ]	(	"off"	)
mirror	[ 0	locks=0 ]	(	"off"	)
mirrorgroup	[ 0	locks=0 ]	(	""	)
mirrororigin	[ 0	locks=0 ]	(	0	0	0	)
mirrordir	[ 0	locks=0 ]	(	1	0	0	)
bakemirror	[ 0	locks=0 ]	(	0	)
utilityoptions	[ 0	locks=0 ]	(	0	)
editsoft	[ 0	locks=0 ]	(	"on"	)
editsoftmode	[ 0	locks=0 ]	(	"endpoints"	)
editcurvefrac	[ 0	locks=0 ]	(	1	)
editcurvedist	[ 0	locks=0 ]	(	1	)
resamplesegmode	[ 0	locks=0 ]	(	"fixed"	)
resamplesegcount	[ 0	locks=0 ]	(	8	)
resampleseglength	[ 0	locks=0 ]	(	0.05	)
twistangle	[ 0	locks=0 ]	(	360	)
previewutil	[ 0	locks=0 ]	(	"off"	)
stash	[ 0	locks=0 ]	(	0	)
folder0	[ 0	locks=0 ]	(	0	)
invertmask	[ 0	locks=0 ]	(	0	)
clearmask	[ 0	locks=0 ]	(	0	)
curvemaskramp	[ 0	locks=0 ]	(	1	)
folder_groupconfig	[ 0	locks=0 ]	(	1	)
namenewprims	[ 0	locks=0 ]	(	"on"	)
nameattrib	[ 0	locks=0 ]	(	name	)
activename	[ 0	locks=0 ]	(	base_a	)
setname	[ 0	locks=0 ]	(	0	)
selectactivename	[ 0	locks=0 ]	(	0	)
overridecolor	[ 0	locks=0 ]	(	"on"	)
defaultcolor	[ 0	locks=0 ]	(	1	1	1	)
templatecolor	[ 0	locks=0 ]	(	0.1	0.1	0.1	)
updategrouplist	[ 0	locks=0 ]	(	0	)
colorbyname	[ 0	locks=0 ]	(	"off"	)
folder_grouplist	[ 0	locks=0 ]	(	1	)
groups	[ 0	locks=0 ]	(	0	)
groupnewprims	[ 0	locks=0 ]	(	"off"	)
activegroup	[ 0	locks=0 ]	(	main	)
addtogroup	[ 0	locks=0 ]	(	0	)
deletegroup	[ 0	locks=0 ]	(	0	)
widthoptions	[ 0	locks=0 ]	(	0	)
widthoverride	[ 0	locks=0 ]	(	"on"	)
width	[ 0	locks=0 ]	(	0.001	)
folder_orient	[ 0	locks=0 ]	(	0	)
createorient	[ 0	locks=0 ]	(	"on"	)
orientname	[ 0	locks=0 ]	(	barborient	)
orientupattribflip	[ 0	locks=0 ]	(	"off"	)
orientup	[ 0	locks=0 ]	(	0	1	0	)
orientupattrib	[ 0	locks=0 ]	(	N	)
folder_scripts	[ 0	locks=0 ]	(	0	)
callbacks_enable	[ 0	locks=0 ]	(	"off"	)
callback_startstroke	[ 0	locks=0 ]	(	""	)
callback_move	[ 0	locks=0 ]	(	""	)
callback_endstroke	[ 0	locks=0 ]	(	""	)
debug	[ 0	locks=0 ]	(	"off"	)
stateparms	[ 0	locks=0 ]	(	0	)
simframe	[ 0	locks=0 ]	(	1	)
omitdynamics	[ 0	locks=0 ]	(	"off"	)
doblend	[ 0	locks=0 ]	(	"off"	)
camxform0	[ 0	locks=0 ]	(	1400.7935801088997	-13.813643726334933	0.09513651148795339	0.09513633049046352	)
camxform1	[ 0	locks=0 ]	(	190.92080376395563	1390.9395728070588	0.34031957531628976	0.3403189278573077	)
camxform2	[ 0	locks=0 ]	(	-387.7769698230479	135.81108704900808	-0.9354865768096643	-0.9354847970437304	)
camxform3	[ 0	locks=0 ]	(	-279.044187069108	-2453.522658254205	-0.45542577762117603	-0.4513184861387066	)
campos	[ 0	locks=0 ]	(	0.00350901527951228	1.7489156096541627	0.15414941466151316	)
cursorpos	[ 0	locks=0 ]	(	467	260	)
center	[ 0	locks=0 ]	(	0.0035670159850269556	1.7494932413101196	0.15217061340808868	)
cursordisplace	[ 0	locks=0 ]	(	-3.016320988535881e-6	0	-3.129243850708008e-7	)
raypos	[ 0	locks=0 ]	(	0.0035670159360708755	1.7494931901682953	0.152170617224267	)
raydir	[ 0	locks=0 ]	(	58.000586776748044	577.5798192324191	-1978.7950565122167	)
strengthscale	[ 0	locks=0 ]	(	1	)
button	[ 0	locks=0 ]	(	"none"	)
shiftkey	[ 0	locks=0 ]	(	"off"	)
ctrlkey	[ 0	locks=0 ]	(	"off"	)
parmgroup_pivotxform	[ 0	locks=0 ]	(	0	)
xOrd	[ 0	locks=0 ]	(	"srt"	)
rOrd	[ 0	locks=0 ]	(	"xyz"	)
t	[ 0	locks=0 ]	(	0	0	0	)
r	[ 0	locks=0 ]	(	0	0	0	)
s	[ 0	locks=0 ]	(	1	1	1	)
shear	[ 0	locks=0 ]	(	0	0	0	)
scale	[ 0	locks=0 ]	(	1	)
p	[ 0	locks=0 ]	(	0.005319182761013508	1.7713851928710938	0.03931436315178871	)
pr	[ 0	locks=0 ]	(	0	0	0	)
groom	[ 0	locks=0 ]	(	geometry:f05TSmJbKwALZmlsZXZlcnNpb24mACsBCDIwLjUuNDQ1JgErAghoYXNpbmRleCYCMSsDCnBvaW50Y291bnQmAxESKwQLdmVydGV4Y291bnQmBBESKwUOcHJpbWl0aXZlY291bnQmBRECKwYEaW5mbyYGeysHCGhvc3RuYW1lJgcrCANkZGQmCCsJBGRhdGUmCSsKEzIwMjYtMDYtMDMgMTE6NDk6MzEmCisLBmFydGlzdCYLJggrDAhzb2Z0d2FyZSYMKw0QSG91ZGluaSAyMC41LjQ0NSYNKw4GYm91bmRzJg5AGQaKTK47HkDKPL+I4j/dbug/GQghPV54Rj0rDxFwcmltY291bnRfc3VtbWFyeSYPJxUgICAgICAgICAgMiBQb2x5Z29ucworEBFhdHRyaWJ1dGVfc3VtbWFyeSYQJ8cgICAgIDQgcG9pbnQgYXR0cmlidXRlczoJZGlzYWJsZWV4dGVybmFsLCBwcmV2UCwgUCwgYmFyYm9yaWVudAogICAgIDcgcHJpbWl0aXZlIGF0dHJpYnV0ZXM6CXRlbXBsYXRlbmFtZXMsIENkLCBza2lucHJpbSwgaWQsIG5hbWUsIHRlbXBsYXRld2VpZ2h0cywgc2tpbnByaW11dgogICAgIDIgZ2xvYmFsIGF0dHJpYnV0ZXM6CXdpZHRoLCBuZXh0aWQKKxEQYXR0cmlidXRlX3JhbmdlcyYRJz97J2dsb2JhbCB3aWR0aCc6KDAuMDAxMDAwMDAwMDQ3NDk3NDUxMywwLjAwMTAwMDAwMDA0NzQ5NzQ1MTMpLH0rEg1ncm91cF9zdW1tYXJ5JhInJiAgICAgMSBwcmltaXRpdmUgZ3JvdXBzOglwYXJ0aW5nbGluZXMKfSsTCHRvcG9sb2d5JhNbKxQIcG9pbnRyZWYmFFsrFQdpbmRpY2VzJhVAEhIAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQBdXSsWCmF0dHJpYnV0ZXMmFlsrFw9wb2ludGF0dHJpYnV0ZXMmF1tbWysYBXNjb3BlJhgrGQZwdWJsaWMmGSsaBHR5cGUmGisbB251bWVyaWMmGyscBG5hbWUmHCsdAVAmHSseB29wdGlvbnMmHnsmGnsmGisfBnN0cmluZyYfKyAFdmFsdWUmICshBXBvaW50JiF9fV1bKyIEc2l6ZSYiEQMrIwdzdG9yYWdlJiMrJAhmcHJlYWwzMiYkKyUIZGVmYXVsdHMmJVsmIhEBJiMrJghmcHJlYWw2NCYmKycGdmFsdWVzJidAGgEAAAAAAAAAAF0mJ1smIhEDJiMmJCsoCHBhZ2VzaXplJigSAAQrKQtyYXdwYWdlZGF0YSYpQBk2Nxd8PL+I4j+q0yY9cGiHPMdE4z/VYys9Q9eQPCoB5D82xy89+k+aPKi95D8hATQ91tOjPBF65T+5ETg9J2WtPOc25j8w+js9Iv+2PPPz5j+HtT89DqHAPFqx5z9uOkM9HkDKPN1u6D9eeEY9ikyuO8C84j8ZCCE9M020O/MW4z+OBSM9p026Oyhx4z8CAyU9Z07AO1bL4z92ACc9B0/GO4Ml5D/q/Sg9/U/MO7d/5D9h+yo9WlDSO+nZ5D/U+Cw9N1HYOxs05T9G9i494VHeO0uO5T+78zA9XV1dW1smGCYZJhomGyYcKyoKYmFyYm9yaWVudCYqJh57Jhp7JhomHyYgKysKcXVhdGVybmlvbiYrfX1dWyYiEQQmIyYkJiVbJiIRBCYjJiYmJ0AaBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/XSYnWyYiEQQmIyYkJigSAAQmKUAZSDXmQj8Wk/G9zOffvBMQIz8pkkI/BKHyvZFs3ryXbiM/J95BP4q7+L1Q6My8IiUkP5otQT9yp/+94R24vI3QJD+mhUA/cEgCvoDAqbzTeSU/NdI/P1DbBL5525i8NC0mP6MePz+NNAW+BOOVvNb3Jj/zbz4/lRoBvmllr7wT7Cc/Hh8+P4pA+r2eBMm8dnAoPzXwQz83LPc8NBqLvRKnIz8N8EM/hTD3POYYi71FpyM/bPBDPyoq9zwiGou90aYjPxPxQz8kIPc8VRyLvQamIz+Y8EM/xCD3PKMbi72bpiM/N/BDP2sq9zzuGYu9EqcjP0rwQz/2Kvc8GBqLvfmmIz958EM/pCP3PIEbi72/piM/rfBDP6Il9zxCG4u9g6YjP11dXVtbJhgmGSYaJhsmHCssD2Rpc2FibGVleHRlcm5hbCYsJh57Jhp7JhomHyYgKy0Vbm9uYXJpdGhtZXRpY19pbnRlZ2VyJi19fV1bJiIRASYjKy4FaW50MzImLiYlWyYiEQEmIysvBWludDY0Ji8mJ0AUAQAAAAAAAAAAXSYnWyYiEQEmIyYuJigSAAQmKUATEgEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1dXVtbJhgmGSYaJhsmHCswBXByZXZQJjAmHnt9XVsmIhEDJiMmJCYlWyYiEQEmIyYmJidAGgEAAAAAAAAAAF0mJ1smIhEDJiMmJCYoEgAEJilAGTY3F3w8v4jiP6rTJj2LNYc87ETjP/VlKz10cZA8dAHkP3nLLz1Lt5k8F77kP4gHND1eCKM8pnrlP0UaOD3aZqw8ojfmP+MEPD0FzrU81PTmP2LCPz0gPb88YbLnP3NJQz11qcg8CnDoP4yJRj2KTK47wLziPxkIIT0gyLU70RbjP4wJIz2JQ7075HDjP/4KJT0iv8Q78MrjP3AMJz2XOsw7+yTkP+ENKT1+ttM7DX/kP1YPKz3EMds7HdnkP8cQLT2KreI7LTPlPzcSLz0VKeo7O43lP6oTMT1dXV1dKzETcHJpbWl0aXZlYXR0cmlidXRlcyYxW1tbJhgmGSYaJhsmHCsyAkNkJjImHnt9XVsmIhEDJiMmJCYlWyYiEQEmIyYmJidAGgEAAAAAAAAAAF0mJ1smIhEDJiMmJCYoEgAEKzMRY29uc3RhbnRwYWdlZmxhZ3MmM1tAEAEBAAAAXSYpQBkDAACAPwAAgD8AAIA/XV1dW1smGCYZJhomGyYcKzQCaWQmNCYeeyYaeyYaJh8mICYtfX1dWyYiEQEmIyYvJiVbJiIRASYjJi8mJ0AUAQAAAAAAAAAAXSYnWyYiEQEmIyYvJigSAAQmKUAUAgAAAAAAAAAAAQAAAAAAAABdXV1bWyYYJhkmGiYfJhwmHCYee31dWyYiEQEmIyYuKzUHc3RyaW5ncyY1Wys2BmJhc2VfYSY2XSYVWyYiEQEmIyYuJigSAAQmM1tAEAEBAAAAXSYpQBMBAAAAAF1dXVtbJhgmGSYaJhsmHCs3CHNraW5wcmltJjcmHnsmGnsmGiYfJiAmLX19XVsmIhEBJiMmLyYlWyYiEQEmIyYvJidAFAH//////////10mJ1smIhEBJiMmLyYoEgAEJilAFAIuvgAAAAAAADS+AAAAAAAAXV1dW1smGCYZJhomGyYcKzgKc2tpbnByaW11diY4Jh57fV1bJiIRAiYjKzkIZnByZWFsMTYmOSYlWyYiEQEmIyYmJidAGgEAAAAAAAAAAF0mJ1smIhECJiMmOSYoEgAEJilAGARYNz47BTjKM11dXVtbJhgmGSYaKzoLc3RyaW5nYXJyYXkmOiYcKzsNdGVtcGxhdGVuYW1lcyY7Jh57fV1bJiMmLiYiEQEmNVsmNl0mFVtAEwEAAAAAQBMBAAAAAF1dXVtbJhgmGSYaKzwJYXJyYXlkYXRhJjwmHCs9D3RlbXBsYXRld2VpZ2h0cyY9Jh57fV1bJiMmJCYiEQEmJ1tAGQEAAIA/QBkBAACAP11dXV0rPhBnbG9iYWxhdHRyaWJ1dGVzJj5bW1smGCYZJhomGyYcKz8GbmV4dGlkJj8mHnsmGnsmGiYfJiAmLX19XVsmIhEBJiMmLyYlWyYiEQEmIyYvJidAFAEAAAAAAAAAAF0mJ1smIhEBJiMmLyYoEgAEJjNbQBABAQAAAF0mKUAUAQIAAAAAAAAAXV1dW1smGCYZJhomGyYcK0AFd2lkdGgmQCYee31dWyYiEQEmIyYkJiVbJiIRASYjJiYmJ0AaAQAAAAAAAAAAXSYnWyYiEQEmIyYkJigSAAQmM1tAEAEBAAAAXSYpQBkBbxKDOl1dXV1dK0EKcHJpbWl0aXZlcyZBW1tbJhorQgNjX3ImQl1bK0MDc192JkMRACtEA25fcCZEEQIrRQNuX3YmRUARAgkJXV1dK0YPcHJpbWl0aXZlZ3JvdXBzJkZbW1smHCtHDHBhcnRpbmdsaW5lcyZHXVsrSAlzZWxlY3Rpb24mSFsrSQl1bm9yZGVyZWQmSVsrSgJpOCZKQBECAABdXV1dXScFaW5kZXhbJw5pbnRlZ2VyZW50cmllc3t9Jw1zdHJpbmdlbnRyaWVze30nEWludGVnZXJrZXllbnRpcmVze30nEHN0cmluZ2tleWVudHJpZXN7fV0nDWluZGV4cG9zaXRpb24UZgAAAAAAAABd	)
clothstash	[ 0	locks=0 ]	(	""	)
constraintstash	[ 0	locks=0 ]	(	""	)
strands	[ 0	locks=0 ]	(	""	)
strokes	[ 0	locks=0 ]	(	""	)
curvemaskramp1pos	[ 0	locks=0 ]	(	0	)
curvemaskramp1value	[ 0	locks=0 ]	(	1	)
curvemaskramp1interp	[ 0	locks=0 ]	(	"constant"	)
groupcolor0	[ 0	locks=0	autoscope=0	autosel=4294967295 ]	(	0.10000002384185791	1	1	)
groupname0	[ 0	locks=0	autoscope=0	autosel=4294967295 ]	(	base_a	)
selectgroup0	[ 0	locks=0 ]	(	0	)
renamegroup0	[ 0	locks=0 ]	(	0	)
groupoptions0	[ 0	locks=0	autoscope=0	autosel=4294967295 ]	(	"NETVIEW_hidden_flag"	)
}
HouNC1033600b8506a1ff8ab02c1e1805obj/feather_guides/guidegroom1.userdata     ___Version___    4 ___toolcount___    44 ___toolid___    object_drawguides lasttool    brushHouNC1033600b9906a1ff8ab0f01564eeobj/feather_guides/feathertemplateinterpolate1.init type = feathertemplateinterpolate
matchesdef = 1
HouNC1033600b9e06a1ff8ab00d16ced8obj/feather_guides/feathertemplateinterpolate1.def sopflags sopflags = 
comment ""
position 1.5 -6.15
connectornextid 7
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
{
4 "output1"
5 "output2"
6 "output3"
}
inputsNamed3
{
0 	guidegroom1 2 1 "input1"
1 	guidegroom1 3 1 "input2"
2 	guidegroom1 4 1 "input3"
3 	norm_width 1 1 "input4"
}
inputs
{
0 	guidegroom1 0 1
1 	guidegroom1 1 1
2 	guidegroom1 2 1
3 	norm_width 0 1
}
stat
{
  create 1780232771
  modify 1780480100
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600b9906a1ff8ab06bee873eobj/feather_guides/feathertemplateinterpolate1.parm {
version 0.8
group	[ 0	locks=0 ]	(	""	)
blend	[ 0	locks=0 ]	(	1	)
blendoverride	[ 0	locks=0 ]	(	"none"	)
blendoptions	[ 0	locks=0 ]	(	"fit"	)
blendinrange	[ 0	locks=0 ]	(	0	1	)
blendoutrange	[ 0	locks=0 ]	(	0	1	)
blendremapramp	[ 0	locks=0 ]	(	2	)
blendcurveattrib	[ 0	locks=0 ]	(	blend	)
blendattrib	[ 0	locks=0 ]	(	blend	)
blendtexture	[ 0	locks=0 ]	(	""	)
blendtextureprim	[ 0	locks=0 ]	(	mask	)
blenduvmode	[ 0	locks=0 ]	(	"skinuv"	)
folder_templates	[ 0	locks=0 ]	(	0	)
lookupmethod	[ 0	locks=0 ]	(	"matchbyattrib"	)
specgroup	[ 0	locks=0 ]	(	""	)
matchattrib	[ 0	locks=0 ]	(	name	)
namesattrib	[ 0	locks=0 ]	(	templatenames	)
weightsattrib	[ 0	locks=0 ]	(	templateweights	)
folder_shaft	[ 0	locks=0 ]	(	0	)
resample	[ 0	locks=0 ]	(	"on"	)
redistribute	[ 0	locks=0 ]	(	"on"	)
resmode	[ 0	locks=0 ]	(	"template"	)
shaftbasesegs	[ 0	locks=0 ]	(	1	)
useshaftbasesegsattrib	[ 0	locks=0 ]	(	"off"	)
shaftbasesegsattrib	[ 0	locks=0 ]	(	shaft_base_segs	)
shaftbarbsegs	[ 0	locks=0 ]	(	8	)
seglength	[ 0	locks=0 ]	(	0.1	)
shaftminsegs	[ 0	locks=0 ]	(	1	)
shaftminbarbsegs	[ 0	locks=0 ]	(	3	)
resmult	[ 0	locks=0 ]	(	1	)
folder_barbs	[ 0	locks=0 ]	(	0	)
barbsegmode	[ 0	locks=0 ]	(	"template"	)
barbsegs	[ 0	locks=0 ]	(	0	)
barbmirror	[ 0	locks=0 ]	(	"on"	)
folder_attribs	[ 0	locks=0 ]	(	0	)
interpolateuv	[ 0	locks=0 ]	(	"off"	)
primattribs	[ 0	locks=0 ]	(	""	)
pointattribs	[ 0	locks=0 ]	(	"template_width template_barbs_width width_barbl"	)
barbattribs	[ 0	locks=0 ]	(	"P_barbl P_barbr"	)
blendremapramp1pos	[ 0	locks=0 ]	(	0	)
blendremapramp1value	[ 0	locks=0 ]	(	0	)
blendremapramp1interp	[ 0	locks=0 ]	(	"linear"	)
blendremapramp2pos	[ 0	locks=0 ]	(	1	)
blendremapramp2value	[ 0	locks=0 ]	(	1	)
blendremapramp2interp	[ 0	locks=0 ]	(	"linear"	)
}
HouNC1033600b9506a1ff8ab0e916a647obj/feather_guides/feathertemplateinterpolate1.userdata     ___Version___    2HouNC1033600b8b06a1ff8ab0bfc9a98bobj/feather_guides/featherwidth1.init type = featherwidth
matchesdef = 1
HouNC1033600b8806a1ff8ab07717ca58obj/feather_guides/featherwidth1.def sopflags sopflags = 
comment ""
position 1.5 -9.15
connectornextid 6
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
{
3 "output1"
4 "output2"
5 "output3"
}
inputsNamed3
{
0 	comp_width 1 1 "input1"
1 	feathertemplateinterpolate1 5 1 "input2"
2 	feathertemplateinterpolate1 6 1 "input3"
}
inputs
{
0 	comp_width 0 1
1 	feathertemplateinterpolate1 1 1
2 	feathertemplateinterpolate1 2 1
}
stat
{
  create 1780232841
  modify 1780480093
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600b8b06a1ff8ab0355b1347obj/feather_guides/featherwidth1.parm {
version 0.8
createshaftwidth	[ 0	locks=0 ]	(	"on"	)
shaftwidth	[ 0	locks=0 ]	(	1	)
shaftwidthoverride	[ 0	locks=0 ]	(	"curveattrib"	)
shaftwidthoptions	[ 0	locks=0 ]	(	"fit"	)
shaftwidthinrange	[ 0	locks=0 ]	(	0	1	)
shaftwidthoutrange	[ 0	locks=0 ]	(	0	1	)
shaftwidthremapramp	[ 0	locks=0 ]	(	2	)
shaftwidthcurveattrib	[ 0	locks=0 ]	(	template_width	)
shaftwidthattrib	[ 0	locks=0 ]	(	shaftwidth	)
shaftwidthtexture	[ 0	locks=0 ]	(	""	)
shaftwidthtextureprim	[ 0	locks=0 ]	(	shaftwidth	)
shaftwidthuvmode	[ 0	locks=0 ]	(	"skinuv"	)
createbarbwidth	[ 0	locks=0 ]	(	"on"	)
barbwidth	[ 0	locks=0 ]	(	1	)
barbwidthoverride	[ 0	locks=0 ]	(	"curveattrib"	)
barbwidthoptions	[ 0	locks=0 ]	(	"fit"	)
barbwidthinrange	[ 0	locks=0 ]	(	0	1	)
barbwidthoutrange	[ 0	locks=0 ]	(	0	1	)
barbwidthmapramptobarbs	[ 0	locks=0 ]	(	"on"	)
barbwidthremapramp	[ 0	locks=0 ]	(	2	)
barbwidthcurveattrib	[ 0	locks=0 ]	(	template_barbs_width	)
barbwidthattrib	[ 0	locks=0 ]	(	barbwidth	)
barbwidthtexture	[ 0	locks=0 ]	(	""	)
barbwidthtextureprim	[ 0	locks=0 ]	(	barbwidth	)
barbwidthuvmode	[ 0	locks=0 ]	(	"skinuv"	)
skinuvattrib	[ 0	locks=0 ]	(	uv	)
featheruvattrib	[ 0	locks=0 ]	(	uv	)
shaftwidthremapramp1pos	[ 0	locks=0 ]	(	0	)
shaftwidthremapramp1value	[ 0	locks=0 ]	(	0	)
shaftwidthremapramp1interp	[ 0	locks=0 ]	(	"linear"	)
shaftwidthremapramp2pos	[ 0	locks=0 ]	(	1	)
shaftwidthremapramp2value	[ 0	locks=0 ]	(	1	)
shaftwidthremapramp2interp	[ 0	locks=0 ]	(	"linear"	)
barbwidthremapramp1pos	[ 0	locks=0 ]	(	0	)
barbwidthremapramp1value	[ 0	locks=0 ]	(	0	)
barbwidthremapramp1interp	[ 0	locks=0 ]	(	"linear"	)
barbwidthremapramp2pos	[ 0	locks=0 ]	(	1	)
barbwidthremapramp2value	[ 0	locks=0 ]	(	1	)
barbwidthremapramp2interp	[ 0	locks=0 ]	(	"linear"	)
}
HouNC1033600b8706a1ff8ab01f6e8dafobj/feather_guides/featherwidth1.userdata     ___Version___    1HouNC1033600b8506a1ff8ab09bfcf75eobj/feather_guides/groupsfromname1.init type = groupsfromname
matchesdef = 1
HouNC1033600b8a06a1ff8ab04159cf8bobj/feather_guides/groupsfromname1.def sopflags sopflags = 
comment ""
position 1.5 -10.15
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 	featherwidth1 3 1 "input1"
}
inputs
{
0 	featherwidth1 0 1
}
stat
{
  create 1780303825
  modify 1780480093
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600b8506a1ff8ab0a09b1388obj/feather_guides/groupsfromname1.parm {
version 0.8
attribname	[ 0	locks=0 ]	(	name	)
class	[ 0	locks=0 ]	(	"primitive"	)
groupprefix	[ 0	locks=0 ]	(	""	)
conflict	[ 0	locks=0 ]	(	"replace"	)
invalidnames	[ 0	locks=0 ]	(	"forcevalid"	)
}
HouNC1033600b8106a1ff8ab0361f018aobj/feather_guides/groupsfromname1.userdata     ___Version___    20.5.445HouNC1033600b8e06a1ff8ab011e146fcobj/feather_guides/comp_width.init type = attribwrangle
matchesdef = 1
HouNC1033600b8f06a1ff8ab0fee299aaobj/feather_guides/comp_width.def sopflags sopflags = 
comment ""
position -0.503 -7.151
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 	feathertemplateinterpolate1 4 1 "input1"
}
inputs
{
0 	feathertemplateinterpolate1 0 1
}
stat
{
  create 1780391622
  modify 1780480113
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600b8e06a1ff8ab0d2b32505obj/feather_guides/comp_width.parm {
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 ]	(	"int pr = pointprims(0, @ptnum)[0];
float scale = primintrinsic(0, \"measuredperimeter\", pr);

@template_width *= scale;
@template_barbs_width *= scale;"	)
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	)
}
HouNC1033600b8a06a1ff8ab0c71f07dbobj/feather_guides/comp_width.userdata     ___Version___     HouNC1033600b8e06a1ff8ab04cfe4ed2obj/feather_guides/ramp_barbs.init type = attribwrangle
matchesdef = 1
HouNC1033600b8f06a1ff8ab0bb8deb6eobj/feather_guides/ramp_barbs.def sopflags sopflags = 
comment ""
position 1.497 -11.1899
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 	groupsfromname1 1 1 "input1"
}
inputs
{
0 	groupsfromname1 0 1
}
stat
{
  create 1780308287
  modify 1780480127
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600b8506a1ff8ab07131e3ffobj/feather_guides/ramp_barbs.multiparm 3
width_ramp#pos ../featherwidth2/barbwidthremapramp#pos
width_ramp#value ../featherwidth2/barbwidthremapramp#value
width_ramp#interp ../featherwidth2/barbwidthremapramp#interp
HouNC1033600b8606a1ff8ab056b55f58obj/feather_guides/ramp_barbs.spareparmdef     group {
        name    "folder1"
        label   "Code"

        parm {
            name    "group"
            baseparm
            label   "Group"
            export  none
            bindselector uvselect "Modify Attribs"
                "Select the geometry 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
        }
        groupsimple {
            name    "folder_generatedparms_snippet"
            label   "Generated Channel Parameters"
            grouptag { "sidefx::look" "blank" }

            parm {
                name    "width_ramp"
                label   "Width Ramp"
                type    ramp_flt
                default { "2" }
                range   { 1! 10 }
            }
        }

        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
        }
    }

HouNC1033600b8f06a1ff8ab0fa6f865bobj/feather_guides/ramp_barbs.chn {
    channel width_ramp {
      lefttype = extend
      righttype = extend
      default = 2
      flags = 0
      segment { length = 0 value = 5 5 expr = ch(\"../featherwidth2/barbwidthremapramp\") }
    }
    channel width_ramp1pos {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = ch(\"../featherwidth2/barbwidthremapramp1pos\") }
    }
    channel width_ramp1value {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = ch(\"../featherwidth2/barbwidthremapramp1value\") }
    }
    channel width_ramp1interp {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = ch(\"../featherwidth2/barbwidthremapramp1interp\") }
    }
    channel width_ramp2pos {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = ch(\"../featherwidth2/barbwidthremapramp2pos\") }
    }
    channel width_ramp2value {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = ch(\"../featherwidth2/barbwidthremapramp2value\") }
    }
    channel width_ramp2interp {
      lefttype = extend
      righttype = extend
      default = 1
      flags = 0
      segment { length = 0 value = 1 1 expr = ch(\"../featherwidth2/barbwidthremapramp2interp\") }
    }
    channel width_ramp3pos {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = ch(\"../featherwidth2/barbwidthremapramp3pos\") }
    }
    channel width_ramp3value {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = ch(\"../featherwidth2/barbwidthremapramp3value\") }
    }
    channel width_ramp3interp {
      lefttype = extend
      righttype = extend
      default = 1
      flags = 0
      segment { length = 0 value = 1 1 expr = ch(\"../featherwidth2/barbwidthremapramp3interp\") }
    }
    channel width_ramp4pos {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = ch(\"../featherwidth2/barbwidthremapramp4pos\") }
    }
    channel width_ramp4value {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = ch(\"../featherwidth2/barbwidthremapramp4value\") }
    }
    channel width_ramp4interp {
      lefttype = extend
      righttype = extend
      default = 1
      flags = 0
      segment { length = 0 value = 1 1 expr = ch(\"../featherwidth2/barbwidthremapramp4interp\") }
    }
    channel width_ramp5pos {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = ch(\"../featherwidth2/barbwidthremapramp5pos\") }
    }
    channel width_ramp5value {
      lefttype = extend
      righttype = extend
      flags = 0
      segment { length = 0 expr = ch(\"../featherwidth2/barbwidthremapramp5value\") }
    }
    channel width_ramp5interp {
      lefttype = extend
      righttype = extend
      default = 1
      flags = 0
      segment { length = 0 value = 1 1 expr = ch(\"../featherwidth2/barbwidthremapramp5interp\") }
    }
  }
HouNC1033600b8e06a1ff8ab0036721a4obj/feather_guides/ramp_barbs.parm {
version 0.8
folder0	[ 0	locks=0 ]	(	0	0	)
group	[ 0	locks=0 ]	(	base_a	)
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 ]	(	"string attrs[] = {\"width_barbr\", \"width_barbl\"};

foreach (string attr; attrs) {
    float widths[] = point(0, attr, @ptnum);
    int n = len(widths);

    for (int i = 0; i < n; i++){
        float u = (n > 1) ? float(i) / float(n - 1) : 0.0;
        widths[i] *= chramp(\"width_ramp\", u);
    }

    setpointattrib(0, attr, @ptnum, widths, \"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	)
folder_generatedparms_snippet	[ 0	locks=0 ]	(	0	)
width_ramp	[ 8	locks=0 ]	(	[ width_ramp	5 ] 	)
width_ramp1pos	[ 0	locks=0 ]	(	[ width_ramp1pos	0 ] 	)
width_ramp1value	[ 0	locks=0 ]	(	[ width_ramp1value	0 ] 	)
width_ramp1interp	[ 0	locks=0 ]	(	[ width_ramp1interp	1 ] 	)
width_ramp2pos	[ 0	locks=0 ]	(	[ width_ramp2pos	0 ] 	)
width_ramp2value	[ 0	locks=0 ]	(	[ width_ramp2value	0 ] 	)
width_ramp2interp	[ 0	locks=0 ]	(	[ width_ramp2interp	1 ] 	)
width_ramp3pos	[ 0	locks=0 ]	(	[ width_ramp3pos	0 ] 	)
width_ramp3value	[ 0	locks=0 ]	(	[ width_ramp3value	0 ] 	)
width_ramp3interp	[ 0	locks=0 ]	(	[ width_ramp3interp	1 ] 	)
width_ramp4pos	[ 0	locks=0 ]	(	[ width_ramp4pos	0 ] 	)
width_ramp4value	[ 0	locks=0 ]	(	[ width_ramp4value	0 ] 	)
width_ramp4interp	[ 0	locks=0 ]	(	[ width_ramp4interp	1 ] 	)
width_ramp5pos	[ 0	locks=0 ]	(	[ width_ramp5pos	0 ] 	)
width_ramp5value	[ 0	locks=0 ]	(	[ width_ramp5value	0 ] 	)
width_ramp5interp	[ 0	locks=0 ]	(	[ width_ramp5interp	1 ] 	)
}
HouNC1033600b8a06a1ff8ab0471c8fc2obj/feather_guides/ramp_barbs.userdata     ___Version___     HouNC1033600bb206a1ff8ab04cc64835obj/feather_guides/base_a.init type = feathertemplatefromshape
matchesdef = 1
HouNC1033600bb306a1ff8ab0c1b8674eobj/feather_guides/base_a.def sopflags sopflags = 
comment ""
position 7.5 -2.15
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 	feathershapeorg1 0 1 "input1"
}
inputs
{
0 	feathershapeorg1 0 1
}
stat
{
  create 1780231980
  modify 1780480095
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600bb206a1ff8ab051aff476obj/feather_guides/base_a.parm {
version 0.8
folder_normalize	[ 0	locks=0 ]	(	0	)
normalize	[ 0	locks=0 ]	(	"off"	)
movetoorigin	[ 0	locks=0 ]	(	"off"	)
folder_shaft	[ 0	locks=0 ]	(	0	)
rachiswidthroot	[ 0	locks=0 ]	(	0.002	)
rachiswidthtip	[ 0	locks=0 ]	(	0.002	)
folder_barbs	[ 0	locks=0 ]	(	0	)
firstprofilefromshape	[ 0	locks=0 ]	(	"on"	)
shapebarbstart	[ 0	locks=0 ]	(	0.1	)
folder_resolution	[ 0	locks=0 ]	(	0	)
shaftdensity	[ 0	locks=0 ]	(	1	)
barbdensity	[ 0	locks=0 ]	(	400	)
barbsegs	[ 0	locks=0 ]	(	10	)
addbarbuv	[ 0	locks=0 ]	(	"on"	)
setname	[ 0	locks=0 ]	(	"on"	)
name	[ 0	locks=0 ]	(	$OS	)
setside	[ 0	locks=0 ]	(	"off"	)
side	[ 0	locks=0 ]	(	c	)
}
HouNC1033600b8e06a1ff8ab053dc1040obj/feather_guides/base_a.userdata     ___Version___     HouNC1033600b8406a1ff8ab0cc0d0229obj/feather_guides/feathershapeorg1.init type = feathershapeorg
matchesdef = 1
HouNC1033600b8506a1ff8ab02dfe4331obj/feather_guides/feathershapeorg1.def sopflags sopflags = 
comment ""
position 7.5 -1.15
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 	curve1 0 1 "input1"
}
inputs
{
0 	curve1 0 1
}
stat
{
  create 1780231980
  modify 1780480095
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600b8406a1ff8ab02f509dc3obj/feather_guides/feathershapeorg1.parm {
version 0.8
}
HouNC1033600b8006a1ff8ab09655b3a8obj/feather_guides/feathershapeorg1.userdata     ___Version___    1HouNC1033600bb206a1ff8ab0e0dc87c2obj/feather_guides/curve1.init type = curve::2.0
matchesdef = 1
HouNC1033600bb306a1ff8ab05269b855obj/feather_guides/curve1.def sopflags sopflags = 
comment ""
position 7.5 -0.15
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
outputsNamed3
{
0 "output1"
}
inputsNamed3
{
}
inputs
{
}
stat
{
  create 1780231980
  modify 1780480099
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600bb206a1ff8ab0d6738823obj/feather_guides/curve1.parm {
version 0.8
group	[ 0	locks=0 ]	(	""	)
sepparm3	[ 0	locks=0 ]	(	)
outputtype	[ 0	locks=0 ]	(	"bezier"	)
order	[ 0	locks=0 ]	(	4	)
convertcurves	[ 0	locks=0 ]	(	"off"	)
sepparm	[ 0	locks=0 ]	(	)
mode	[ 0	locks=0 ]	(	"BUTTONS_curve_mode_select"	)
interpmethod	[ 0	locks=0 ]	(	"smoothcurvature"	)
enablebezierops	[ 0	locks=0 ]	(	"on"	)
operations	[ 0	locks=0 ]	(	""	)
delete	[ 0	locks=0 ]	(	0	)
fuse	[ 0	locks=0 ]	(	0	)
cut	[ 0	locks=0 ]	(	0	)
join	[ 0	locks=0 ]	(	0	)
deleteseg	[ 0	locks=0 ]	(	0	)
makecorner	[ 0	locks=0 ]	(	0	)
makesmooth	[ 0	locks=0 ]	(	0	)
makebalanced	[ 0	locks=0 ]	(	0	)
contract	[ 0	locks=0 ]	(	0	)
expand	[ 0	locks=0 ]	(	0	)
straightenseg	[ 0	locks=0 ]	(	0	)
close	[ 0	locks=0 ]	(	0	)
createroundedcorners	[ 0	locks=0 ]	(	0	)
removeroundedcorners	[ 0	locks=0 ]	(	0	)
makeauto	[ 0	locks=0 ]	(	0	)
makemanual	[ 0	locks=0 ]	(	0	)
reverse	[ 0	locks=0 ]	(	0	)
sepparm4	[ 0	locks=0 ]	(	)
sepparm5	[ 0	locks=0 ]	(	)
reset	[ 0	locks=0 ]	(	0	)
snaponclose	[ 0	locks=0 ]	(	"on"	)
maintainpoint	[ 0	locks=0 ]	(	"off"	)
approxendtangents	[ 0	locks=0 ]	(	"off"	)
caching	[ 0	locks=0 ]	(	0	)
stashgeo	[ 0	locks=0 ]	(	""	)
savedstashgeo	[ 0	locks=0 ]	(	geometry:f05TSmJbKwALZmlsZXZlcnNpb24mACsBCDIwLjUuNDQ1JgErAghoYXNpbmRleCYCMSsDCnBvaW50Y291bnQmAxEMKwQLdmVydGV4Y291bnQmBBEMKwUOcHJpbWl0aXZlY291bnQmBREDKwYEaW5mbyYGeysHCGhvc3RuYW1lJgcrCANkZGQmCCsJBGRhdGUmCSsKEzIwMjYtMDYtMDMgMTE6NDk6MzEmCisLBmFydGlzdCYLJggrDAhzb2Z0d2FyZSYMKw0QSG91ZGluaSAyMC41LjQ0NSYNKw4GYm91bmRzJg5AGQZYeVm+JJtUPi69O7MAAAAA2IiBvwAAAAArDxFwcmltY291bnRfc3VtbWFyeSYPJxogICAgICAgICAgMyBCZXppZXIgQ3VydmVzCisQEWF0dHJpYnV0ZV9zdW1tYXJ5JhAnSCAgICAgMSBwb2ludCBhdHRyaWJ1dGVzOglQCiAgICAgMSBnbG9iYWwgYXR0cmlidXRlczoJX19yb3VuZGVkY29ybmVycHRzCisRDWdyb3VwX3N1bW1hcnkmESc1ICAgICAyIHBvaW50IGdyb3VwczoJCV9fYXV0b19wdHMKCV9fcm91bmRfY29ybmVyX3B0cwp9KxIIdG9wb2xvZ3kmElsrEwhwb2ludHJlZiYTWysUB2luZGljZXMmFEASDAAAAQACAAMABAAFAAYABwAIAAkACgALAF1dKxUKYXR0cmlidXRlcyYVWysWD3BvaW50YXR0cmlidXRlcyYWW1tbKxcFc2NvcGUmFysYBnB1YmxpYyYYKxkEdHlwZSYZKxoHbnVtZXJpYyYaKxsEbmFtZSYbKxwBUCYcKx0Hb3B0aW9ucyYdeyYZeyYZKx4Gc3RyaW5nJh4rHwV2YWx1ZSYfKyAFcG9pbnQmIH19XVsrIQRzaXplJiERAysiB3N0b3JhZ2UmIisjCGZwcmVhbDMyJiMrJAhkZWZhdWx0cyYkWyYhEQEmIislCGZwcmVhbDY0JiUrJgZ2YWx1ZXMmJkAaAQAAAAAAAAAAXSYmWyYhEQMmIiYjKycIcGFnZXNpemUmJxIABCsoC3Jhd3BhZ2VkYXRhJihAGSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADtrQmnLr07swAAgL/trQmnLr07swAAgL+qyEq88DAWstTlI71YeVm+8DAWskLGdb6nIk++aknhshDLT79IdhW7Lr07syJ/gb/Uyvk79DAWstTlI70km1Q+bEnhskLGdb7gF08+Lb07s3zeT7+YxBI7Lr07s9iIgb9dXV1dKykQZ2xvYmFsYXR0cmlidXRlcyYpW1tbJhcmGCYZJh4mGysqEl9fcm91bmRlZGNvcm5lcnB0cyYqJh17fV1bJiERASYiKysFaW50MzImKyssB3N0cmluZ3MmLFtdJhRbJiERASYiJismJxIABCstEWNvbnN0YW50cGFnZWZsYWdzJi1bQBABAQAAAF0mKEATAf////9dXV1dXSsuCnByaW1pdGl2ZXMmLltbWyYZKy8LQmV6aWVyQ3VydmUmL11bKzAGdmVydGV4JjBAEgQAAAEAAgADACsxBmNsb3NlZCYxMCsyBWJhc2lzJjJbJhkrMwZCZXppZXImMys0BW9yZGVyJjQRBCs1BWtub3RzJjVAGgIAAAAAAAAAAAAAAAAAAPA/XV1dW1smGSYvXVsmMEASBAQABQAGAAcAJjEwJjJbJhkmMyY0EQQmNUAaAgAAAAAAAAAAAAAAAAAA8D9dXV1bWyYZJi9dWyYwQBIECAAJAAoACwAmMTAmMlsmGSYzJjQRBCY1QBoCAAAAAAAAAAAAAAAAAADwP11dXV0rNgtwb2ludGdyb3VwcyY2W1tbJhsrNwpfX2F1dG9fcHRzJjddWys4CXNlbGVjdGlvbiY4Wys5CXVub3JkZXJlZCY5Wys6Amk4JjpAEQwAAAAAAAAAAAAAAABdXV1dW1smGys7El9fcm91bmRfY29ybmVyX3B0cyY7XVsmOFsmOVsmOkARDAAAAAAAAAAAAAAAAF1dXV1dJwVpbmRleFsnDmludGVnZXJlbnRyaWVze30nDXN0cmluZ2VudHJpZXN7fScRaW50ZWdlcmtleWVudGlyZXN7fScQc3RyaW5na2V5ZW50cmllc3t9XScNaW5kZXhwb3NpdGlvbhRmAAAAAAAAAF0=	)
parmpoints	[ 0	locks=0 ]	(	geometry:f05TSmJbKwALZmlsZXZlcnNpb24mACsBCDIwLjUuNDQ1JgErAghoYXNpbmRleCYCMSsDCnBvaW50Y291bnQmAxEEKwQLdmVydGV4Y291bnQmBBEAKwUOcHJpbWl0aXZlY291bnQmBREAKwYEaW5mbyYGeysHCGhvc3RuYW1lJgcrCANkZGQmCCsJBGRhdGUmCSsKEzIwMjYtMDYtMDMgMTE6NDk6MzEmCisLBmFydGlzdCYLJggrDAhzb2Z0d2FyZSYMKw0QSG91ZGluaSAyMC41LjQ0NSYNKw4GYm91bmRzJg5AGQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArDxFhdHRyaWJ1dGVfc3VtbWFyeSYPJ/LOASAgICAzMiBwb2ludCBhdHRyaWJ1dGVzOglhZGRwdHMsIG1haW50YWlucG9pbnQsIGhhbmRsZXAwcG9zLCB0cmFuc2xhdGUsIFAsIHNvZnR0cmFuc2Zvcm1yYWQsIGFjdGl2ZXByaW0sIG9wdHlwZSwgcGl2b3Ryb3RhdGUsIGhhbmRsZXAxcG9zLCByb3VuZGNvcm5lcnB0cywgc29mdHRyYW5zZm9ybSwgaGFuZGxlcDJwb3MsIHJvdGF0ZSwgYXV0b2JlemllciwgYWN0aXZlcG9pbnRzLCBvdXRwdXR0eXBlLCBwbGFuZW5tbCwgc2NhbGUsIGF1dG9wdHMsIHBsYW5lb3JpZywgY29uc3RyYWluc3RyYWlnaHRlbiwgYXBwcm94ZW5kdGFuZ2VudHMsIHJvdW5kY29ybmVycmFkaXVzLCBzZWdtZW50YmV6aWVyY2xvc2UsIGludGVycG1ldGhvZCwgY29ybmVycHRzLCBwaXZvdHRyYW5zbGF0ZSwgc21vb3RocHRzLCBjb252ZXJ0Y3VydmVzLCBoYW5kbGVwdHMsIG9yZGVyCiAgICAgMSBnbG9iYWwgYXR0cmlidXRlczoJdmFybWFwCn0rEAh0b3BvbG9neSYQWysRCHBvaW50cmVmJhFbKxIHaW5kaWNlcyYSQBIAXV0rEwphdHRyaWJ1dGVzJhNbKxQPcG9pbnRhdHRyaWJ1dGVzJhRbW1srFQVzY29wZSYVKxYGcHVibGljJhYrFwR0eXBlJhcrGAdudW1lcmljJhgrGQRuYW1lJhkrGgFQJhorGwdvcHRpb25zJht7Jhd7JhcrHAZzdHJpbmcmHCsdBXZhbHVlJh0rHgVwb2ludCYefX1dWysfBHNpemUmHxEDKyAHc3RvcmFnZSYgKyEIZnByZWFsMzImISsiCGRlZmF1bHRzJiJbJh8RASYgKyMIZnByZWFsNjQmIyskBnZhbHVlcyYkQBoBAAAAAAAAAABdJiRbJh8RAyYgJiErJQhwYWdlc2l6ZSYlEgAEKyYRY29uc3RhbnRwYWdlZmxhZ3MmJltAEAEBAAAAXSsnC3Jhd3BhZ2VkYXRhJidAGQMAAAAAAAAAAAAAAABdXV1bWyYVJhYmFyYcJhkrKAxhY3RpdmVwb2ludHMmKCYbe31dWyYfEQEmICspBWludDMyJikrKgdzdHJpbmdzJipbKysDNCA4JisrLAQ3IDExJiwrLQIxMSYtKy4BNyYuXSYSWyYfEQEmICYpJiUSAAQmJ0ATBAAAAAABAAAAAgAAAAMAAABdXV1bWyYVJhYmFyYYJhkrLwphY3RpdmVwcmltJi8mG3smF3smFyYcJh0rMBVub25hcml0aG1ldGljX2ludGVnZXImMH19XVsmHxEBJiAmKSYiWyYfEQEmICsxBWludDY0JjEmJEAUAQAAAAAAAAAAXSYkWyYfEQEmICYpJiUSAAQmJltAEAEBAAAAXSYnQBMBAAAAAF1dXVtbJhUmFiYXJhwmGSsyBmFkZHB0cyYyJht7fV1bJh8RASYgJikmKltdJhJbJh8RASYgJikmJRIABCYmW0AQAQEAAABdJidAEwH/////XV1dW1smFSYWJhcmGCYZKzMRYXBwcm94ZW5kdGFuZ2VudHMmMyYbeyYXeyYXJhwmHSYwfX1dWyYfEQEmICYpJiJbJh8RASYgJjEmJEAUAQAAAAAAAAAAXSYkWyYfEQEmICYpJiUSAAQmJltAEAEBAAAAXSYnQBMBAAAAAF1dXVtbJhUmFiYXJhgmGSs0CmF1dG9iZXppZXImNCYbeyYXeyYXJhwmHSYwfX1dWyYfEQEmICYpJiJbJh8RASYgJjEmJEAUAQAAAAAAAAAAXSYkWyYfEQEmICYpJiUSAAQmJltAEAEBAAAAXSYnQBMBAAAAAF1dXVtbJhUmFiYXJhwmGSs1B2F1dG9wdHMmNSYbe31dWyYfEQEmICYpJipbXSYSWyYfEQEmICYpJiUSAAQmJltAEAEBAAAAXSYnQBMB/////11dXVtbJhUmFiYXJhgmGSs2E2NvbnN0cmFpbnN0cmFpZ2h0ZW4mNiYbeyYXeyYXJhwmHSYwfX1dWyYfEQEmICYpJiJbJh8RASYgJjEmJEAUAQAAAAAAAAAAXSYkWyYfEQEmICYpJiUSAAQmJltAEAEBAAAAXSYnQBMBAAAAAF1dXVtbJhUmFiYXJhgmGSs3DWNvbnZlcnRjdXJ2ZXMmNyYbeyYXeyYXJhwmHSYwfX1dWyYfEQEmICYpJiJbJh8RASYgJjEmJEAUAQEAAAAAAAAAXSYkWyYfEQEmICYpJiUSAAQmJltAEAEBAAAAXSYnQBMBAAAAAF1dXVtbJhUmFiYXJhwmGSs4CWNvcm5lcnB0cyY4Jht7fV1bJh8RASYgJikmKltdJhJbJh8RASYgJikmJRIABCYmW0AQAQEAAABdJidAEwH/////XV1dW1smFSYWJhcmGCYZKzkLaGFuZGxlcDBwb3MmOSYbe31dWyYfEQMmICYhJiJbJh8RASYgJiMmJEAaAQAAAAAAAAAAXSYkWyYfEQMmICYhJiUSAAQmJltAEAEBAAAAXSYnQBkDAACAvwAAAAAAAAAAXV1dW1smFSYWJhcmGCYZKzoLaGFuZGxlcDFwb3MmOiYbe31dWyYfEQMmICYhJiJbJh8RASYgJiMmJEAaAQAAAAAAAAAAXSYkWyYfEQMmICYhJiUSAAQmJltAEAEBAAAAXSYnQBkDAAAAAAAAAAAAAAAAXV1dW1smFSYWJhcmGCYZKzsLaGFuZGxlcDJwb3MmOyYbe31dWyYfEQMmICYhJiJbJh8RASYgJiMmJEAaAQAAAAAAAAAAXSYkWyYfEQMmICYhJiUSAAQmJltAEAEBAAAAXSYnQBkDAACAPwAAAAAAAAAAXV1dW1smFSYWJhcmGCYZKzwJaGFuZGxlcHRzJjwmG3smF3smFyYcJh0mMH19XVsmHxEDJiAmKSYiWyYfEQEmICYxJiRAFAH//////////10mJFsmHxEDJiAmKSYlEgAEJiZbQBABAQAAAF0mJ0ATA////////////////11dXVtbJhUmFiYXJhgmGSs9DGludGVycG1ldGhvZCY9Jht7Jhd7JhcmHCYdJjB9fV1bJh8RASYgJikmIlsmHxEBJiAmMSYkQBQBAAAAAAAAAABdJiRbJh8RASYgJikmJRIABCYmW0AQAQEAAABdJidAEwEAAAAAXV1dW1smFSYWJhcmGCYZKz4NbWFpbnRhaW5wb2ludCY+Jht7Jhd7JhcmHCYdJjB9fV1bJh8RASYgJikmIlsmHxEBJiAmMSYkQBQBAAAAAAAAAABdJiRbJh8RASYgJikmJRIABCYmW0AQAQEAAABdJidAEwEAAAAAXV1dW1smFSYWJhcmHCYZKz8Gb3B0eXBlJj8mG3t9XVsmHxEBJiAmKSYqWytACXRyYW5zZm9ybSZAXSYSWyYfEQEmICYpJiUSAAQmJltAEAEBAAAAXSYnQBMBAAAAAF1dXVtbJhUmFiYXJhgmGStBBW9yZGVyJkEmG3smF3smFyYcJh0mMH19XVsmHxEBJiAmKSYiWyYfEQEmICYxJiRAFAEEAAAAAAAAAF0mJFsmHxEBJiAmKSYlEgAEJiZbQBABAQAAAF0mJ0ATAQQAAABdXV1bWyYVJhYmFyYcJhkrQgpvdXRwdXR0eXBlJkImG3t9XVsmHxEBJiAmKSYqWytDBmJlemllciZDXSYSWyYfEQEmICYpJiUSAAQmJltAEAEBAAAAXSYnQBMBAAAAAF1dXVtbJhUmFiYXJhgmGStEC3Bpdm90cm90YXRlJkQmG3t9XVsmHxEDJiAmISYiWyYfEQEmICYjJiRAGgEAAAAAAAAAAF0mJFsmHxEDJiAmISYlEgAEJiZbQBABAQAAAF0mJ0AZAwAAAAAAAAAAAAAAAF1dXVtbJhUmFiYXJhgmGStFDnBpdm90dHJhbnNsYXRlJkUmG3t9XVsmHxEDJiAmISYiWyYfEQEmICYjJiRAGgEAAAAAAAAAAF0mJFsmHxEDJiAmISYlEgAEJidAGQwAAAAA8jAWss3MTL4AAAAALr07s65Hgb9eYTQ8Lr07s8ZHgb+2TBO8Lr07s8ZHgb9dXV1bWyYVJhYmFyYYJhkrRghwbGFuZW5tbCZGJht7fV1bJh8RAyYgJiEmIlsmHxEBJiAmIyYkQBoBAAAAAAAAAABdJiRbJh8RAyYgJiEmJRIABCYmW0AQAQEAAABdJidAGQMAAAAAAACAPwAAAABdXV1bWyYVJhYmFyYYJhkrRwlwbGFuZW9yaWcmRyYbe31dWyYfEQMmICYhJiJbJh8RASYgJiMmJEAaAQAAAAAAAAAAXSYkWyYfEQMmICYhJiUSAAQmJltAEAEBAAAAXSYnQBkDAAAAAAAAAAAAAAAAXV1dW1smFSYWJhcmGCYZK0gGcm90YXRlJkgmG3t9XVsmHxEDJiAmISYiWyYfEQEmICYjJiRAGgEAAAAAAAAAAF0mJFsmHxEDJiAmISYlEgAEJiZbQBABAQAAAF0mJ0AZAwAAAAAAAAAAAAAAAF1dXVtbJhUmFiYXJhwmGStJDnJvdW5kY29ybmVycHRzJkkmG3t9XVsmHxEBJiAmKSYqW10mElsmHxEBJiAmKSYlEgAEJiZbQBABAQAAAF0mJ0ATAf////9dXV1bWyYVJhYmFyYYJhkrShFyb3VuZGNvcm5lcnJhZGl1cyZKJht7fV1bJh8RASYgJiEmIlsmHxEBJiAmIyYkQBoBAAAAAAAAAABdJiRbJh8RASYgJiEmJRIABCYmW0AQAQEAAABdJidAGQEAAAAAXV1dW1smFSYWJhcmGCYZK0sFc2NhbGUmSyYbe31dWyYfEQMmICYhJiJbJh8RASYgJiMmJEAaAQAAAAAAAPA/XSYkWyYfEQMmICYhJiUSAAQmJltAEAEBAAAAXSYnQBkDAACAPwAAgD8AAIA/XV1dW1smFSYWJhcmGCYZK0wSc2VnbWVudGJlemllcmNsb3NlJkwmG3smF3smFyYcJh0mMH19XVsmHxEBJiAmKSYiWyYfEQEmICYxJiRAFAEAAAAAAAAAAF0mJFsmHxEBJiAmKSYlEgAEJiZbQBABAQAAAF0mJ0ATAQEAAABdXV1bWyYVJhYmFyYcJhkrTQlzbW9vdGhwdHMmTSYbe31dWyYfEQEmICYpJipbK04BKiZOXSYSWyYfEQEmICYpJiUSAAQmJltAEAEBAAAAXSYnQBMBAAAAAF1dXVtbJhUmFiYXJhgmGStPDXNvZnR0cmFuc2Zvcm0mTyYbeyYXeyYXJhwmHSYwfX1dWyYfEQEmICYpJiJbJh8RASYgJjEmJEAUAQAAAAAAAAAAXSYkWyYfEQEmICYpJiUSAAQmJltAEAEBAAAAXSYnQBMBAAAAAF1dXVtbJhUmFiYXJhgmGStQEHNvZnR0cmFuc2Zvcm1yYWQmUCYbe31dWyYfEQEmICYhJiJbJh8RASYgJiMmJEAaAQAAAAAAAOA/XSYkWyYfEQEmICYhJiUSAAQmJltAEAEBAAAAXSYnQBkBAAAAP11dXVtbJhUmFiYXJhgmGStRCXRyYW5zbGF0ZSZRJht7fV1bJh8RAyYgJiEmIlsmHxEBJiAmIyYkQBoBAAAAAAAAAABdJiRbJh8RAyYgJiEmJRIABCYnQBkMgMYbuwAAAABY0yM+oFKEOgAAAAAAAEC2OLAPvAAAAAAAJAK7SN7bOwAAAAAAcN26XV1dXStSEGdsb2JhbGF0dHJpYnV0ZXMmUltbWyYVJhYmFyYcJhkrUwZ2YXJtYXAmUyYbeytUDmJsb2I6c3RyaW5nc2V0JlR7JhcrVQRib29sJlUmHTF9fV1bJh8RHyYgJikmKlsrVhBvcHR5cGUgLT4gT1BUWVBFJlYrVxxhY3RpdmVwb2ludHMgLT4gQUNUSVZFUE9JTlRTJlcrWBBhZGRwdHMgLT4gQUREUFRTJlgrWRhhY3RpdmVwcmltIC0+IEFDVElWRVBSSU0mWStaHm1haW50YWlucG9pbnQgLT4gTUFJTlRBSU5QT0lOVCZaK1smYXBwcm94ZW5kdGFuZ2VudHMgLT4gQVBQUk9YRU5EVEFOR0VOVFMmWytcGG91dHB1dHR5cGUgLT4gT1VUUFVUVFlQRSZcK10Ob3JkZXIgLT4gT1JERVImXSteJnJvdW5kY29ybmVycmFkaXVzIC0+IFJPVU5EQ09STkVSUkFESVVTJl4rXxZjb3JuZXJwdHMgLT4gQ09STkVSUFRTJl8rYBZzbW9vdGhwdHMgLT4gU01PT1RIUFRTJmArYRJhdXRvcHRzIC0+IEFVVE9QVFMmYStiIHJvdW5kY29ybmVycHRzIC0+IFJPVU5EQ09STkVSUFRTJmIrYypjb25zdHJhaW5zdHJhaWdodGVuIC0+IENPTlNUUkFJTlNUUkFJR0hURU4mYytkHGludGVycG1ldGhvZCAtPiBJTlRFUlBNRVRIT0QmZCtlHmNvbnZlcnRjdXJ2ZXMgLT4gQ09OVkVSVENVUlZFUyZlK2Yec29mdHRyYW5zZm9ybSAtPiBTT0ZUVFJBTlNGT1JNJmYrZyRzb2Z0dHJhbnNmb3JtcmFkIC0+IFNPRlRUUkFOU0ZPUk1SQUQmZytoFnRyYW5zbGF0ZSAtPiBUUkFOU0xBVEUmaCtpEHJvdGF0ZSAtPiBST1RBVEUmaStqDnNjYWxlIC0+IFNDQUxFJmorayBwaXZvdHRyYW5zbGF0ZSAtPiBQSVZPVFRSQU5TTEFURSZrK2wacGl2b3Ryb3RhdGUgLT4gUElWT1RST1RBVEUmbCttFmhhbmRsZXB0cyAtPiBIQU5ETEVQVFMmbStuGmhhbmRsZXAwcG9zIC0+IEhBTkRMRVAwUE9TJm4rbxpoYW5kbGVwMXBvcyAtPiBIQU5ETEVQMVBPUyZvK3AaaGFuZGxlcDJwb3MgLT4gSEFORExFUDJQT1MmcCtxFnBsYW5lb3JpZyAtPiBQTEFORU9SSUcmcStyFHBsYW5lbm1sIC0+IFBMQU5FTk1MJnIrcxhhdXRvYmV6aWVyIC0+IEFVVE9CRVpJRVImcyt0KHNlZ21lbnRiZXppZXJjbG9zZSAtPiBTRUdNRU5UQkVaSUVSQ0xPU0UmdF0mElsmHxEfJiAmKSYlEgAEJiZbQBABAQAAAF0mJ0ATHwAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAABdXV1dXSt1CnByaW1pdGl2ZXMmdVtdJwVpbmRleFsnDmludGVnZXJlbnRyaWVze30nDXN0cmluZ2VudHJpZXN7fScRaW50ZWdlcmtleWVudGlyZXN7fScQc3RyaW5na2V5ZW50cmllc3t9XScNaW5kZXhwb3NpdGlvbhRmAAAAAAAAAF0=	)
stashid	[ 0	locks=0 ]	(	;	)
ninputprimscached	[ 0	locks=0 ]	(	0	)
softtransform	[ 0	locks=0 ]	(	"off"	)
softtransformrad	[ 0	locks=0 ]	(	0.5	)
output	[ 0	locks=0 ]	(	0	)
outputcornerpts	[ 0	locks=0 ]	(	"off"	)
cornerptsgroup	[ 0	locks=0 ]	(	corner_points	)
outputsmoothpts	[ 0	locks=0 ]	(	"off"	)
smoothptsgroup	[ 0	locks=0 ]	(	smooth_points	)
outputautopts	[ 0	locks=0 ]	(	"off"	)
autoptsgroup	[ 0	locks=0 ]	(	auto_points	)
outputname	[ 0	locks=0 ]	(	"off"	)
name	[ 0	locks=0 ]	(	$OS	)
nameattrib	[ 0	locks=0 ]	(	name	)
outputxaxis	[ 0	locks=0 ]	(	"off"	)
xaxisname	[ 0	locks=0 ]	(	out	)
outputyaxis	[ 0	locks=0 ]	(	"off"	)
yaxisname	[ 0	locks=0 ]	(	up	)
outputzaxis	[ 0	locks=0 ]	(	"off"	)
zaxisname	[ 0	locks=0 ]	(	tangent	)
outputorient	[ 0	locks=0 ]	(	"off"	)
orientname	[ 0	locks=0 ]	(	orient	)
tangenttype	[ 0	locks=0 ]	(	"avgdir"	)
aligntangent	[ 0	locks=0 ]	(	"on"	)
targetorients	[ 0	locks=0 ]	(	0	)
curoperation	[ 0	locks=0 ]	(	0	)
optype	[ 0	locks=0 ]	(	"transform"	)
activepoints	[ 0	locks=0 ]	(	""	)
translate	[ 0	locks=0 ]	(	0	0	0	)
rotate	[ 0	locks=0 ]	(	0	0	0	)
scale	[ 0	locks=0 ]	(	1	1	1	)
addpts	[ 0	locks=0 ]	(	""	)
activeprim	[ 0	locks=0 ]	(	0	)
cornerpts	[ 0	locks=0 ]	(	""	)
smoothpts	[ 0	locks=0 ]	(	*	)
autopts	[ 0	locks=0 ]	(	""	)
pivottransformfolder	[ 0	locks=0 ]	(	0	)
pivottranslate	[ 0	locks=0 ]	(	0	0	0	)
pivotrotate	[ 0	locks=0 ]	(	0	0	0	)
pivotfixed	[ 0	locks=0 ]	(	"off"	)
roundedcornersfolder	[ 0	locks=0 ]	(	0	)
viewroundcorners	[ 0	locks=0 ]	(	"on"	)
roundcornerpts	[ 0	locks=0 ]	(	""	)
roundcornerradius	[ 0	locks=0 ]	(	0	)
bakeroundcorners	[ 0	locks=0 ]	(	0	)
showroundcornerwidget	[ 0	locks=0 ]	(	"on"	)
showroundcornerlabels	[ 0	locks=0 ]	(	"on"	)
editedgeops	[ 0	locks=0 ]	(	0	)
planeorig	[ 0	locks=0 ]	(	0	0	0	)
planenml	[ 0	locks=0 ]	(	0	1	0	)
constrainstraighten	[ 0	locks=0 ]	(	"off"	)
handleparmsfolder	[ 0	locks=0 ]	(	0	)
handlepts	[ 0	locks=0 ]	(	-1	-1	-1	)
handlep0pos	[ 0	locks=0 ]	(	-1	0	0	)
handlep1pos	[ 0	locks=0 ]	(	0	0	0	)
handlep2pos	[ 0	locks=0 ]	(	1	0	0	)
}
HouNC1033600b8e06a1ff8ab0053d4535obj/feather_guides/curve1.userdata     ___Version___    2 ___toolcount___    1 ___toolid___    	sop_curveHouNC1033600b8b06a1ff8ab038d35854obj/feather_guides/featherwidth2.init type = featherwidth
matchesdef = 1
HouNC1033600b8806a1ff8ab05712ab27obj/feather_guides/featherwidth2.def sopflags sopflags = 
comment ""
position 7.5 -4.1111
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 	base_a 1 1 "input1"
}
inputs
{
0 	base_a 0 1
}
stat
{
  create 1780232468
  modify 1780480093
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600b8b06a1ff8ab0fa11cfa8obj/feather_guides/featherwidth2.parm {
version 0.8
createshaftwidth	[ 0	locks=0 ]	(	"on"	)
shaftwidth	[ 0	locks=0 ]	(	0.008	)
shaftwidthoverride	[ 0	locks=0 ]	(	"none"	)
shaftwidthoptions	[ 0	locks=0 ]	(	2	)
shaftwidthinrange	[ 0	locks=0 ]	(	0	1	)
shaftwidthoutrange	[ 0	locks=0 ]	(	0	1	)
shaftwidthremapramp	[ 0	locks=0 ]	(	3	)
shaftwidthcurveattrib	[ 0	locks=0 ]	(	shaftwidth	)
shaftwidthattrib	[ 0	locks=0 ]	(	shaftwidth	)
shaftwidthtexture	[ 0	locks=0 ]	(	""	)
shaftwidthtextureprim	[ 0	locks=0 ]	(	shaftwidth	)
shaftwidthuvmode	[ 0	locks=0 ]	(	"skinuv"	)
createbarbwidth	[ 0	locks=0 ]	(	"on"	)
barbwidth	[ 0	locks=0 ]	(	0.0023137278154053208	)
barbwidthoverride	[ 0	locks=0 ]	(	"none"	)
barbwidthoptions	[ 0	locks=0 ]	(	2	)
barbwidthinrange	[ 0	locks=0 ]	(	0	1	)
barbwidthoutrange	[ 0	locks=0 ]	(	0	1	)
barbwidthmapramptobarbs	[ 0	locks=0 ]	(	"on"	)
barbwidthremapramp	[ 0	locks=0 ]	(	5	)
barbwidthcurveattrib	[ 0	locks=0 ]	(	barbwidth	)
barbwidthattrib	[ 0	locks=0 ]	(	barbwidth	)
barbwidthtexture	[ 0	locks=0 ]	(	""	)
barbwidthtextureprim	[ 0	locks=0 ]	(	barbwidth	)
barbwidthuvmode	[ 0	locks=0 ]	(	"skinuv"	)
skinuvattrib	[ 0	locks=0 ]	(	uv	)
featheruvattrib	[ 0	locks=0 ]	(	uv	)
shaftwidthremapramp1pos	[ 0	locks=0 ]	(	0	)
shaftwidthremapramp1value	[ 0	locks=0 ]	(	1	)
shaftwidthremapramp1interp	[ 0	locks=0 ]	(	"linear"	)
shaftwidthremapramp2pos	[ 0	locks=0 ]	(	0.447674423456192	)
shaftwidthremapramp2value	[ 0	locks=0 ]	(	1	)
shaftwidthremapramp2interp	[ 0	locks=0 ]	(	"linear"	)
barbwidthremapramp1pos	[ 0	locks=0 ]	(	0	)
barbwidthremapramp1value	[ 0	locks=0 ]	(	1	)
barbwidthremapramp1interp	[ 0	locks=0 ]	(	"linear"	)
barbwidthremapramp2pos	[ 0	locks=0 ]	(	0.058252424001693726	)
barbwidthremapramp2value	[ 0	locks=0 ]	(	0.9660000205039978	)
barbwidthremapramp2interp	[ 0	locks=0 ]	(	"linear"	)
shaftwidthremapramp3pos	[ 0	locks=0 ]	(	1	)
shaftwidthremapramp3value	[ 0	locks=0 ]	(	0.3333333432674408	)
shaftwidthremapramp3interp	[ 0	locks=0 ]	(	"linear"	)
barbwidthremapramp3pos	[ 0	locks=0 ]	(	0.29449838399887085	)
barbwidthremapramp3value	[ 0	locks=0 ]	(	0.7620000243186951	)
barbwidthremapramp3interp	[ 0	locks=0 ]	(	"linear"	)
barbwidthremapramp4pos	[ 0	locks=0 ]	(	0.96278315782547	)
barbwidthremapramp4value	[ 0	locks=0 ]	(	0.3349679112434387	)
barbwidthremapramp4interp	[ 0	locks=0 ]	(	"linear"	)
barbwidthremapramp5pos	[ 0	locks=0 ]	(	1	)
barbwidthremapramp5value	[ 0	locks=0 ]	(	0.061000000685453415	)
barbwidthremapramp5interp	[ 0	locks=0 ]	(	"linear"	)
}
HouNC1033600b8706a1ff8ab0a50c392fobj/feather_guides/featherwidth2.userdata     ___Version___    1HouNC1033600b8e06a1ff8ab0b9a294bcobj/feather_guides/norm_width.init type = attribwrangle
matchesdef = 1
HouNC1033600b8f06a1ff8ab0dd8377b2obj/feather_guides/norm_width.def sopflags sopflags = 
comment ""
position 7.497 -5.151
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 	featherwidth2 1 1 "input1"
}
inputs
{
0 	featherwidth2 0 1
}
stat
{
  create 1780391622
  modify 1780480093
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600b8e06a1ff8ab08cbcb160obj/feather_guides/norm_width.parm {
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 ]	(	"int pr = pointprims(0, @ptnum)[0];
float scale = primintrinsic(0, \"measuredperimeter\", pr);

f@template_width = f@width / scale;
f@template_barbs_width = f[]@width_barbl[0] / scale;"	)
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	)
}
HouNC1033600b8a06a1ff8ab0b4ec458eobj/feather_guides/norm_width.userdata     ___Version___     HouNC1033600b8b06a1ff8ab05ddc99a7obj/feather_guides/object_merge1.init type = object_merge
matchesdef = 1
HouNC1033600b8806a1ff8ab0208d5408obj/feather_guides/object_merge1.def sopflags sopflags = 
comment ""
position 4.56177 -11.1485
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
outputsNamed3
{
0 "output1"
}
inputsNamed3
{
}
inputs
{
}
stat
{
  create 1780479714
  modify 1780480158
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600b8b06a1ff8ab020430b22obj/feather_guides/object_merge1.parm {
version 0.8
numobj	[ 0	locks=0 ]	(	1	)
_separator	[ 0	locks=0 ]	(	)
xformtype	[ 0	locks=0 ]	(	"none"	)
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 ]	(	../tommy	)
group1	[ 0	locks=0 ]	(	""	)
expand1	[ 0	locks=0 ]	(	"off"	)
}
HouNC1033600b8706a1ff8ab06a9f517aobj/feather_guides/object_merge1.userdata     ___Version___    20.5.445HouNC1033600bb206a1ff8ab0b6d21bf4obj/feather_guides/merge1.init type = merge
matchesdef = 1
HouNC1033600bb306a1ff8ab0faea92f0obj/feather_guides/merge1.def sopflags sopflags = 
comment ""
position 3.04565 -12.7851
connectornextid 2
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 	ramp_barbs 1 1 "input1"
1 	object_merge1 0 1 "input2"
}
inputs
{
0 	ramp_barbs 0 1
1 	object_merge1 0 1
}
stat
{
  create 1780479836
  modify 1780480158
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600bb206a1ff8ab0005e1b4bobj/feather_guides/merge1.parm {
version 0.8
}
HouNC1033600b8e06a1ff8ab0ea017a4dobj/feather_guides/merge1.userdata     ___Version___    20.5.445HouNC1033600bb406a1ff8ab05cacdb23obj/feather_guides.order 14
guidegroom1
feathertemplateinterpolate1
featherwidth1
groupsfromname1
comp_width
ramp_barbs
tommy
base_a
feathershapeorg1
curve1
featherwidth2
norm_width
object_merge1
merge1
HouNC1033600bba06a1ff8ab007c5eec1obj/feather_guides.net 1
HouNC1033600ba506a1ff8ab0048e5fbeobj.net 1
HouNC1033600ba506a1ff8ab09156a445out.def comment ""
position 0 1.5
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
{
}
inputs
{
}
stat
{
  create 1780231846
  modify 1780232830
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600ba406a1ff8ab0d5970f51out.parm {
version 0.8
}
HouNC1033600ba006a1ff8ab0009b79cfout.userdata     ___Version___    20.5.445HouNC1033600ba506a1ff8ab05f48a655out.net 1
HouNC1033600baa06a1ff8ab0563971cech.def comment ""
position 0 0.75
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
{
}
inputs
{
}
stat
{
  create 1780231846
  modify 1780232830
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600ba506a1ff8ab008c4757bch.parm {
version 0.8
}
HouNC1033600ba106a1ff8ab064685c3cch.userdata     ___Version___    20.5.445HouNC1033600baa06a1ff8ab01e49fb68ch.net 1
HouNC1033600ba406a1ff8ab076989a5dshop.def comment ""
position 0 2.25
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
{
}
inputs
{
}
stat
{
  create 1780231846
  modify 1780232830
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600ba706a1ff8ab02c7d5db5shop.parm {
version 0.8
}
HouNC1033600ba306a1ff8ab0240584c2shop.userdata     ___Version___    20.5.445HouNC1033600ba406a1ff8ab0ca38512fshop.net 1
HouNC1033600ba506a1ff8ab0c132d23bimg.def comment ""
position 0 3
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
{
}
inputs
{
}
stat
{
  create 1780231846
  modify 1780232830
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600ba406a1ff8ab00c04e9b6img.parm {
version 0.8
}
HouNC1033600ba006a1ff8ab0c0f67cc3img.userdata     ___Version___    20.5.445HouNC1033600ba206a1ff8ab04ae9db06img/comp1.init type = img
matchesdef = 0
HouNC1033600ba306a1ff8ab0e2aa0b1cimg/comp1.def comment ""
position 1 1
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 off
outputsNamed3
{
}
inputsNamed3
{
}
inputs
{
}
stat
{
  create 1780231850
  modify 1780232830
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600ba206a1ff8ab027482685img/comp1.parm {
version 0.8
}
HouNC1033600bbe06a1ff8ab03d76e141img/comp1.userdata     ___Version___    20.5.445HouNC1033600ba306a1ff8ab04fbca55fimg/comp1.net 1
HouNC1033600bbc06a1ff8ab09c3425fbimg/copnet1.init type = copnet
matchesdef = 0
HouNC1033600bbd06a1ff8ab0f3a87747img/copnet1.def comment ""
position 0 0
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
{
}
inputs
{
}
stat
{
  create 1780231850
  modify 1780232830
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600bbc06a1ff8ab09a182c88img/copnet1.parm {
version 0.8
setres	[ 0	locks=0 ]	(	"off"	)
res	[ 0	locks=0 ]	(	1024	1024	)
resmenu	[ 0	locks=0 ]	(	"none"	)
setpixelscale	[ 0	locks=0 ]	(	"off"	)
pixelscale	[ 0	locks=0 ]	(	2	)
setborder	[ 0	locks=0 ]	(	"off"	)
border	[ 0	locks=0 ]	(	"wrap"	)
setprecision	[ 0	locks=0 ]	(	"off"	)
precision	[ 0	locks=0 ]	(	"b32"	)
setvistile	[ 0	locks=0 ]	(	"off"	)
vistile	[ 0	locks=0 ]	(	3	)
}
HouNC1033600bb806a1ff8ab0a7647cd9img/copnet1.userdata     ___Version___    20.5.445HouNC1033600bbd06a1ff8ab0eb222c1eimg/copnet1.net 1
HouNC1033600ba706a1ff8ab0aeffd570img.order 2
comp1
copnet1
HouNC1033600ba506a1ff8ab0e8f4ceb3img.net 1
HouNC1033600ba506a1ff8ab03d423678vex.net 1
HouNC1033600ba506a1ff8ab04f7fd12dmat.net 1
HouNC1033600ba706a1ff8ab0134c5948stage.def comment ""
position 0 4.5
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 debug off
outputsNamed3
{
}
inputsNamed3
{
}
inputs
{
}
stat
{
  create 1780231846
  modify 1780480161
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600ba606a1ff8ab089b123d9stage.parm {
version 0.8
pinnedprims	[ 0	locks=0 ]	(	""	)
resolvercontextassetpath	[ 0	locks=0 ]	(	""	)
resolvercontextstringcount	[ 0	locks=0 ]	(	0	)
variantselectioncount	[ 0	locks=0 ]	(	0	)
insertionpointdescriptor	[ 0	locks=0 ]	(	""	)
rendergallerysource	[ 0	locks=0 ]	(	$HIP/galleries/$HIPNAME.$OS/rendergallery.db	)
}
HouNC1033600ba206a1ff8ab0c521ad85stage.userdata     ___Version___    20.5.445HouNC1033600bbc06a1ff8ab06bf67a0cstage.datablocks         __onload__.expansion 	expansion       {
	"expanded":true
}
 __onload__.loadmasks 	loadmasks       z{
	"populateall":true,
	"populatepaths":[
	],
	"mutelayers":[
	],
	"loadall":true,
	"loadpaths":[
	],
	"fallbacks":{
	}
}
HouNC1033600ba706a1ff8ab085fbb0d4stage.net 1
HouNC1033600ba706a1ff8ab03a684e03tasks.def comment ""
position 0 5.25
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
{
}
inputs
{
}
stat
{
  create 1780231847
  modify 1780232830
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600ba606a1ff8ab07ddb51d6tasks.parm {
version 0.8
}
HouNC1033600ba206a1ff8ab0967a83e6tasks.userdata     ___Version___    20.5.445HouNC1033600bbe06a1ff8ab01ea51163tasks/topnet1.init type = topnet
matchesdef = 0
HouNC1033600bbf06a1ff8ab000d09661tasks/topnet1.def comment ""
position 0 0
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 off colordefault on exposed on
outputsNamed3
{
}
inputsNamed3
{
}
inputs
{
}
stat
{
  create 1780231850
  modify 1780480160
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.8 0.8 0.8 
delscript ""
exprlanguage hscript
end
HouNC1033600bbe06a1ff8ab0744b4227tasks/topnet1.parm {
version 0.8
cookcontrolssection	[ 0	locks=0 ]	(	0	)
generatestatic	[ 0	locks=0 ]	(	0	)
cookbutton	[ 0	locks=0 ]	(	0	)
dirtybutton	[ 0	locks=0 ]	(	0	)
cancelbutton	[ 0	locks=0 ]	(	0	)
taskgraphsection	[ 0	locks=0 ]	(	0	)
checkpointformat	[ 0	locks=0 ]	(	"1"	)
taskgraphfile	[ 0	locks=0 ]	(	$HIP/$HIPNAME.taskgraph.$F.py	)
savetaskgraph	[ 0	locks=0 ]	(	0	)
loadtaskgraph	[ 0	locks=0 ]	(	0	)
taskgraphautosave	[ 0	locks=0 ]	(	"off"	)
taskgraphsaverate	[ 0	locks=0 ]	(	10	)
checkpointfile	[ 0	locks=0 ]	(	$HIP/$HIPNAME.checkpoint.json	)
loadcheckpoint	[ 0	locks=0 ]	(	0	)
checkpointload	[ 0	locks=0 ]	(	"0"	)
checkpointenabled	[ 0	locks=0 ]	(	"off"	)
checkpointrate	[ 0	locks=0 ]	(	10	)
sep2	[ 0	locks=0 ]	(	)
savegraphattribs	[ 0	locks=0 ]	(	"on"	)
schedulersection	[ 0	locks=0 ]	(	0	)
topscheduler	[ 0	locks=0 ]	(	localscheduler	)
usedefaultlabel	[ 0	locks=0 ]	(	"off"	)
defaultlabel	[ 0	locks=0 ]	(	$OS.`@pdg_index`	)
sep1	[ 0	locks=0 ]	(	)
regenerationtype	[ 0	locks=0 ]	(	"0"	)
evaluationtime	[ 0	locks=0 ]	(	"0"	)
customtime	[ 0	locks=0 ]	(	0	)
savescenefile	[ 0	locks=0 ]	(	"on"	)
}
HouNC1033600bba06a1ff8ab07f8642fatasks/topnet1.userdata     ___Version___    20.5.445HouNC1033600b8f06a1ff8ab025393678tasks/topnet1/localscheduler.init type = localscheduler
matchesdef = 0
HouNC1033600b8c06a1ff8ab0a722444etasks/topnet1/localscheduler.def comment ""
position 0 0
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 off colordefault on exposed on
outputsNamed3
{
}
inputsNamed3
{
}
inputs
{
}
stat
{
  create 1780231850
  modify 1780480159
  author ddd@ddd
  access 0777
}
color UT_Color RGB 0.478 0.478 0.478 
delscript ""
exprlanguage hscript
end
HouNC1033600b8f06a1ff8ab0b315998atasks/topnet1/localscheduler.parm {
version 0.8
folder0	[ 0	locks=0 ]	(	0	0	0	)
folder5	[ 0	locks=0 ]	(	0	)
maxprocsmenu	[ 0	locks=0 ]	(	"0"	)
maxprocs	[ 0	locks=0 ]	(	1	)
pdg_usemaxtasks	[ 0	locks=0 ]	(	"off"	)
pdg_maxtasks	[ 0	locks=0 ]	(	0	)
verbose	[ 0	locks=0 ]	(	"off"	)
pdg_waitforfailures	[ 0	locks=0 ]	(	"off"	)
folder4	[ 0	locks=0 ]	(	0	)
pdg_workingdir	[ 0	locks=0 ]	(	$HIP	)
hythonbin	[ 0	locks=0 ]	(	"0"	)
hythonbincustomuniversal	[ 0	locks=0 ]	(	""	)
pdg_workitemdatasource	[ 0	locks=0 ]	(	"0"	)
pdg_compressworkitemdata	[ 0	locks=0 ]	(	"on"	)
pdg_validateoutputs	[ 0	locks=0 ]	(	"on"	)
pdg_checkexpectedoutputs	[ 0	locks=0 ]	(	"on"	)
sepparm2	[ 0	locks=0 ]	(	)
pdg_mapmode	[ 0	locks=0 ]	(	"0"	)
pdg_usemapzone	[ 0	locks=0 ]	(	"off"	)
pdg_mapzone	[ 0	locks=0 ]	(	$PDG_PATHMAP_ZONE	)
folder1	[ 0	locks=0 ]	(	0	)
tempdirmenu	[ 0	locks=0 ]	(	"1"	)
tempdirappendpid	[ 0	locks=0 ]	(	"on"	)
tempdircustom	[ 0	locks=0 ]	(	$HOUDINI_TEMP_DIR/$HIPNAME/pdgtemp	)
pdg_deletetempdir	[ 0	locks=0 ]	(	"0"	)
socketcallbacks	[ 0	locks=0 ]	(	1	)
pdg_rpcignoreerrors	[ 0	locks=0 ]	(	"0"	)
pdg_rpcmaxerrors	[ 0	locks=0 ]	(	5	)
pdg_rpctimeout	[ 0	locks=0 ]	(	4	)
pdg_rpcretries	[ 0	locks=0 ]	(	2	)
pdg_rpcbackoff	[ 0	locks=0 ]	(	2	)
pdg_rpcbatch	[ 0	locks=0 ]	(	1	)
pdg_rpcrelease	[ 0	locks=0 ]	(	"on"	)
folder0_3	[ 0	locks=0 ]	(	0	)
local_single	[ 0	locks=0 ]	(	"off"	)
local_is_CPU_number_set	[ 0	locks=0 ]	(	"off"	)
local_CPUs_to_use	[ 0	locks=0 ]	(	1	)
folder6	[ 0	locks=0 ]	(	0	)
local_useminfreemem	[ 0	locks=0 ]	(	"0"	)
local_minfreemem	[ 0	locks=0 ]	(	0	)
local_minfreemempct	[ 0	locks=0 ]	(	0	)
folder2	[ 0	locks=0 ]	(	0	)
local_enabletimeout	[ 0	locks=0 ]	(	"off"	)
local_maxtime	[ 0	locks=0 ]	(	0	)
local_handletimeout	[ 0	locks=0 ]	(	"0"	)
sepparm4	[ 0	locks=0 ]	(	)
local_enablemaxmemory	[ 0	locks=0 ]	(	"off"	)
local_maxmemory	[ 0	locks=0 ]	(	0	)
local_handlememory	[ 0	locks=0 ]	(	"0"	)
sepparm5	[ 0	locks=0 ]	(	)
local_echandleby	[ 0	locks=0 ]	(	"0"	)
local_echandleall	[ 0	locks=0 ]	(	"on"	)
local_eccustomcode	[ 0	locks=0 ]	(	1	)
sepparm	[ 0	locks=0 ]	(	)
local_maximumretries	[ 0	locks=0 ]	(	3	)
local_addfailcountattr	[ 0	locks=0 ]	(	"off"	)
local_failcountattr	[ 0	locks=0 ]	(	failurecount	)
folder3	[ 0	locks=0 ]	(	0	)
local_usehoudinimaxthreads	[ 0	locks=0 ]	(	"off"	)
local_houdinimaxthreads	[ 0	locks=0 ]	(	0	)
local_requireswindow	[ 0	locks=0 ]	(	"off"	)
local_skippackages	[ 0	locks=0 ]	(	"on"	)
local_envunset	[ 0	locks=0 ]	(	""	)
local_env_file	[ 0	locks=0 ]	(	""	)
local_envmulti	[ 0	locks=0 ]	(	0	)
}
HouNC1033600b8b06a1ff8ab0270f4441tasks/topnet1/localscheduler.userdata     ___Version___    1HouNC1033600bbf06a1ff8ab037bae678tasks/topnet1.net 1
HouNC1033600ba706a1ff8ab0cc34da38tasks.net 1
HouNC1033600bbb06a1ff8ab050fcea3d.scenefilevisualizers visualizeradd -r vis_color vis_split
visualizerset vis_split label ( 'split Point Attribute' ) flags ( 27 ) type ( vis_color ) name ( vis_split ) parameters ( '{\nversion 0.8\ncolortype	[ 0	locks=0 ]	(	"attribramped"	)\nclass	[ 0	locks=0 ]	(	"auto"	)\nattrib	[ 0	locks=0 ]	(	split	)\nuvattrib	[ 0	locks=0 ]	(	uv	)\ndistortiontype	[ 0	locks=0 ]	(	"global"	)\nrangesection	[ 0	locks=0 ]	(	0	)\nrangespec	[ 0	locks=0 ]	(	"min-max"	)\nminscalar	[ 0	locks=0 ]	(	0	)\nmaxscalar	[ 0	locks=0 ]	(	1	)\ncenterscalar	[ 0	locks=0 ]	(	0	)\nwidthscalar	[ 0	locks=0 ]	(	2	)\nclamptype	[ 0	locks=0 ]	(	"edge"	)\nconstcolor	[ 0	locks=0 ]	(	1	0	0	1	)\nusethreevtxcolor	[ 0	locks=0 ]	(	"on"	)\ncolorthreevtx	[ 0	locks=0 ]	(	1	1	0	)\nusefourvtxcolor	[ 0	locks=0 ]	(	"on"	)\ncolorfourvtx	[ 0	locks=0 ]	(	0.5	0.7	1	)\nusenvtxcolor	[ 0	locks=0 ]	(	"on"	)\ncolornvtx	[ 0	locks=0 ]	(	1	0	0	)\ntreatasscalar	[ 0	locks=0 ]	(	"off"	)\nusing	[ 0	locks=0 ]	(	"comp"	)\ncomponent	[ 0	locks=0 ]	(	0	)\nrefvec	[ 0	locks=0 ]	(	0	1	0	)\nrandseed	[ 0	locks=0 ]	(	0	)\nvalsep	[ 0	locks=0 ]	(	1	)\nrampsection	[ 0	locks=0 ]	(	0	)\ncolorramppreset	[ 0	locks=0 ]	(	0	)\ncolorramp	[ 0	locks=0 ]	(	5	)\ncolorramp1pos	[ 0	locks=0 ]	(	0	)\ncolorramp1c	[ 0	locks=0 ]	(	0.20000000298023224	0	1	)\ncolorramp1interp	[ 0	locks=0 ]	(	"linear"	)\ncolorramp2pos	[ 0	locks=0 ]	(	0.25	)\ncolorramp2c	[ 0	locks=0 ]	(	0	0.8500000238418579	1	)\ncolorramp2interp	[ 0	locks=0 ]	(	"linear"	)\ncolorramp3pos	[ 0	locks=0 ]	(	0.5	)\ncolorramp3c	[ 0	locks=0 ]	(	0	1	0.10000000149011612	)\ncolorramp3interp	[ 0	locks=0 ]	(	"linear"	)\ncolorramp4pos	[ 0	locks=0 ]	(	0.75	)\ncolorramp4c	[ 0	locks=0 ]	(	0.949999988079071	1	0	)\ncolorramp4interp	[ 0	locks=0 ]	(	"linear"	)\ncolorramp5pos	[ 0	locks=0 ]	(	1	)\ncolorramp5c	[ 0	locks=0 ]	(	1	0	0	)\ncolorramp5interp	[ 0	locks=0 ]	(	"linear"	)\n}\n' ) icon ( MISC_generic ) scope ( 3 )
HouNC1033600ba006a1ff8ab0baba20aa.application networkeditor -p '{\n}\n'viewerstow -b stow -x open -l open -m hide -c hide -d open Grooming.panetab1.world
vieweroption -a 1 -h 0 -m 1 -r 'View: Mantra' Grooming.panetab1.world
viewergrouplist -g off -s 0 0 -c  on -t matchselect -m '*' -e on -p off -h on Grooming.panetab1.world
vieweroption -p 0 -P '+geo -cam -light -muscle -bone -null -blend -other' Grooming.panetab1.world
viewlayout -s 2 Grooming.panetab1.world
viewerinspect Grooming.panetab1.world mode ( objects ) object_properties ( ) prim_properties ( ) enable ( 0 ) magnify ( 1 )
viewtype -t perspective Grooming.panetab1.world.`vpname("Grooming.panetab1.world",2)`
viewtype -t ortho_top Grooming.panetab1.world.`vpname("Grooming.panetab1.world",1)`
viewtype -t ortho_front Grooming.panetab1.world.`vpname("Grooming.panetab1.world",3)`
viewtype -t ortho_right Grooming.panetab1.world.`vpname("Grooming.panetab1.world",4)`
viewname -l on -n aaaa3 Grooming.panetab1.world.`vpname("Grooming.panetab1.world",2)`
viewname -l on -n aaaa2 Grooming.panetab1.world.`vpname("Grooming.panetab1.world",1)`
viewname -l on -n aaaa1 Grooming.panetab1.world.`vpname("Grooming.panetab1.world",3)`
viewname -l on -n aaaa0 Grooming.panetab1.world.`vpname("Grooming.panetab1.world",4)`
viewname -l off -n persp1 Grooming.panetab1.world.`vpname("Grooming.panetab1.world",2)`
viewname -l off -n top1 Grooming.panetab1.world.`vpname("Grooming.panetab1.world",1)`
viewname -l off -n front1 Grooming.panetab1.world.`vpname("Grooming.panetab1.world",3)`
viewname -l off -n right1 Grooming.panetab1.world.`vpname("Grooming.panetab1.world",4)`
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L on -G off -B none -d uv -r unique scene Grooming.panetab1.world.persp1
viewdispset -t off  scene Grooming.panetab1.world.persp1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L on -G off -B none -d uv -r scene selectscene Grooming.panetab1.world.persp1
viewdispset -t off  selectscene Grooming.panetab1.world.persp1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L off -G on -B none -d uv -r unique ghostscene Grooming.panetab1.world.persp1
viewdispset -t off  ghostscene Grooming.panetab1.world.persp1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P on -p off -f off -o off -w on -s shade_wire -F off -l on -L on -G off -B none -d uv -r unique display Grooming.panetab1.world.persp1
viewdispset -t on  display Grooming.panetab1.world.persp1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P on -p off -f off -o off -w off -s wire -F off -l on -L off -G off -B none -d uv -r unique current Grooming.panetab1.world.persp1
viewdispset -t off  current Grooming.panetab1.world.persp1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s wire -F on -l on -L off -G on -B none -d uv -r unique template Grooming.panetab1.world.persp1
viewdispset -t off  template Grooming.panetab1.world.persp1
viewdisplay -B dark -b off -d off -C 2 -e 1 -F on -f off -g on -G '*' -h off -H on -j off -J off -L on -n 0.2 -o off -O on -q on -r on -s off -t on -V 2 -z off -y off -x off -X off -U 4 -Y 4 -T on -R on -i on -D on -k off Grooming.panetab1.world.persp1
viewdisplay -Q on -m on -v on Grooming.panetab1.world.persp1
viewdisplay -W  off 0 0 Grooming.panetab1.world.persp1
viewdisplay -c on -l1 -K on -P points -p 3 Grooming.panetab1.world.persp1
viewdispopts -a on -A 0.5 -b current -B 0 -c 1 -C 60  -d  on -D 1 -g on -i on -n on -N 1000000 -o off -p 10 -P off -r off -R on -S 768 -l 128 -m 0.05 -M 1024 -s on -t 0.5 -u uv -w 0.1 -W 0.9 -x on -X off Grooming.panetab1.world.persp1
viewdispopts -f off -k 0 -I 1 -O on -T MatCap/OilClay.pic -U lookdev/uvgrid_grey.exr -v 1 Grooming.panetab1.world.persp1
viewdispopts -G 2 Grooming.panetab1.world.persp1
viewdispopts -j 1 -J 1 -K 1 Grooming.panetab1.world.persp1
vieweffect -a 2 -A 4 -b on -B 1 -d on -D on off -e 0.8 -E -30 -30 -100 -f 1 -F 0 -g 2.2 -G 0 -h 1 -H on -i on -I 1 -j on -J 50 -K 2 -k 1 -l '' -m on -M 2048 -o off -O 3 -p off -P 3 -q 1 -Q 2 -r 2048 2048 -s 2 -t 100 -T 100 -u off -U off -v 256 256 256 -w 0.05 -W on -x 0.4 0.4 0.4 -X 0.4 0.4 0.4 -y 0.4 0.4 0.4 -Y 0.0025 0.0025 0.0025 -z 0.01 -Z 1 Grooming.panetab1.world.persp1
viewinfotext -m off -s off -t on Grooming.panetab1.world.persp1
viewlight  -a on -d on -e on -h on -l on -n 20 -s on Grooming.panetab1.world.persp1
viewbackground -b on -e on -q 1 -i off -m 0 0 -M 1 1 Grooming.panetab1.world.persp1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off persp Grooming.panetab1.world.persp1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off cam Grooming.panetab1.world.persp1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off top Grooming.panetab1.world.persp1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off front Grooming.panetab1.world.persp1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off right Grooming.panetab1.world.persp1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off bottom Grooming.panetab1.world.persp1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off back Grooming.panetab1.world.persp1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off left Grooming.panetab1.world.persp1
viewroto  -S file -F 'lookdev/uvgrid_grey.exr' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 0.2 -e off uv Grooming.panetab1.world.persp1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off image Grooming.panetab1.world.persp1
viewforeground -d on -f on -D Pz -s 0 Grooming.panetab1.world.persp1
viewforeground -o 1 Grooming.panetab1.world.persp1
viewtransform Grooming.panetab1.world.persp1 version ( 3 )  flag ( Fx )  orthowidth ( 1.65173 )  focal ( 50 )  aperture ( 41.4214 )  window ( 0 1 0 1 )  winroll ( 0 )  clear ( 1 )  nearfar ( 0.00164967 1649.67 )  aspect ( 1.33333 )  pixelaspect ( 1 )  txyz ( 0.00383187 1.68826 0.611023 )  pxyz ( 0.031158 1.67212 0.10484 )  rotation ( 0.960903 0.0154802 -0.27645 1.35682e-06 0.998435 0.0559134 0.276883 -0.0537278 0.9594  )  homedistance ( 2.32474 )  homeadjboxwidth ( 1.65173 )  homeorthowidth ( 1.65173 )  homeradius ( 1.86968 )  homeaxis ( 0 )  homecustom ( 0.707107 -0.353553 0.612372 0 0.866025 0.5 -0.707107 -0.353553 0.612372  )  adjustlimits ( 3 )  fov ( 45b)  inffreecam ( 0 )  
viewcamera -c '' Grooming.panetab1.world.persp1
vieworthogrid -d on -o 0 0 0 -s 0.2 0.2 -r 5 5 -R 1 Grooming.panetab1.world.persp1
viewuvgrid -r on -s 0.1 0.1 -P off -S 64 64 -O 0 0 -C on -t on Grooming.panetab1.world.persp1
viewagentopts  -L on -b 0 -d 1 -l 0 -m 4 -p 1000 -w 1 -B 1 Grooming.panetab1.world.persp1
viewcharacteropts  -D off Grooming.panetab1.world.persp1
viewonionskin  -e on -a 4 -b 4 -i 6 -o 0.5 -A 1 1 1 -B 1 1 1 Grooming.panetab1.world.persp1
viewposteffects  -D off -B off -t "" -f off -V off -S on -a 1 -b 5 -F 1 -g 1 -c 1 1 1 -C 1 1 1 -d 1e+06 -h 0 -H 100 10 -i 1 -I 1 -l 1 -n "" -o 1 -O 1 -r 0 1000 -R 1 200 -s 1 1 -u 0 -U 100 10 -v 0 Grooming.panetab1.world.persp1
viewposteffects  -e off -E 10 -T 0.95 -L 1 Grooming.panetab1.world.persp1
viewmaskoverlay -o 0.4 Grooming.panetab1.world.persp1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L on -G off -B none -d uv -r unique scene Grooming.panetab1.world.top1
viewdispset -t off  scene Grooming.panetab1.world.top1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L on -G off -B none -d uv -r scene selectscene Grooming.panetab1.world.top1
viewdispset -t off  selectscene Grooming.panetab1.world.top1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L off -G on -B none -d uv -r unique ghostscene Grooming.panetab1.world.top1
viewdispset -t off  ghostscene Grooming.panetab1.world.top1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P on -p off -f off -o off -w on -s shade_wire -F off -l on -L on -G off -B none -d uv -r unique display Grooming.panetab1.world.top1
viewdispset -t on  display Grooming.panetab1.world.top1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P on -p off -f off -o off -w off -s wire -F off -l on -L off -G off -B none -d uv -r unique current Grooming.panetab1.world.top1
viewdispset -t off  current Grooming.panetab1.world.top1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s wire -F on -l on -L off -G on -B none -d uv -r unique template Grooming.panetab1.world.top1
viewdispset -t off  template Grooming.panetab1.world.top1
viewdisplay -B dark -b off -d off -C 2 -e 1 -F on -f off -g on -G '*' -h off -H on -j off -J off -L on -n 0.2 -o off -O on -q on -r on -s off -t on -V 2 -z off -y off -x off -X off -U 4 -Y 4 -T on -R on -i on -D on -k off Grooming.panetab1.world.top1
viewdisplay -Q on -m on -v on Grooming.panetab1.world.top1
viewdisplay -W  off 0 0 Grooming.panetab1.world.top1
viewdisplay -c on -l1 -K on -P points -p 3 Grooming.panetab1.world.top1
viewdispopts -a on -A 0.5 -b current -B 0 -c 1 -C 60  -d  on -D 1 -g on -i on -n on -N 1000000 -o off -p 10 -P off -r off -R on -S 768 -l 128 -m 0.05 -M 1024 -s on -t 0.5 -u uv -w 0.1 -W 0.9 -x on -X off Grooming.panetab1.world.top1
viewdispopts -f off -k 0 -I 1 -O on -T MatCap/OilClay.pic -U lookdev/uvgrid_grey.exr -v 1 Grooming.panetab1.world.top1
viewdispopts -G 2 Grooming.panetab1.world.top1
viewdispopts -j 1 -J 1 -K 1 Grooming.panetab1.world.top1
vieweffect -a 2 -A 4 -b on -B 1 -d on -D on off -e 0.8 -E -30 -30 -100 -f 1 -F 0 -g 2.2 -G 0 -h 1 -H on -i on -I 1 -j on -J 50 -K 2 -k 1 -l '' -m on -M 2048 -o off -O 3 -p off -P 3 -q 1 -Q 2 -r 2048 2048 -s 2 -t 100 -T 100 -u off -U off -v 256 256 256 -w 0.05 -W on -x 0.4 0.4 0.4 -X 0.4 0.4 0.4 -y 0.4 0.4 0.4 -Y 0.0025 0.0025 0.0025 -z 0.01 -Z 1 Grooming.panetab1.world.top1
viewinfotext -m off -s off -t on Grooming.panetab1.world.top1
viewlight  -a on -d on -e on -h on -l on -n 20 -s on Grooming.panetab1.world.top1
viewbackground -b on -e on -q 1 -i off -m 0 0 -M 1 1 Grooming.panetab1.world.top1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off persp Grooming.panetab1.world.top1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off cam Grooming.panetab1.world.top1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off top Grooming.panetab1.world.top1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off front Grooming.panetab1.world.top1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off right Grooming.panetab1.world.top1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off bottom Grooming.panetab1.world.top1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off back Grooming.panetab1.world.top1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off left Grooming.panetab1.world.top1
viewroto  -S file -F 'lookdev/uvgrid_grey.exr' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 0.2 -e off uv Grooming.panetab1.world.top1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off image Grooming.panetab1.world.top1
viewforeground -d on -f on -D Pz -s 0 Grooming.panetab1.world.top1
viewforeground -o 1 Grooming.panetab1.world.top1
viewtransform Grooming.panetab1.world.top1 version ( 3 )  flag ( Fox )  orthowidth ( 1.35154 )  focal ( 50 )  aperture ( 41.4214 )  window ( 0 1 0 1 )  winroll ( 0 )  clear ( 1 )  nearfar ( 0.0268246 4682.46 )  aspect ( 1.33333 )  pixelaspect ( 1 )  txyz ( 0.269627 7.10892e-08 3.08612 )  pxyz ( 0.269627 7.10892e-08 -0.596341 )  rotation ( 1 0 0 0 1.19209e-07 1 0 -1 1.19209e-07  )  homedistance ( 3.68246 )  homeadjboxwidth ( 2.22222 )  homeorthowidth ( 2.22222 )  homeradius ( 3.4641 )  homeaxis ( 0 )  homecustom ( 0.707107 -0.353553 0.612372 0 0.866025 0.5 -0.707107 -0.353553 0.612372  )  adjustlimits ( 3 )  fov ( 45b)  inffreecam ( 0 )  
vieworthogrid -d on -o 0 0 0 -s 0.2 0.2 -r 5 5 -R 1 Grooming.panetab1.world.top1
viewuvgrid -r on -s 0.1 0.1 -P off -S 64 64 -O 0 0 -C on -t on Grooming.panetab1.world.top1
viewagentopts  -L on -b 0 -d 1 -l 0 -m 4 -p 1000 -w 1 -B 1 Grooming.panetab1.world.top1
viewcharacteropts  -D off Grooming.panetab1.world.top1
viewonionskin  -e on -a 4 -b 4 -i 6 -o 0.5 -A 1 1 1 -B 1 1 1 Grooming.panetab1.world.top1
viewposteffects  -D off -B off -t "" -f off -V off -S on -a 1 -b 5 -F 1 -g 1 -c 1 1 1 -C 1 1 1 -d 1e+06 -h 0 -H 100 10 -i 1 -I 1 -l 1 -n "" -o 1 -O 1 -r 0 1000 -R 1 200 -s 1 1 -u 0 -U 100 10 -v 0 Grooming.panetab1.world.top1
viewposteffects  -e off -E 10 -T 0.95 -L 1 Grooming.panetab1.world.top1
viewmaskoverlay -o 0.4 Grooming.panetab1.world.top1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L on -G off -B none -d uv -r unique scene Grooming.panetab1.world.front1
viewdispset -t off  scene Grooming.panetab1.world.front1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L on -G off -B none -d uv -r scene selectscene Grooming.panetab1.world.front1
viewdispset -t off  selectscene Grooming.panetab1.world.front1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L off -G on -B none -d uv -r unique ghostscene Grooming.panetab1.world.front1
viewdispset -t off  ghostscene Grooming.panetab1.world.front1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P on -p off -f off -o off -w on -s shade_wire -F off -l on -L on -G off -B none -d uv -r unique display Grooming.panetab1.world.front1
viewdispset -t on  display Grooming.panetab1.world.front1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P on -p off -f off -o off -w off -s wire -F off -l on -L off -G off -B none -d uv -r unique current Grooming.panetab1.world.front1
viewdispset -t off  current Grooming.panetab1.world.front1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s wire -F on -l on -L off -G on -B none -d uv -r unique template Grooming.panetab1.world.front1
viewdispset -t off  template Grooming.panetab1.world.front1
viewdisplay -B dark -b off -d off -C 2 -e 1 -F on -f off -g on -G '*' -h off -H on -j off -J off -L on -n 0.2 -o off -O on -q on -r on -s off -t on -V 2 -z off -y off -x off -X off -U 4 -Y 4 -T on -R on -i on -D on -k off Grooming.panetab1.world.front1
viewdisplay -Q on -m on -v on Grooming.panetab1.world.front1
viewdisplay -W  off 0 0 Grooming.panetab1.world.front1
viewdisplay -c on -l1 -K on -P points -p 3 Grooming.panetab1.world.front1
viewdispopts -a on -A 0.5 -b current -B 0 -c 1 -C 60  -d  on -D 1 -g on -i on -n on -N 1000000 -o off -p 10 -P off -r off -R on -S 768 -l 128 -m 0.05 -M 1024 -s on -t 0.5 -u uv -w 0.1 -W 0.9 -x on -X off Grooming.panetab1.world.front1
viewdispopts -f off -k 0 -I 1 -O on -T MatCap/OilClay.pic -U lookdev/uvgrid_grey.exr -v 1 Grooming.panetab1.world.front1
viewdispopts -G 2 Grooming.panetab1.world.front1
viewdispopts -j 1 -J 1 -K 1 Grooming.panetab1.world.front1
vieweffect -a 2 -A 4 -b on -B 1 -d on -D on off -e 0.8 -E -30 -30 -100 -f 1 -F 0 -g 2.2 -G 0 -h 1 -H on -i on -I 1 -j on -J 50 -K 2 -k 1 -l '' -m on -M 2048 -o off -O 3 -p off -P 3 -q 1 -Q 2 -r 2048 2048 -s 2 -t 100 -T 100 -u off -U off -v 256 256 256 -w 0.05 -W on -x 0.4 0.4 0.4 -X 0.4 0.4 0.4 -y 0.4 0.4 0.4 -Y 0.0025 0.0025 0.0025 -z 0.01 -Z 1 Grooming.panetab1.world.front1
viewinfotext -m off -s off -t on Grooming.panetab1.world.front1
viewlight  -a on -d on -e on -h on -l on -n 20 -s on Grooming.panetab1.world.front1
viewbackground -b on -e on -q 1 -i off -m 0 0 -M 1 1 Grooming.panetab1.world.front1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off persp Grooming.panetab1.world.front1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off cam Grooming.panetab1.world.front1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off top Grooming.panetab1.world.front1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off front Grooming.panetab1.world.front1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off right Grooming.panetab1.world.front1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off bottom Grooming.panetab1.world.front1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off back Grooming.panetab1.world.front1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off left Grooming.panetab1.world.front1
viewroto  -S file -F 'lookdev/uvgrid_grey.exr' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 0.2 -e off uv Grooming.panetab1.world.front1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off image Grooming.panetab1.world.front1
viewforeground -d on -f on -D Pz -s 0 Grooming.panetab1.world.front1
viewforeground -o 1 Grooming.panetab1.world.front1
viewtransform Grooming.panetab1.world.front1 version ( 3 )  flag ( Fox )  orthowidth ( 2.22222 )  focal ( 50 )  aperture ( 41.4214 )  window ( 0 1 0 1 )  winroll ( 0 )  clear ( 1 )  nearfar ( 0.00346447 34644.7 )  aspect ( 1.33333 )  pixelaspect ( 1 )  txyz ( 0 0 3.68246 )  pxyz ( 0 0 0 )  rotation ( 1 0 0 0 1 0 0 0 1  )  homedistance ( 3.68246 )  homeadjboxwidth ( 2.22222 )  homeorthowidth ( 2.22222 )  homeradius ( 3.4641 )  homeaxis ( 0 )  homecustom ( 0.707107 -0.353553 0.612372 0 0.866025 0.5 -0.707107 -0.353553 0.612372  )  adjustlimits ( 3 )  fov ( 45b)  inffreecam ( 0 )  
vieworthogrid -d on -o 0 0 0 -s 0.2 0.2 -r 5 5 -R 1 Grooming.panetab1.world.front1
viewuvgrid -r on -s 0.1 0.1 -P off -S 64 64 -O 0 0 -C on -t on Grooming.panetab1.world.front1
viewagentopts  -L on -b 0 -d 1 -l 0 -m 4 -p 1000 -w 1 -B 1 Grooming.panetab1.world.front1
viewcharacteropts  -D off Grooming.panetab1.world.front1
viewonionskin  -e on -a 4 -b 4 -i 6 -o 0.5 -A 1 1 1 -B 1 1 1 Grooming.panetab1.world.front1
viewposteffects  -D off -B off -t "" -f off -V off -S on -a 1 -b 5 -F 1 -g 1 -c 1 1 1 -C 1 1 1 -d 1e+06 -h 0 -H 100 10 -i 1 -I 1 -l 1 -n "" -o 1 -O 1 -r 0 1000 -R 1 200 -s 1 1 -u 0 -U 100 10 -v 0 Grooming.panetab1.world.front1
viewposteffects  -e off -E 10 -T 0.95 -L 1 Grooming.panetab1.world.front1
viewmaskoverlay -o 0.4 Grooming.panetab1.world.front1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L on -G off -B none -d uv -r unique scene Grooming.panetab1.world.right1
viewdispset -t off  scene Grooming.panetab1.world.right1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L on -G off -B none -d uv -r scene selectscene Grooming.panetab1.world.right1
viewdispset -t off  selectscene Grooming.panetab1.world.right1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s shade_wire -F off -l on -L off -G on -B none -d uv -r unique ghostscene Grooming.panetab1.world.right1
viewdispset -t off  ghostscene Grooming.panetab1.world.right1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P on -p off -f off -o off -w on -s shade_wire -F off -l on -L on -G off -B none -d uv -r unique display Grooming.panetab1.world.right1
viewdispset -t on  display Grooming.panetab1.world.right1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P on -p off -f off -o off -w off -s wire -F off -l on -L off -G off -B none -d uv -r unique current Grooming.panetab1.world.right1
viewdispset -t off  current Grooming.panetab1.world.right1
viewdispset -m off always -n off always -c off always -u off always -x off always -N off always -C off always -b off always -M off always -v off always -V off always -U off always -h off -P off -p off -f off -o off -w off -s wire -F on -l on -L off -G on -B none -d uv -r unique template Grooming.panetab1.world.right1
viewdispset -t off  template Grooming.panetab1.world.right1
viewdisplay -B dark -b off -d off -C 2 -e 1 -F on -f off -g on -G '*' -h off -H on -j off -J off -L on -n 0.2 -o off -O on -q on -r on -s off -t on -V 2 -z off -y off -x off -X off -U 4 -Y 4 -T on -R on -i on -D on -k off Grooming.panetab1.world.right1
viewdisplay -Q on -m on -v on Grooming.panetab1.world.right1
viewdisplay -W  off 0 0 Grooming.panetab1.world.right1
viewdisplay -c on -l1 -K on -P points -p 3 Grooming.panetab1.world.right1
viewdispopts -a on -A 0.5 -b current -B 0 -c 1 -C 60  -d  on -D 1 -g on -i on -n on -N 1000000 -o off -p 10 -P off -r off -R on -S 768 -l 128 -m 0.05 -M 1024 -s on -t 0.5 -u uv -w 0.1 -W 0.9 -x on -X off Grooming.panetab1.world.right1
viewdispopts -f off -k 0 -I 1 -O on -T MatCap/OilClay.pic -U lookdev/uvgrid_grey.exr -v 1 Grooming.panetab1.world.right1
viewdispopts -G 2 Grooming.panetab1.world.right1
viewdispopts -j 1 -J 1 -K 1 Grooming.panetab1.world.right1
vieweffect -a 2 -A 4 -b on -B 1 -d on -D on off -e 0.8 -E -30 -30 -100 -f 1 -F 0 -g 2.2 -G 0 -h 1 -H on -i on -I 1 -j on -J 50 -K 2 -k 1 -l '' -m on -M 2048 -o off -O 3 -p off -P 3 -q 1 -Q 2 -r 2048 2048 -s 2 -t 100 -T 100 -u off -U off -v 256 256 256 -w 0.05 -W on -x 0.4 0.4 0.4 -X 0.4 0.4 0.4 -y 0.4 0.4 0.4 -Y 0.0025 0.0025 0.0025 -z 0.01 -Z 1 Grooming.panetab1.world.right1
viewinfotext -m off -s off -t on Grooming.panetab1.world.right1
viewlight  -a on -d on -e on -h on -l on -n 20 -s on Grooming.panetab1.world.right1
viewbackground -b on -e on -q 1 -i off -m 0 0 -M 1 1 Grooming.panetab1.world.right1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off persp Grooming.panetab1.world.right1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off cam Grooming.panetab1.world.right1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off top Grooming.panetab1.world.right1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off front Grooming.panetab1.world.right1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off right Grooming.panetab1.world.right1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off bottom Grooming.panetab1.world.right1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off back Grooming.panetab1.world.right1
viewroto  -S file -F '' -C '' -a off -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off left Grooming.panetab1.world.right1
viewroto  -S file -F 'lookdev/uvgrid_grey.exr' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 0.2 -e off uv Grooming.panetab1.world.right1
viewroto  -S file -F '' -C '' -a on -f 'scale' -o 0 0 -s 1 1 -O 1 -B 1 -e off image Grooming.panetab1.world.right1
viewforeground -d on -f on -D Pz -s 0 Grooming.panetab1.world.right1
viewforeground -o 1 Grooming.panetab1.world.right1
viewtransform Grooming.panetab1.world.right1 version ( 3 )  flag ( Fox )  orthowidth ( 2.22222 )  focal ( 50 )  aperture ( 41.4214 )  window ( 0 1 0 1 )  winroll ( 0 )  clear ( 1 )  nearfar ( 0.00346447 34644.7 )  aspect ( 1.33333 )  pixelaspect ( 1 )  txyz ( 0 0 3.68246 )  pxyz ( 0 0 0 )  rotation ( 6.12323e-17 0 1 0 1 0 -1 0 6.12323e-17  )  homedistance ( 3.68246 )  homeadjboxwidth ( 2.22222 )  homeorthowidth ( 2.22222 )  homeradius ( 3.4641 )  homeaxis ( 0 )  homecustom ( 0.707107 -0.353553 0.612372 0 0.866025 0.5 -0.707107 -0.353553 0.612372  )  adjustlimits ( 3 )  fov ( 45b)  inffreecam ( 0 )  
vieworthogrid -d on -o 0 0 0 -s 0.2 0.2 -r 5 5 -R 1 Grooming.panetab1.world.right1
viewuvgrid -r on -s 0.1 0.1 -P off -S 64 64 -O 0 0 -C on -t on Grooming.panetab1.world.right1
viewagentopts  -L on -b 0 -d 1 -l 0 -m 4 -p 1000 -w 1 -B 1 Grooming.panetab1.world.right1
viewcharacteropts  -D off Grooming.panetab1.world.right1
viewonionskin  -e on -a 4 -b 4 -i 6 -o 0.5 -A 1 1 1 -B 1 1 1 Grooming.panetab1.world.right1
viewposteffects  -D off -B off -t "" -f off -V off -S on -a 1 -b 5 -F 1 -g 1 -c 1 1 1 -C 1 1 1 -d 1e+06 -h 0 -H 100 10 -i 1 -I 1 -l 1 -n "" -o 1 -O 1 -r 0 1000 -R 1 200 -s 1 1 -u 0 -U 100 10 -v 0 Grooming.panetab1.world.right1
viewposteffects  -e off -E 10 -T 0.95 -L 1 Grooming.panetab1.world.right1
viewmaskoverlay -o 0.4 Grooming.panetab1.world.right1
viewsnapshotoption -s off -h off -a 1 -v '*' -m 0 Grooming.panetab1.world
cplane -o 0 0 0 -n 4.37114e-08 1 -4.37114e-08 -x 1.91069e-15 4.37114e-08 1 -l n -s 0.1 0.1 -c 40 40 -r 10 10 -d off Grooming.panetab1.world
glcache -t 1637 -v 6550
networkeditor -p '{\n}\n'performance -c on -d on -f on -g off -j on -k on -m off -n on -o on -t off -v on -p on -y on -u on -e off -r absolute -R seconds -w tree panetab12
chopview -a 0 -c "" -k 1 -m 1 -b 1 -e 1 -f 0 -g 0 -H 1 -i 0 -j 1 -l 0 -n 1 -V 0 -y 0 -B 0 -s 0 -S 0.034375 -u 0 -v 0 -h -10 310 -r -1.5 1.5 Build.panetab13
imgview -p '(' none -z 1 ')' 0 -c 0 -l on -s off -i imgview2
imgdispopt -m 256 -P on -M on -A on -j on -x off -L on -g 2.2 -B 1 -v split -V 2 2 -d h -a off -i 2 -b 0 0 0 -o "" -h on -H on -c 0.8 0.8 0.8 -C 1 1 1 -S 1 1 0 -R 6 -F dc -D "" -I "" -f "" -s off -r 256 256 -p on -l on -t on
imgview -z 1 -p (none) 0 -c 0 -l on -s off -i imgview2
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 1
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 2
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 3
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 4
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 5
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 6
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 7
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 8
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 9
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 10
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 11
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 12
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 13
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 14
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 15
imgview2d  -V on -L on -G on -H on -P off -m 0 -p 0 1 -b 1 1 0 -g 2.2 -d "" -c -1 -t off -i on -X on imgview2 16
imgviewtime -V on -L on -G on -H on -P off -r 24 -u fr -g 0 -f on -e on -b on -d imgview2
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 1
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 2
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 3
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 4
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 5
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 6
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 7
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 8
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 9
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 10
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 11
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 12
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 13
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 14
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 15
imgviewhist -V on -L on -G on -H on -P off -c -1 -h 0 -i on imgview2 16
panepath -d Grooming -f -p panetab1 /obj/feather_guides/featherwidth1
panepath -d Grooming -f -p panetab11 /obj/feather_guides/featherwidth1
panepath -d Grooming -f -p panetab3 /obj/feather_guides/featherwidth1
panepath -d Grooming -f -p panetab5 /obj/feather_guides/featherwidth1
panepath -d Grooming -f -p panetab7 /obj/feather_guides/featherwidth1
panepath -d Grooming -f -p panetab8 /obj/
panepath -d Grooming -f -p panetab2 /obj/
desk set Grooming
viewupdate -u always
audiopanel -s p ''
audiopanel -s r off
audiopanel -s s 24
audiopanel -s f 24
audiopanel -t p stop
audiopanel -t l off
audiopanel -t r on
audiopanel -o m off
audiopanel -o t on
audiopanel -o u on
audiopanel -o l 1
audiopanel -o r 1
audiopanel -o d 0
audiopanel -r d 0.2
audiopanel -m 0
audiopanel -a ''
audiopanel -f 1
audiopanel -O 0
colorsettings -D -A 
compproject -r 1920 1080 -a 1 -d fp16 -p 0 1 -P full -f 0 -F 0 -l on
omparm "Point XForm" xform /obj/feather_guides/curve1 "invisible(1) snap_to_selection(1)"
omparm "Orient Handle" xform /obj/feather_guides/curve1 "invisible(1)"
omparm "HUD Translate" sidefx_hud_slider /obj/feather_guides/curve1 "hudid('/obj/feather_guides/curve1.HUD Translate') huddockee('') huddocker('') hudtitle('HUD Translate') hudx(36) hudy(784) hudwidth(380) hudheight(84) hudlocked(0) visible(1) hudtitlevisible(0) hudtoolbarvisible(0) huddocking('') hudcachevalue('[(0,0.0),(1,0.0),(2,0.0),(3,1.0),(4,1),]') hudbindingargs('') hudplacingmode(1) hudparmmin('-10.0,-10.0,-10.0') hudparmmax('10.0,10.0,10.0') hudparmdefault('0.0,0.0,0.0') hudparmminlock('0,0,0') hudparmmaxlock('0,0,0') hudparmlabel('Position (X),Position (Y),Position (Z)') huduseparmrange(0)"
omparm edit_handle xform /obj/feather_guides/guidegroom1 "invisible(1)"
texcache  -a off -r 2147483647 2147483647 -m 10000 -M 7981
shopvisible +I3D +VMantra +RIB
HouNC1033600baa06a1ff8ab0bf442759.takes HoudiniTakeFile 1.0
take name Main kids 0
   e
HouNC1033600ba506a1ff8ab06cd4f6d0.styles NSJb{}HouNC1033600bbd06a1ff8ab03504820d.contextoptions [
]
HouNC1033600ba806a1ff8ab024f702c4.cwd opcf /
takeset Main
HouNC1033600bba06a1ff8ab08919230fNON_COMMERCIAL_FILE!!! 