{
  "schema_version": 1,
  "houdies_recipe": true,
  "id": "braid-rwp7",
  "name": "Braid",
  "description": "Braid with thickness",
  "tags": [
    "curve",
    "braid"
  ],
  "category": "",
  "houdini_version": "21.0.596",
  "network_context": "Sop",
  "node_count": 26,
  "node_names": [
    "subdivide2",
    "sweep2",
    "copy10",
    "deltamush1",
    "rest2",
    "subdivide1",
    "blast4",
    "resample26",
    "sweep1",
    "copy9",
    "group1",
    "null1",
    "join3",
    "matchsize4",
    "transform15",
    "copy8",
    "detangle1",
    "ends1",
    "fuse3",
    "circle5",
    "transform17",
    "rest1",
    "SEGMENT",
    "matchsize3",
    "fuse4",
    "transform16"
  ],
  "created_at": "2026-08-25T01:39:48Z",
  "cluster_data": {
    "__dot1": {
      "type": "NetworkDot",
      "inputs": [
        {
          "from": "sweep1",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        1.69,
        3.38
      ],
      "color": [
        0.7,
        0.7,
        0.7
      ]
    },
    "subdivide2": {
      "type": "subdivide",
      "inputs": [
        {
          "from": "rest2",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        0,
        0
      ],
      "flags": {
        "display": true,
        "render": true
      }
    },
    "sweep2": {
      "type": "sweep::2.0",
      "inputs": [
        {
          "from": "null1",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        1.19,
        6.16
      ],
      "flags": {
        "displaycomment": true
      },
      "comment": "Referenced from sweep1",
      "user_data": {
        "referenced_from": "../sweep1"
      },
      "parms": {
        "curvegroup": {
          "expression": "chs(\"../sweep1/curvegroup\")"
        },
        "crosssectiongroup": {
          "expression": "chs(\"../sweep1/crosssectiongroup\")"
        },
        "surfaceshape": {
          "expression": "ch(\"../sweep1/surfaceshape\")"
        },
        "surfacetype": {
          "expression": "ch(\"../sweep1/surfacetype\")"
        },
        "scale": {
          "expression": "ch(\"../sweep1/scale\")"
        },
        "cols": {
          "expression": "ch(\"../sweep1/cols\")"
        },
        "radius": 0.01,
        "width": {
          "expression": "ch(\"../sweep1/width\")"
        },
        "reversecrosssections": {
          "expression": "ch(\"../sweep1/reversecrosssections\")"
        },
        "stretcharoundturns": {
          "expression": "ch(\"../sweep1/stretcharoundturns\")"
        },
        "maxstretcharoundturns": {
          "expression": "ch(\"../sweep1/maxstretcharoundturns\")"
        },
        "endcaptype": {
          "expression": "ch(\"../sweep1/endcaptype\")"
        },
        "capdivs": {
          "expression": "ch(\"../sweep1/capdivs\")"
        },
        "triangularpoles": {
          "expression": "ch(\"../sweep1/triangularpoles\")"
        },
        "capscale": {
          "expression": "ch(\"../sweep1/capscale\")"
        },
        "caproundness": {
          "expression": "ch(\"../sweep1/caproundness\")"
        },
        "addendcapsgroup": {
          "expression": "ch(\"../sweep1/addendcapsgroup\")"
        },
        "endcapsgroup": {
          "expression": "chs(\"../sweep1/endcapsgroup\")"
        },
        "applyscale": {
          "expression": "ch(\"../sweep1/applyscale\")"
        },
        "scaleramp": {
          "value": {
            "expression": "ch(\"../sweep1/scaleramp\")"
          },
          "points": [
            {
              "pos": {
                "expression": "ch(\"../sweep1/scaleramp1pos\")"
              },
              "value": {
                "expression": "ch(\"../sweep1/scaleramp1value\")"
              },
              "interp": {
                "expression": "ch(\"../sweep1/scaleramp1interp\")"
              }
            },
            {
              "pos": {
                "expression": "ch(\"../sweep1/scaleramp2pos\")"
              },
              "value": {
                "expression": "ch(\"../sweep1/scaleramp2value\")"
              },
              "interp": {
                "expression": "ch(\"../sweep1/scaleramp2interp\")"
              }
            }
          ]
        },
        "rOrd": {
          "expression": "ch(\"../sweep1/rOrd\")"
        },
        "applyroll": {
          "expression": "ch(\"../sweep1/applyroll\")"
        },
        "roll": {
          "expression": "ch(\"../sweep1/roll\")"
        },
        "fulltwists": {
          "expression": "ch(\"../sweep1/fulltwists\")"
        },
        "incroll": {
          "expression": "ch(\"../sweep1/incroll\")"
        },
        "rollper": {
          "expression": "ch(\"../sweep1/rollper\")"
        },
        "rollattrib": {
          "expression": "chs(\"../sweep1/rollattrib\")"
        },
        "applyyaw": {
          "expression": "ch(\"../sweep1/applyyaw\")"
        },
        "yaw": {
          "expression": "ch(\"../sweep1/yaw\")"
        },
        "incyaw": {
          "expression": "ch(\"../sweep1/incyaw\")"
        },
        "yawper": {
          "expression": "ch(\"../sweep1/yawper\")"
        },
        "yawattrib": {
          "expression": "chs(\"../sweep1/yawattrib\")"
        },
        "applypitch": {
          "expression": "ch(\"../sweep1/applypitch\")"
        },
        "pitch": {
          "expression": "ch(\"../sweep1/pitch\")"
        },
        "incpitch": {
          "expression": "ch(\"../sweep1/incpitch\")"
        },
        "pitchper": {
          "expression": "ch(\"../sweep1/pitchper\")"
        },
        "pitchattrib": {
          "expression": "chs(\"../sweep1/pitchattrib\")"
        },
        "copyorder": {
          "expression": "ch(\"../sweep1/copyorder\")"
        },
        "crosssectionattrib": {
          "expression": "chs(\"../sweep1/crosssectionattrib\")"
        },
        "primtype": {
          "expression": "ch(\"../sweep1/primtype\")"
        },
        "unrollclosedrowcol": {
          "expression": "ch(\"../sweep1/unrollclosedrowcol\")"
        },
        "swaprowcol": {
          "expression": "ch(\"../sweep1/swaprowcol\")"
        },
        "closeifnocurveinput": {
          "expression": "ch(\"../sweep1/closeifnocurveinput\")"
        },
        "upvectortype": {
          "expression": "ch(\"../sweep1/upvectortype\")"
        },
        "upvectoratstart": {
          "expression": "ch(\"../sweep1/upvectoratstart\")"
        },
        "useendupvector": {
          "expression": "ch(\"../sweep1/useendupvector\")"
        },
        "upvectorattrib": {
          "expression": "chs(\"../sweep1/upvectorattrib\")"
        },
        "endupvectorattrib": {
          "expression": "chs(\"../sweep1/endupvectorattrib\")"
        },
        "upvector": [
          {
            "expression": "ch(\"../sweep1/upvectorx\")"
          },
          {
            "expression": "ch(\"../sweep1/upvectory\")"
          },
          {
            "expression": "ch(\"../sweep1/upvectorz\")"
          }
        ],
        "endupvector": [
          {
            "expression": "ch(\"../sweep1/endupvectorx\")"
          },
          {
            "expression": "ch(\"../sweep1/endupvectory\")"
          },
          {
            "expression": "ch(\"../sweep1/endupvectorz\")"
          }
        ],
        "tangenttype": {
          "expression": "ch(\"../sweep1/tangenttype\")"
        },
        "continuousclosed": {
          "expression": "ch(\"../sweep1/continuousclosed\")"
        },
        "extrapolateendtangents": {
          "expression": "ch(\"../sweep1/extrapolateendtangents\")"
        },
        "transformbyattribs": {
          "expression": "ch(\"../sweep1/transformbyattribs\")"
        },
        "computeuvs": {
          "expression": "ch(\"../sweep1/computeuvs\")"
        },
        "overrideexistinguvs": {
          "expression": "ch(\"../sweep1/overrideexistinguvs\")"
        },
        "lengthweighteduvs": {
          "expression": "ch(\"../sweep1/lengthweighteduvs\")"
        },
        "normalizeu": {
          "expression": "ch(\"../sweep1/normalizeu\")"
        },
        "normalizev": {
          "expression": "ch(\"../sweep1/normalizev\")"
        },
        "flipu": {
          "expression": "ch(\"../sweep1/flipu\")"
        },
        "uvscale": [
          {
            "expression": "ch(\"../sweep1/uvscale1\")"
          },
          {
            "expression": "ch(\"../sweep1/uvscale2\")"
          }
        ],
        "usemeshedgelengths": {
          "expression": "ch(\"../sweep1/usemeshedgelengths\")"
        },
        "propscalepercurve": {
          "expression": "ch(\"../sweep1/propscalepercurve\")"
        },
        "wrapu": {
          "expression": "ch(\"../sweep1/wrapu\")"
        },
        "wrapv": {
          "expression": "ch(\"../sweep1/wrapv\")"
        },
        "attribsfrombackbone": {
          "expression": "chs(\"../sweep1/attribsfrombackbone\")"
        },
        "attribsfromcrosssection": {
          "expression": "chs(\"../sweep1/attribsfromcrosssection\")"
        },
        "addptrow": {
          "expression": "ch(\"../sweep1/addptrow\")"
        },
        "ptrowattrib": {
          "expression": "chs(\"../sweep1/ptrowattrib\")"
        },
        "addptcol": {
          "expression": "ch(\"../sweep1/addptcol\")"
        },
        "ptcolattrib": {
          "expression": "chs(\"../sweep1/ptcolattrib\")"
        },
        "addprimrow": {
          "expression": "ch(\"../sweep1/addprimrow\")"
        },
        "primrowattrib": {
          "expression": "chs(\"../sweep1/primrowattrib\")"
        },
        "addprimcol": {
          "expression": "ch(\"../sweep1/addprimcol\")"
        },
        "primcolattrib": {
          "expression": "chs(\"../sweep1/primcolattrib\")"
        },
        "addcrosssectionnum": {
          "expression": "ch(\"../sweep1/addcrosssectionnum\")"
        },
        "crosssectionnumattrib": {
          "expression": "chs(\"../sweep1/crosssectionnumattrib\")"
        },
        "addcurvenum": {
          "expression": "ch(\"../sweep1/addcurvenum\")"
        },
        "curvenumattrib": {
          "expression": "chs(\"../sweep1/curvenumattrib\")"
        }
      }
    },
    "copy10": {
      "type": "copyxform",
      "inputs": [
        {
          "from": "copy8",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        19.33
      ],
      "parms": {
        "t": [
          0.0,
          0.0,
          {
            "expression": "sin(60)*.1*2"
          }
        ]
      }
    },
    "deltamush1": {
      "type": "deltamush::2.0",
      "inputs": [
        {
          "from": "detangle1",
          "from_index": 0,
          "to_index": 0
        },
        {
          "from": "__dot1",
          "from_index": 0,
          "to_index": 1
        }
      ],
      "position": [
        0,
        2.26
      ],
      "user_data": {
        "wirestyle": "rounded"
      },
      "parms": {
        "iterations": 10,
        "stepsize": 0.1
      }
    },
    "rest2": {
      "type": "rest",
      "inputs": [
        {
          "from": "deltamush1",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        0,
        1.13
      ]
    },
    "subdivide1": {
      "type": "subdivide",
      "inputs": [
        {
          "from": "join3",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        8.36
      ],
      "parms": {
        "iterations": 3
      }
    },
    "blast4": {
      "type": "blast",
      "inputs": [
        {
          "from": "group1",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        15.94
      ],
      "parms": {
        "group": "segment",
        "grouptype": "points",
        "negate": true
      }
    },
    "resample26": {
      "type": "resample",
      "inputs": [
        {
          "from": "ends1",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        23.85
      ],
      "parms": {
        "edge": true,
        "dolength": false,
        "length": 0.3,
        "dosegs": true,
        "segs": 3
      }
    },
    "sweep1": {
      "type": "sweep::2.0",
      "inputs": [
        {
          "from": "null1",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -1.13,
        6.16
      ],
      "parms": {
        "surfaceshape": "tube",
        "cols": 16,
        "radius": 0.03
      }
    },
    "copy9": {
      "type": "copyxform",
      "inputs": [
        {
          "from": "transform17",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        11.74
      ],
      "parms": {
        "ncy": 5,
        "t": [
          0.0,
          0.0,
          {
            "expression": "sin(60)*.1*2/3*2 * ch(\"../transform17/sz\")"
          }
        ]
      }
    },
    "group1": {
      "type": "groupcreate",
      "inputs": [
        {
          "from": "fuse3",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        17.07
      ],
      "flags": {
        "highlight": true
      },
      "parms": {
        "groupname": "segment",
        "grouptype": "point",
        "groupbase": false,
        "groupbounding": true,
        "size": [
          0.3,
          0.3,
          0.13956186175346375
        ],
        "t": [
          0.0,
          0.0,
          0.0863308310508728
        ]
      }
    },
    "null1": {
      "type": "null",
      "inputs": [
        {
          "from": "subdivide1",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        7.27
      ]
    },
    "join3": {
      "type": "join",
      "inputs": [
        {
          "from": "fuse4",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        9.49
      ],
      "parms": {
        "onlyconnected": true
      }
    },
    "matchsize4": {
      "type": "matchsize",
      "inputs": [
        {
          "from": "blast4",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        14.94
      ]
    },
    "transform15": {
      "type": "xform",
      "inputs": [
        {
          "from": "resample26",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        22.72
      ],
      "color": [
        0.84,
        0.84,
        0.84
      ],
      "flags": {
        "colordefault": false
      },
      "parms": {
        "group": "2 5",
        "grouptype": "points",
        "t": [
          0.0,
          -0.025,
          0.0
        ]
      }
    },
    "copy8": {
      "type": "copyxform",
      "inputs": [
        {
          "from": "transform16",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        20.46
      ],
      "parms": {
        "ncy": 3,
        "t": [
          0.0,
          0.0,
          {
            "expression": "sin(60)*.1*2/3"
          }
        ]
      }
    },
    "detangle1": {
      "type": "detangle",
      "inputs": [
        {
          "from": "rest1",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -1.13,
        3.69
      ],
      "parms": {
        "prevpos": "rest",
        "thickness": 0.001
      }
    },
    "ends1": {
      "type": "ends",
      "inputs": [
        {
          "from": "matchsize3",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        24.98
      ],
      "parms": {
        "closeu": "open"
      }
    },
    "fuse3": {
      "type": "fuse::2.0",
      "inputs": [
        {
          "from": "copy10",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        18.2
      ]
    },
    "circle5": {
      "type": "circle",
      "position": [
        -0.58,
        27.24
      ],
      "parms": {
        "type": "poly",
        "orient": "zx",
        "r": [
          0.0,
          120.0,
          0.0
        ],
        "scale": 0.1,
        "divs": 3
      }
    },
    "transform17": {
      "type": "xform",
      "inputs": [
        {
          "from": "SEGMENT",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        12.74
      ],
      "color": [
        0.98,
        0.78,
        0.26
      ],
      "flags": {
        "colordefault": false
      }
    },
    "rest1": {
      "type": "rest",
      "inputs": [
        {
          "from": "sweep1",
          "from_index": 0,
          "to_index": 0
        },
        {
          "from": "sweep2",
          "from_index": 0,
          "to_index": 1
        }
      ],
      "position": [
        -1.13,
        4.82
      ]
    },
    "SEGMENT": {
      "type": "null",
      "inputs": [
        {
          "from": "matchsize4",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        13.84
      ]
    },
    "matchsize3": {
      "type": "matchsize",
      "inputs": [
        {
          "from": "circle5",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        26.11
      ]
    },
    "fuse4": {
      "type": "fuse::2.0",
      "inputs": [
        {
          "from": "copy9",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        10.62
      ]
    },
    "transform16": {
      "type": "xform",
      "inputs": [
        {
          "from": "transform15",
          "from_index": 0,
          "to_index": 0
        }
      ],
      "position": [
        -0.58,
        21.59
      ],
      "comment": "Referenced from transform15",
      "user_data": {
        "referenced_from": "../transform15"
      },
      "parms": {
        "group": "1 4",
        "grouptype": {
          "expression": "ch(\"../transform15/grouptype\")"
        },
        "xOrd": {
          "expression": "ch(\"../transform15/xOrd\")"
        },
        "rOrd": {
          "expression": "ch(\"../transform15/rOrd\")"
        },
        "t": [
          {
            "expression": "ch(\"../transform15/tx\")"
          },
          {
            "expression": "-ch(\"../transform15/ty\")"
          },
          {
            "expression": "ch(\"../transform15/tz\")"
          }
        ],
        "r": [
          {
            "expression": "ch(\"../transform15/rx\")"
          },
          {
            "expression": "ch(\"../transform15/ry\")"
          },
          {
            "expression": "ch(\"../transform15/rz\")"
          }
        ],
        "s": [
          {
            "expression": "ch(\"../transform15/sx\")"
          },
          {
            "expression": "ch(\"../transform15/sy\")"
          },
          {
            "expression": "ch(\"../transform15/sz\")"
          }
        ],
        "shear": [
          {
            "expression": "ch(\"../transform15/shear1\")"
          },
          {
            "expression": "ch(\"../transform15/shear2\")"
          },
          {
            "expression": "ch(\"../transform15/shear3\")"
          }
        ],
        "scale": {
          "expression": "ch(\"../transform15/scale\")"
        },
        "p": [
          {
            "expression": "ch(\"../transform15/px\")"
          },
          {
            "expression": "ch(\"../transform15/py\")"
          },
          {
            "expression": "ch(\"../transform15/pz\")"
          }
        ],
        "pr": [
          {
            "expression": "ch(\"../transform15/prx\")"
          },
          {
            "expression": "ch(\"../transform15/pry\")"
          },
          {
            "expression": "ch(\"../transform15/prz\")"
          }
        ],
        "prexform_xOrd": {
          "expression": "ch(\"../transform15/prexform_xOrd\")"
        },
        "prexform_rOrd": {
          "expression": "ch(\"../transform15/prexform_rOrd\")"
        },
        "prexform_t": [
          {
            "expression": "ch(\"../transform15/prexform_tx\")"
          },
          {
            "expression": "ch(\"../transform15/prexform_ty\")"
          },
          {
            "expression": "ch(\"../transform15/prexform_tz\")"
          }
        ],
        "prexform_r": [
          {
            "expression": "ch(\"../transform15/prexform_rx\")"
          },
          {
            "expression": "ch(\"../transform15/prexform_ry\")"
          },
          {
            "expression": "ch(\"../transform15/prexform_rz\")"
          }
        ],
        "prexform_s": [
          {
            "expression": "ch(\"../transform15/prexform_sx\")"
          },
          {
            "expression": "ch(\"../transform15/prexform_sy\")"
          },
          {
            "expression": "ch(\"../transform15/prexform_sz\")"
          }
        ],
        "prexform_shear": [
          {
            "expression": "ch(\"../transform15/prexform_shear1\")"
          },
          {
            "expression": "ch(\"../transform15/prexform_shear2\")"
          },
          {
            "expression": "ch(\"../transform15/prexform_shear3\")"
          }
        ],
        "movecentroid": {
          "expression": "ch(\"../transform15/movecentroid\")"
        },
        "movepivot": {
          "expression": "ch(\"../transform15/movepivot\")"
        },
        "attribs": {
          "expression": "chs(\"../transform15/attribs\")"
        },
        "updatenmls": {
          "expression": "ch(\"../transform15/updatenmls\")"
        },
        "updateaffectednmls": {
          "expression": "ch(\"../transform15/updateaffectednmls\")"
        },
        "vlength": {
          "expression": "ch(\"../transform15/vlength\")"
        },
        "invertxform": {
          "expression": "ch(\"../transform15/invertxform\")"
        },
        "addattrib": {
          "expression": "ch(\"../transform15/addattrib\")"
        },
        "outputattrib": {
          "expression": "chs(\"../transform15/outputattrib\")"
        },
        "outputmerge": {
          "expression": "ch(\"../transform15/outputmerge\")"
        }
      }
    }
  }
}