Skip to content

Instantly share code, notes, and snippets.

@portnov
Created July 28, 2025 12:15
Show Gist options
  • Select an option

  • Save portnov/c1f4f6b73e6c5fbddb6cd7c4d5f996a3 to your computer and use it in GitHub Desktop.

Select an option

Save portnov/c1f4f6b73e6c5fbddb6cd7c4d5f996a3 to your computer and use it in GitHub Desktop.
Sverchok.v1.3.0 | Blender.4.4.0 | NodeTree | 2025.07.28 | 17:15 | license: CC BY-SA
{
"export_version": "1.0",
"main_tree": {
"nodes": {
"A Number": {
"attributes": {
"location": [
-1376.2073974609375,
93.4521484375
],
"label": "Radius",
"parent": {
"type": "NODE",
"value": "Frame"
}
},
"properties": {
"float_": 2.0
},
"inputs": {
"Float": {
"bl_idname": "SvStringsSocket",
"name": "Float",
"properties": {
"prop_name": "float_"
}
}
},
"outputs": {
"Float_001": {
"bl_idname": "SvStringsSocket",
"name": "Float",
"properties": {
"custom_draw": "mode_custom_draw"
}
}
},
"bl_idname": "SvNumberNode"
},
"Circle (Curve).001": {
"attributes": {
"location": [
-902.6948852539062,
374.3633728027344
],
"color": [
0.40799999237060547,
0.6159999966621399,
0.41600000858306885
],
"use_custom_color": true,
"parent": {
"type": "NODE",
"value": "Frame.002"
}
},
"properties": {
"angle_units": "DEG",
"t_max": 180.0,
"last_angle_units": "DEG",
"curve_mode": "NURBS"
},
"inputs": {
"Center": {
"bl_idname": "SvMatrixSocket",
"name": "Center"
},
"Radius": {
"bl_idname": "SvStringsSocket",
"name": "Radius",
"properties": {
"prop_name": "radius"
}
},
"TMin": {
"bl_idname": "SvStringsSocket",
"name": "TMin",
"properties": {
"prop_name": "t_min"
}
},
"TMax": {
"bl_idname": "SvStringsSocket",
"name": "TMax",
"properties": {
"prop_name": "t_max"
}
},
"NPoints": {
"bl_idname": "SvStringsSocket",
"name": "NPoints",
"properties": {
"prop_name": "n_points"
}
}
},
"outputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
}
},
"bl_idname": "SvCircleCurveMk2Node"
},
"NGon": {
"attributes": {
"location": [
-1155.3251953125,
435.6246032714844
],
"color": [
0.40799999237060547,
0.6159999966621399,
0.41600000858306885
],
"use_custom_color": true,
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"inputs": {
"Radius": {
"bl_idname": "SvStringsSocket",
"name": "Radius",
"properties": {
"prop_name": "rad_"
}
},
"N Sides": {
"bl_idname": "SvStringsSocket",
"name": "N Sides",
"properties": {
"prop_name": "sides_"
}
},
"Divisions": {
"bl_idname": "SvStringsSocket",
"name": "Divisions",
"properties": {
"prop_name": "divisions"
}
},
"RandomR": {
"bl_idname": "SvStringsSocket",
"name": "RandomR",
"properties": {
"prop_name": "rand_r_"
}
},
"RandomPhi": {
"bl_idname": "SvStringsSocket",
"name": "RandomPhi",
"properties": {
"prop_name": "rand_phi_"
}
},
"RandomSeed": {
"bl_idname": "SvStringsSocket",
"name": "RandomSeed",
"properties": {
"prop_name": "rand_seed_"
}
},
"Shift": {
"bl_idname": "SvStringsSocket",
"name": "Shift",
"properties": {
"prop_name": "shift_"
}
}
},
"outputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
},
"Edges": {
"bl_idname": "SvStringsSocket",
"name": "Edges"
},
"Polygons": {
"bl_idname": "SvStringsSocket",
"name": "Polygons"
}
},
"bl_idname": "SvNGonNode"
},
"A Number.001": {
"attributes": {
"location": [
-1383.939697265625,
262.5841979980469
],
"label": "N Sides",
"parent": {
"type": "NODE",
"value": "Frame"
}
},
"properties": {
"int_": 5,
"selected_mode": "int"
},
"inputs": {
"Float": {
"bl_idname": "SvStringsSocket",
"name": "Int",
"properties": {
"prop_name": "int_"
}
}
},
"outputs": {
"Int": {
"bl_idname": "SvStringsSocket",
"name": "Int",
"properties": {
"custom_draw": "mode_custom_draw"
}
}
},
"bl_idname": "SvNumberNode"
},
"Matrix In": {
"attributes": {
"location": [
-528.593994140625,
983.5929565429688
],
"parent": {
"type": "NODE",
"value": "Frame.003"
}
},
"inputs": {
"Location": {
"bl_idname": "SvVerticesSocket",
"name": "Location",
"properties": {
"prop_name": "location_"
}
},
"Scale": {
"bl_idname": "SvVerticesSocket",
"name": "Scale",
"properties": {
"prop_name": "scale"
}
},
"Quaternion": {
"bl_idname": "SvQuaternionSocket",
"name": "Quaternion",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "quaternion"
}
},
"Angle X": {
"bl_idname": "SvStringsSocket",
"name": "Angle X",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "angle_x"
}
},
"Angle Y": {
"bl_idname": "SvStringsSocket",
"name": "Angle Y",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "angle_y"
}
},
"Angle Z": {
"bl_idname": "SvStringsSocket",
"name": "Angle Z",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "angle_z"
}
},
"Axis": {
"bl_idname": "SvVerticesSocket",
"name": "Axis",
"properties": {
"prop_name": "axis"
}
},
"Angle": {
"bl_idname": "SvStringsSocket",
"name": "Angle",
"properties": {
"prop_name": "angle"
}
}
},
"outputs": {
"Matrices": {
"bl_idname": "SvMatrixSocket",
"name": "Matrices"
}
},
"bl_idname": "SvMatrixInNodeMK4"
},
"Matrix In.001": {
"attributes": {
"location": [
253.54107666015625,
1048.0040283203125
],
"parent": {
"type": "NODE",
"value": "Frame.003"
}
},
"inputs": {
"Location": {
"bl_idname": "SvVerticesSocket",
"name": "Location",
"properties": {
"prop_name": "location_"
}
},
"Scale": {
"bl_idname": "SvVerticesSocket",
"name": "Scale",
"properties": {
"prop_name": "scale"
}
},
"Quaternion": {
"bl_idname": "SvQuaternionSocket",
"name": "Quaternion",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "quaternion"
}
},
"Angle X": {
"bl_idname": "SvStringsSocket",
"name": "Angle X",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "angle_x"
}
},
"Angle Y": {
"bl_idname": "SvStringsSocket",
"name": "Angle Y",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "angle_y"
}
},
"Angle Z": {
"bl_idname": "SvStringsSocket",
"name": "Angle Z",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "angle_z"
}
},
"Axis": {
"bl_idname": "SvVerticesSocket",
"name": "Axis",
"properties": {
"prop_name": "axis"
}
},
"Angle": {
"bl_idname": "SvStringsSocket",
"name": "Angle",
"properties": {
"prop_name": "angle"
}
}
},
"outputs": {
"Matrices": {
"bl_idname": "SvMatrixSocket",
"name": "Matrices"
}
},
"bl_idname": "SvMatrixInNodeMK4"
},
"Matrix Math": {
"attributes": {
"location": [
469.47119140625,
869.3312377929688
],
"label": "Matrix Multiply",
"parent": {
"type": "NODE",
"value": "Frame.003"
}
},
"properties": {
"prePost": "POST"
},
"inputs": {
"A": {
"bl_idname": "SvMatrixSocket",
"name": "A"
},
"B": {
"bl_idname": "SvMatrixSocket",
"name": "B"
},
"C": {
"bl_idname": "SvMatrixSocket",
"name": "C"
},
"D": {
"bl_idname": "SvMatrixSocket",
"name": "D"
}
},
"outputs": {
"C": {
"bl_idname": "SvMatrixSocket",
"name": "C"
}
},
"bl_idname": "SvMatrixMathNode"
},
"Apply Field to Curve": {
"attributes": {
"location": [
680.0599365234375,
737.92431640625
],
"parent": {
"type": "NODE",
"value": "Frame.003"
}
},
"properties": {
"use_control_points": true
},
"inputs": {
"Field": {
"bl_idname": "SvVectorFieldSocket",
"name": "Field"
},
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"Coefficient": {
"bl_idname": "SvStringsSocket",
"name": "Coefficient",
"properties": {
"prop_name": "coefficient"
}
}
},
"outputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
}
},
"bl_idname": "SvExApplyFieldToCurveNode"
},
"Curve Endpoints": {
"attributes": {
"location": [
-232.24197387695312,
531.268310546875
],
"parent": {
"type": "NODE",
"value": "Frame.003"
}
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
}
},
"outputs": {
"Start": {
"bl_idname": "SvVerticesSocket",
"name": "Start"
},
"End": {
"bl_idname": "SvVerticesSocket",
"name": "End"
}
},
"bl_idname": "SvExCurveEndpointsNode"
},
"Vector Math": {
"attributes": {
"location": [
-45.23211669921875,
600.9889526367188
],
"parent": {
"type": "NODE",
"value": "Frame.003"
}
},
"properties": {
"current_op": "NEG",
"socket_info": "v v"
},
"inputs": {
"A": {
"bl_idname": "SvVerticesSocket",
"name": "A",
"properties": {
"prop_name": "v3_input_0"
}
}
},
"outputs": {
"Out_001": {
"bl_idname": "SvVerticesSocket",
"name": "Out"
}
},
"bl_idname": "SvVectorMathNodeMK3"
},
"Number Range": {
"attributes": {
"location": [
-131.81692504882812,
934.541259765625
],
"parent": {
"type": "NODE",
"value": "Frame.003"
}
},
"properties": {
"range_mode": "RANGE_STEP",
"current_mode": "RANGE_STEP",
"stop_float": 360.0,
"count_": 5,
"step_float": 72.0
},
"inputs": {
"Start": {
"bl_idname": "SvStringsSocket",
"name": "Start",
"properties": {
"prop_name": "start_float"
}
},
"Step": {
"bl_idname": "SvStringsSocket",
"name": "Step",
"properties": {
"prop_name": "step_float",
"label": "step"
}
},
"Stop": {
"bl_idname": "SvStringsSocket",
"name": "Stop",
"properties": {
"prop_name": "count_",
"label": "count"
}
}
},
"outputs": {
"Range": {
"bl_idname": "SvStringsSocket",
"name": "Range"
}
},
"bl_idname": "SvGenNumberRange"
},
"Scalar Math": {
"attributes": {
"location": [
-345.90350341796875,
911.4520263671875
],
"parent": {
"type": "NODE",
"value": "Frame.003"
}
},
"properties": {
"current_op": "DIV",
"x_": 360.0
},
"inputs": {
"x": {
"bl_idname": "SvStringsSocket",
"name": "x",
"properties": {
"prop_name": "x_"
}
},
"y": {
"bl_idname": "SvStringsSocket",
"name": "y",
"properties": {
"prop_name": "y_"
}
}
},
"outputs": {
"Out": {
"bl_idname": "SvStringsSocket",
"name": "Out"
}
},
"bl_idname": "SvScalarMathNodeMK4"
},
"Scalar Math.001": {
"attributes": {
"location": [
57.510498046875,
997.6951293945312
],
"parent": {
"type": "NODE",
"value": "Frame.003"
}
},
"properties": {
"current_op": "ADD",
"y_": 28.35999870300293
},
"inputs": {
"x": {
"bl_idname": "SvStringsSocket",
"name": "x",
"properties": {
"prop_name": "x_"
}
},
"y": {
"bl_idname": "SvStringsSocket",
"name": "y",
"properties": {
"prop_name": "y_"
}
}
},
"outputs": {
"Out": {
"bl_idname": "SvStringsSocket",
"name": "Out"
}
},
"bl_idname": "SvScalarMathNodeMK4"
},
"List Shift": {
"attributes": {
"location": [
866.250732421875,
865.385009765625
],
"parent": {
"type": "NODE",
"value": "Frame.003"
}
},
"properties": {
"shift_c": 1
},
"inputs": {
"data": {
"bl_idname": "SvStringsSocket",
"name": "data"
},
"shift": {
"bl_idname": "SvStringsSocket",
"name": "shift",
"properties": {
"prop_name": "shift_c"
}
}
},
"outputs": {
"data_001": {
"bl_idname": "SvCurveSocket",
"name": "data"
}
},
"bl_idname": "ShiftNodeMK2"
},
"Intersect NURBS Curves": {
"attributes": {
"location": [
1181.0479736328125,
595.589111328125
],
"width": 197.230712890625,
"parent": {
"type": "NODE",
"value": "Frame.005"
}
},
"properties": {
"implementation": "SCIPY",
"check_intersection": true
},
"inputs": {
"Curve1": {
"bl_idname": "SvCurveSocket",
"name": "Curve1"
},
"Curve2": {
"bl_idname": "SvCurveSocket",
"name": "Curve2"
}
},
"outputs": {
"Intersections": {
"bl_idname": "SvVerticesSocket",
"name": "Intersections",
"properties": {
"use_unwrap": true
}
},
"T1": {
"bl_idname": "SvStringsSocket",
"name": "T1",
"properties": {
"use_flatten": true
}
},
"T2": {
"bl_idname": "SvStringsSocket",
"name": "T2",
"properties": {
"use_flatten": true
}
}
},
"bl_idname": "SvIntersectNurbsCurvesNode"
},
"Curve Segment": {
"attributes": {
"location": [
1661.021484375,
793.4485473632812
],
"parent": {
"type": "NODE",
"value": "Frame.005"
}
},
"properties": {
"t_min": 0.0
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"TMin": {
"bl_idname": "SvStringsSocket",
"name": "TMin",
"properties": {
"prop_name": "t_min"
}
},
"TMax": {
"bl_idname": "SvStringsSocket",
"name": "TMax",
"properties": {
"prop_name": "t_max"
}
}
},
"outputs": {
"Segment": {
"bl_idname": "SvCurveSocket",
"name": "Segment"
}
},
"bl_idname": "SvExCurveSegmentNode"
},
"Curve Segment.001": {
"attributes": {
"location": [
1712.80859375,
584.3709106445312
],
"parent": {
"type": "NODE",
"value": "Frame.005"
}
},
"properties": {
"t_min": 0.0
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"TMin": {
"bl_idname": "SvStringsSocket",
"name": "TMin",
"properties": {
"prop_name": "t_min"
}
},
"TMax": {
"bl_idname": "SvStringsSocket",
"name": "TMax",
"properties": {
"prop_name": "t_max"
}
}
},
"outputs": {
"Segment": {
"bl_idname": "SvCurveSocket",
"name": "Segment"
}
},
"bl_idname": "SvExCurveSegmentNode"
},
"Number Range.001": {
"attributes": {
"location": [
749.343017578125,
18.151840209960938
],
"parent": {
"type": "NODE",
"value": "Frame.004"
}
},
"properties": {
"range_mode": "RANGE_STEP",
"current_mode": "RANGE_STEP",
"stop_float": 6.2831854820251465,
"step_float": 1.2566370964050293
},
"inputs": {
"Start": {
"bl_idname": "SvStringsSocket",
"name": "Start",
"properties": {
"prop_name": "start_float"
}
},
"Step": {
"bl_idname": "SvStringsSocket",
"name": "Step",
"properties": {
"prop_name": "step_float",
"label": "step"
}
},
"Stop": {
"bl_idname": "SvStringsSocket",
"name": "Stop",
"properties": {
"prop_name": "count_",
"label": "count"
}
}
},
"outputs": {
"Range": {
"bl_idname": "SvStringsSocket",
"name": "Range"
}
},
"bl_idname": "SvGenNumberRange"
},
"List Shift.001": {
"attributes": {
"location": [
964.3834838867188,
-21.602447509765625
],
"parent": {
"type": "NODE",
"value": "Frame.004"
}
},
"properties": {
"shift_c": -1,
"level": 1
},
"inputs": {
"data": {
"bl_idname": "SvStringsSocket",
"name": "data"
},
"shift": {
"bl_idname": "SvStringsSocket",
"name": "shift",
"properties": {
"prop_name": "shift_c"
}
}
},
"outputs": {
"data": {
"bl_idname": "SvStringsSocket",
"name": "data"
}
},
"bl_idname": "ShiftNodeMK2"
},
"Scalar Math.002": {
"attributes": {
"location": [
335.019287109375,
19.750198364257812
],
"parent": {
"type": "NODE",
"value": "Frame.004"
}
},
"properties": {
"current_op": "ADD",
"input_mode_two": "Int",
"y_": 2.0,
"input_mode_one": "Int"
},
"inputs": {
"x": {
"bl_idname": "SvStringsSocket",
"name": "x",
"properties": {
"prop_name": "xi_"
}
},
"y": {
"bl_idname": "SvStringsSocket",
"name": "y",
"properties": {
"prop_name": "yi_"
}
}
},
"outputs": {
"Out": {
"bl_idname": "SvStringsSocket",
"name": "Out"
}
},
"bl_idname": "SvScalarMathNodeMK4"
},
"Reroute": {
"attributes": {
"location": [
82.25665283203125,
97.49254608154297
],
"width": 10.0
},
"bl_idname": "NodeReroute"
},
"A Number.002": {
"attributes": {
"location": [
-1393.584228515625,
531.2220458984375
],
"label": "Closing Angle",
"parent": {
"type": "NODE",
"value": "Frame"
}
},
"properties": {
"float_": 31.25
},
"inputs": {
"Float": {
"bl_idname": "SvStringsSocket",
"name": "Float",
"properties": {
"prop_name": "float_"
}
}
},
"outputs": {
"Float_001": {
"bl_idname": "SvStringsSocket",
"name": "Float",
"properties": {
"custom_draw": "mode_custom_draw"
}
}
},
"bl_idname": "SvNumberNode"
},
"List Slice": {
"attributes": {
"location": [
1518.59375,
5.3991851806640625
],
"parent": {
"type": "NODE",
"value": "Frame.004"
}
},
"properties": {
"level": 0,
"stop": 4
},
"inputs": {
"Data": {
"bl_idname": "SvStringsSocket",
"name": "Data"
},
"Start": {
"bl_idname": "SvStringsSocket",
"name": "Start",
"properties": {
"prop_name": "start"
}
},
"Stop": {
"bl_idname": "SvStringsSocket",
"name": "Stop",
"properties": {
"prop_name": "stop"
}
}
},
"outputs": {
"Slice_001": {
"bl_idname": "SvCurveSocket",
"name": "Slice"
},
"Other_001": {
"bl_idname": "SvCurveSocket",
"name": "Other"
}
},
"bl_idname": "ListSliceNode"
},
"Circle (Curve).002": {
"attributes": {
"location": [
1255.28271484375,
-174.74481201171875
],
"color": [
0.40799999237060547,
0.6159999966621399,
0.41600000858306885
],
"use_custom_color": true,
"parent": {
"type": "NODE",
"value": "Frame.004"
}
},
"properties": {
"curve_mode": "NURBS",
"n_points": 5
},
"inputs": {
"Center": {
"bl_idname": "SvMatrixSocket",
"name": "Center"
},
"Radius": {
"bl_idname": "SvStringsSocket",
"name": "Radius",
"properties": {
"prop_name": "radius"
}
},
"TMin": {
"bl_idname": "SvStringsSocket",
"name": "TMin",
"properties": {
"prop_name": "t_min"
}
},
"TMax": {
"bl_idname": "SvStringsSocket",
"name": "TMax",
"properties": {
"prop_name": "t_max"
}
},
"NPoints": {
"bl_idname": "SvStringsSocket",
"name": "NPoints",
"properties": {
"prop_name": "n_points"
}
}
},
"outputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
}
},
"bl_idname": "SvCircleCurveMk2Node"
},
"List Shift.002": {
"attributes": {
"location": [
1827.955810546875,
98.36373901367188
],
"parent": {
"type": "NODE",
"value": "Frame.004"
}
},
"properties": {
"shift_c": 1
},
"inputs": {
"data": {
"bl_idname": "SvStringsSocket",
"name": "data"
},
"shift": {
"bl_idname": "SvStringsSocket",
"name": "shift",
"properties": {
"prop_name": "shift_c"
}
}
},
"outputs": {
"data_001": {
"bl_idname": "SvCurveSocket",
"name": "data"
}
},
"bl_idname": "ShiftNodeMK2"
},
"Flip Curve": {
"attributes": {
"location": [
2376.3828125,
188.382080078125
]
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
}
},
"outputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
}
},
"bl_idname": "SvExFlipCurveNode"
},
"Reroute.001": {
"attributes": {
"location": [
-447.5876159667969,
498.6766357421875
],
"width": 10.0,
"parent": {
"type": "NODE",
"value": "Frame.003"
}
},
"bl_idname": "NodeReroute"
},
"Curve to NURBS": {
"attributes": {
"location": [
-647.6256103515625,
425.04815673828125
],
"color": [
0.40799999237060547,
0.6159999966621399,
0.41600000858306885
],
"use_custom_color": true
},
"properties": {
"tolerance": 9.999999747378752e-05,
"resolution": 200
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"Degree": {
"bl_idname": "SvStringsSocket",
"name": "Degree",
"properties": {
"prop_name": "degree"
}
},
"Samples": {
"bl_idname": "SvStringsSocket",
"name": "Samples",
"properties": {
"prop_name": "samples"
}
},
"LengthResolution": {
"bl_idname": "SvStringsSocket",
"name": "LengthResolution",
"properties": {
"prop_name": "resolution"
}
},
"Parametrization": {
"bl_idname": "SvCurveSocket",
"name": "Parametrization",
"attributes": {
"hide": true
}
},
"Tolerance": {
"bl_idname": "SvStringsSocket",
"name": "Tolerance",
"properties": {
"prop_name": "tolerance"
}
}
},
"outputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
}
},
"bl_idname": "SvCurveToNurbsNode"
},
"Evaluate Curve": {
"attributes": {
"location": [
2751.994384765625,
361.90386962890625
],
"parent": {
"type": "NODE",
"value": "Frame.007"
}
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"T": {
"bl_idname": "SvStringsSocket",
"name": "T",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "t_value"
}
},
"Samples": {
"bl_idname": "SvStringsSocket",
"name": "Samples",
"properties": {
"prop_name": "sample_size"
}
}
},
"outputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
},
"Edges": {
"bl_idname": "SvStringsSocket",
"name": "Edges"
},
"Tangents": {
"bl_idname": "SvVerticesSocket",
"name": "Tangents"
}
},
"bl_idname": "SvExEvalCurveNode"
},
"Evaluate Curve.001": {
"attributes": {
"location": [
2764.741455078125,
146.10397338867188
],
"parent": {
"type": "NODE",
"value": "Frame.007"
}
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"T": {
"bl_idname": "SvStringsSocket",
"name": "T",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "t_value"
}
},
"Samples": {
"bl_idname": "SvStringsSocket",
"name": "Samples",
"properties": {
"prop_name": "sample_size"
}
}
},
"outputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
},
"Edges": {
"bl_idname": "SvStringsSocket",
"name": "Edges"
},
"Tangents": {
"bl_idname": "SvVerticesSocket",
"name": "Tangents"
}
},
"bl_idname": "SvExEvalCurveNode"
},
"Evaluate Curve.002": {
"attributes": {
"location": [
2767.92822265625,
-67.7603759765625
],
"parent": {
"type": "NODE",
"value": "Frame.007"
}
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"T": {
"bl_idname": "SvStringsSocket",
"name": "T",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "t_value"
}
},
"Samples": {
"bl_idname": "SvStringsSocket",
"name": "Samples",
"properties": {
"prop_name": "sample_size"
}
}
},
"outputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
},
"Edges": {
"bl_idname": "SvStringsSocket",
"name": "Edges"
},
"Tangents": {
"bl_idname": "SvVerticesSocket",
"name": "Tangents"
}
},
"bl_idname": "SvExEvalCurveNode"
},
"Mesh Join": {
"attributes": {
"location": [
3439.6181640625,
247.20217895507812
],
"parent": {
"type": "NODE",
"value": "Frame.007"
}
},
"inputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices",
"properties": {
"is_mandatory": true,
"default_mode": "NONE"
}
},
"Edges": {
"bl_idname": "SvStringsSocket",
"name": "Edges",
"properties": {
"nesting_level": 3
}
},
"Polygons": {
"bl_idname": "SvStringsSocket",
"name": "Polygons",
"properties": {
"nesting_level": 3
}
}
},
"outputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
},
"Edges": {
"bl_idname": "SvStringsSocket",
"name": "Edges"
},
"Polygons": {
"bl_idname": "SvStringsSocket",
"name": "Polygons"
}
},
"bl_idname": "SvMeshJoinNodeMk2"
},
"Merge by Distance": {
"attributes": {
"location": [
4032.168212890625,
278.85491943359375
],
"parent": {
"type": "NODE",
"value": "Frame.007"
}
},
"inputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
},
"PolyEdge": {
"bl_idname": "SvStringsSocket",
"name": "PolyEdge"
},
"FaceData": {
"bl_idname": "SvStringsSocket",
"name": "FaceData"
},
"Mask": {
"bl_idname": "SvStringsSocket",
"name": "Mask"
},
"Distance": {
"bl_idname": "SvStringsSocket",
"name": "Distance",
"properties": {
"prop_name": "distance"
}
}
},
"outputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
},
"Edges": {
"bl_idname": "SvStringsSocket",
"name": "Edges"
},
"Polygons": {
"bl_idname": "SvStringsSocket",
"name": "Polygons"
},
"FaceData": {
"bl_idname": "SvStringsSocket",
"name": "FaceData"
},
"Doubles": {
"bl_idname": "SvVerticesSocket",
"name": "Doubles"
},
"Mask": {
"bl_idname": "SvStringsSocket",
"name": "Mask"
}
},
"bl_idname": "SvMergeByDistanceNode"
},
"List Zip": {
"attributes": {
"location": [
3023.50830078125,
335.24652099609375
],
"parent": {
"type": "NODE",
"value": "Frame.007"
}
},
"inputs": {
"data": {
"bl_idname": "SvStringsSocket",
"name": "data"
},
"data 1": {
"bl_idname": "SvStringsSocket",
"name": "data 1"
},
"data 2": {
"bl_idname": "SvStringsSocket",
"name": "data 2"
},
"data 3": {
"bl_idname": "SvStringsSocket",
"name": "data 3"
}
},
"outputs": {
"data_001": {
"bl_idname": "SvVerticesSocket",
"name": "data"
}
},
"bl_idname": "ZipNode"
},
"List Flip": {
"attributes": {
"location": [
3204.0,
336.91278076171875
],
"parent": {
"type": "NODE",
"value": "Frame.007"
}
},
"inputs": {
"data": {
"bl_idname": "SvStringsSocket",
"name": "data"
}
},
"outputs": {
"data_001": {
"bl_idname": "SvVerticesSocket",
"name": "data"
}
},
"bl_idname": "ListFlipNode"
},
"List Zip.001": {
"attributes": {
"location": [
3030.8779296875,
97.55575561523438
],
"parent": {
"type": "NODE",
"value": "Frame.007"
}
},
"inputs": {
"data": {
"bl_idname": "SvStringsSocket",
"name": "data"
},
"data 1": {
"bl_idname": "SvStringsSocket",
"name": "data 1"
},
"data 2": {
"bl_idname": "SvStringsSocket",
"name": "data 2"
},
"data 3": {
"bl_idname": "SvStringsSocket",
"name": "data 3"
}
},
"outputs": {
"data": {
"bl_idname": "SvStringsSocket",
"name": "data"
}
},
"bl_idname": "ZipNode"
},
"List Flip.001": {
"attributes": {
"location": [
3211.36962890625,
99.22201538085938
],
"parent": {
"type": "NODE",
"value": "Frame.007"
}
},
"inputs": {
"data": {
"bl_idname": "SvStringsSocket",
"name": "data"
}
},
"outputs": {
"data": {
"bl_idname": "SvStringsSocket",
"name": "data"
}
},
"bl_idname": "ListFlipNode"
},
"List Levels": {
"attributes": {
"location": [
3711.689697265625,
430.9722900390625
],
"parent": {
"type": "NODE",
"value": "Frame.007"
}
},
"properties": {
"nesting": 5,
"levels_config": [
{},
{
"flatten": true
},
{},
{},
{}
]
},
"inputs": {
"Data": {
"bl_idname": "SvStringsSocket",
"name": "Data"
}
},
"outputs": {
"Data_001": {
"bl_idname": "SvVerticesSocket",
"name": "Data"
}
},
"bl_idname": "SvListLevelsNodeMK2"
},
"List Levels.001": {
"attributes": {
"location": [
3704.320068359375,
160.8006591796875
],
"parent": {
"type": "NODE",
"value": "Frame.007"
}
},
"properties": {
"nesting": 5,
"levels_config": [
{},
{
"flatten": true
},
{},
{},
{}
]
},
"inputs": {
"Data": {
"bl_idname": "SvStringsSocket",
"name": "Data"
}
},
"outputs": {
"Data": {
"bl_idname": "SvStringsSocket",
"name": "Data"
}
},
"bl_idname": "SvListLevelsNodeMK2"
},
"Fill Holes": {
"attributes": {
"location": [
4268.17138671875,
383.86737060546875
]
},
"properties": {
"sides": 2256
},
"inputs": {
"vertices": {
"bl_idname": "SvVerticesSocket",
"name": "vertices"
},
"edges": {
"bl_idname": "SvStringsSocket",
"name": "edges"
},
"Sides": {
"bl_idname": "SvStringsSocket",
"name": "Sides",
"properties": {
"prop_name": "sides"
}
}
},
"outputs": {
"vertices": {
"bl_idname": "SvVerticesSocket",
"name": "vertices"
},
"edges": {
"bl_idname": "SvStringsSocket",
"name": "edges"
},
"polygons": {
"bl_idname": "SvStringsSocket",
"name": "polygons"
}
},
"bl_idname": "SvFillsHoleNode"
},
"Viewer Draw": {
"attributes": {
"location": [
4531.8896484375,
452.68817138671875
],
"color": [
1.0,
0.5889999866485596,
0.21400000154972076
],
"use_custom_color": true
},
"properties": {
"edge_color": [
0.17994514107704163,
0.20583577454090118,
0.19766800105571747,
1.0
],
"vector_color": [
0.13490861654281616,
0.17162546515464783,
0.27526336908340454,
1.0
],
"polygon_color": [
0.8100547790527344,
0.7805747985839844,
0.8026254177093506,
1.0
],
"display_verts": false,
"line_width": 2
},
"inputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices",
"properties": {
"custom_draw": "draw_property_socket"
}
},
"Edges": {
"bl_idname": "SvStringsSocket",
"name": "Edges",
"properties": {
"custom_draw": "draw_property_socket"
}
},
"Polygons": {
"bl_idname": "SvStringsSocket",
"name": "Polygons"
},
"Matrix": {
"bl_idname": "SvMatrixSocket",
"name": "Matrix"
},
"Vector Color": {
"bl_idname": "SvColorSocket",
"name": "Vector Color",
"properties": {
"custom_draw": "draw_color_socket",
"prop_name": "vector_color"
}
},
"Edge Color": {
"bl_idname": "SvColorSocket",
"name": "Edge Color",
"properties": {
"custom_draw": "draw_color_socket",
"prop_name": "edge_color"
}
},
"Polygon Color": {
"bl_idname": "SvColorSocket",
"name": "Polygon Color",
"properties": {
"custom_draw": "draw_color_socket",
"prop_name": "polygon_color"
}
},
"attrs": {
"bl_idname": "SvStringsSocket",
"name": "attrs",
"attributes": {
"hide": true
},
"properties": {
"quick_link_to_node": "SvVDAttrsNodeMk2"
}
}
},
"bl_idname": "SvViewerDrawMk4"
},
"Scalar Math.003": {
"attributes": {
"location": [
492.202392578125,
173.3480987548828
],
"parent": {
"type": "NODE",
"value": "Frame.004"
}
},
"properties": {
"current_op": "DIV",
"x_": 6.2831854820251465
},
"inputs": {
"x": {
"bl_idname": "SvStringsSocket",
"name": "x",
"properties": {
"prop_name": "x_"
}
},
"y": {
"bl_idname": "SvStringsSocket",
"name": "y",
"properties": {
"prop_name": "y_"
}
}
},
"outputs": {
"Out": {
"bl_idname": "SvStringsSocket",
"name": "Out"
}
},
"bl_idname": "SvScalarMathNodeMK4"
},
"Frame": {
"attributes": {
"location": [
-1424.0,
571.0
],
"height": 587.0,
"width": 218.0,
"label": "INPUTS"
},
"bl_idname": "NodeFrame"
},
"Frame.001": {
"attributes": {
"location": [
-1185.0,
476.0
],
"height": 325.0,
"width": 200.0,
"label": "Arc Origins"
},
"bl_idname": "NodeFrame"
},
"Surface from Boundary Curves": {
"attributes": {
"location": [
2681.129150390625,
1001.5234375
],
"color": [
0.40799999237060547,
0.6159999966621399,
0.41600000858306885
],
"use_custom_color": true,
"parent": {
"type": "NODE",
"value": "Frame.006"
}
},
"properties": {
"input_mode": "FOUR",
"use_nurbs": "NURBS",
"check": true
},
"inputs": {
"Curves": {
"bl_idname": "SvCurveSocket",
"name": "Curves",
"attributes": {
"hide": true
}
},
"Curve1": {
"bl_idname": "SvCurveSocket",
"name": "Curve1"
},
"Curve2": {
"bl_idname": "SvCurveSocket",
"name": "Curve2"
},
"Curve3": {
"bl_idname": "SvCurveSocket",
"name": "Curve3"
},
"Curve4": {
"bl_idname": "SvCurveSocket",
"name": "Curve4"
}
},
"outputs": {
"Surface": {
"bl_idname": "SvSurfaceSocket",
"name": "Surface"
}
},
"bl_idname": "SvCoonsPatchNode"
},
"Viewer Draw Surface": {
"attributes": {
"location": [
2895.72216796875,
1142.8623046875
],
"color": [
1.0,
0.5889999866485596,
0.21400000154972076
],
"use_custom_color": true,
"parent": {
"type": "NODE",
"value": "Frame.006"
}
},
"properties": {
"control_net_color": [
0.0,
0.20331311225891113,
0.6741600036621094,
1.0
],
"control_points_color": [
0.0,
0.030828893184661865,
1.0,
1.0
],
"control_points_size": 4,
"surface_color": [
0.7444139719009399,
0.8444298505783081,
0.9500002264976501,
1.0
],
"resolution_u": 100,
"resolution_v": 100,
"draw_node_lines": true,
"node_lines_color": [
0.0007367206271737814,
0.0,
0.19999945163726807,
1.0
],
"activate": false
},
"inputs": {
"Surface": {
"bl_idname": "SvSurfaceSocket",
"name": "Surface"
},
"ResolutionU": {
"bl_idname": "SvStringsSocket",
"name": "ResolutionU",
"properties": {
"prop_name": "resolution_u"
}
},
"ResolutionV": {
"bl_idname": "SvStringsSocket",
"name": "ResolutionV",
"properties": {
"prop_name": "resolution_v"
}
}
},
"bl_idname": "SvSurfaceViewerDrawNode"
},
"Frame.002": {
"attributes": {
"location": [
-933.0,
414.0
],
"height": 320.0,
"width": 200.0,
"label": "Arcs"
},
"bl_idname": "NodeFrame"
},
"Frame.003": {
"attributes": {
"location": [
-559.0,
1088.0
],
"height": 688.0,
"width": 1595.0,
"label": "Place Arcs"
},
"bl_idname": "NodeFrame"
},
"Frame.004": {
"attributes": {
"location": [
305.0,
213.0
],
"height": 668.0,
"width": 1693.0,
"label": "Outer Circle Divisions"
},
"bl_idname": "NodeFrame"
},
"Frame.005": {
"attributes": {
"location": [
1151.0,
833.0
],
"height": 507.0,
"width": 732.0,
"label": "Cut Arcs"
},
"bl_idname": "NodeFrame"
},
"Frame.006": {
"attributes": {
"location": [
2651.0,
1183.0
],
"height": 451.0,
"width": 415.0,
"label": "Output via Surfaces"
},
"bl_idname": "NodeFrame"
},
"Frame.007": {
"attributes": {
"location": [
2722.0,
471.0
],
"height": 759.0,
"width": 1480.0,
"label": "Mesh / List manipulation"
},
"bl_idname": "NodeFrame"
}
},
"links": [
{
"from_node": "A Number",
"from_socket": "Float_001",
"to_node": "Circle (Curve).001",
"to_socket": "Radius"
},
{
"from_node": "A Number",
"from_socket": "Float_001",
"to_node": "NGon",
"to_socket": "Radius"
},
{
"from_node": "A Number.001",
"from_socket": "Int",
"to_node": "NGon",
"to_socket": "N Sides"
},
{
"from_node": "NGon",
"from_socket": "Vertices",
"to_node": "Matrix In",
"to_socket": "Location"
},
{
"from_node": "Scalar Math.001",
"from_socket": "Out",
"to_node": "Matrix In.001",
"to_socket": "Angle"
},
{
"from_node": "Vector Math",
"from_socket": "Out_001",
"to_node": "Matrix Math",
"to_socket": "A"
},
{
"from_node": "Matrix In.001",
"from_socket": "Matrices",
"to_node": "Matrix Math",
"to_socket": "B"
},
{
"from_node": "Matrix In",
"from_socket": "Matrices",
"to_node": "Matrix Math",
"to_socket": "C"
},
{
"from_node": "Matrix Math",
"from_socket": "C",
"to_node": "Apply Field to Curve",
"to_socket": "Field"
},
{
"from_node": "Reroute.001",
"from_socket": "Output",
"to_node": "Apply Field to Curve",
"to_socket": "Curve"
},
{
"from_node": "Reroute.001",
"from_socket": "Output",
"to_node": "Curve Endpoints",
"to_socket": "Curve"
},
{
"from_node": "Curve Endpoints",
"from_socket": "Start",
"to_node": "Vector Math",
"to_socket": "A"
},
{
"from_node": "Scalar Math",
"from_socket": "Out",
"to_node": "Number Range",
"to_socket": "Step"
},
{
"from_node": "A Number.001",
"from_socket": "Int",
"to_node": "Number Range",
"to_socket": "Stop"
},
{
"from_node": "A Number.001",
"from_socket": "Int",
"to_node": "Scalar Math",
"to_socket": "y"
},
{
"from_node": "Number Range",
"from_socket": "Range",
"to_node": "Scalar Math.001",
"to_socket": "x"
},
{
"from_node": "A Number.002",
"from_socket": "Float_001",
"to_node": "Scalar Math.001",
"to_socket": "y"
},
{
"from_node": "Apply Field to Curve",
"from_socket": "Curve",
"to_node": "List Shift",
"to_socket": "data"
},
{
"from_node": "Apply Field to Curve",
"from_socket": "Curve",
"to_node": "Intersect NURBS Curves",
"to_socket": "Curve1"
},
{
"from_node": "List Shift",
"from_socket": "data_001",
"to_node": "Intersect NURBS Curves",
"to_socket": "Curve2"
},
{
"from_node": "Apply Field to Curve",
"from_socket": "Curve",
"to_node": "Curve Segment",
"to_socket": "Curve"
},
{
"from_node": "Intersect NURBS Curves",
"from_socket": "T1",
"to_node": "Curve Segment",
"to_socket": "TMax"
},
{
"from_node": "List Shift",
"from_socket": "data_001",
"to_node": "Curve Segment.001",
"to_socket": "Curve"
},
{
"from_node": "Intersect NURBS Curves",
"from_socket": "T2",
"to_node": "Curve Segment.001",
"to_socket": "TMax"
},
{
"from_node": "Scalar Math.003",
"from_socket": "Out",
"to_node": "Number Range.001",
"to_socket": "Step"
},
{
"from_node": "Scalar Math.002",
"from_socket": "Out",
"to_node": "Number Range.001",
"to_socket": "Stop"
},
{
"from_node": "Number Range.001",
"from_socket": "Range",
"to_node": "List Shift.001",
"to_socket": "data"
},
{
"from_node": "Reroute",
"from_socket": "Output",
"to_node": "Scalar Math.002",
"to_socket": "x"
},
{
"from_node": "A Number.001",
"from_socket": "Int",
"to_node": "Reroute",
"to_socket": "Input"
},
{
"from_node": "Circle (Curve).002",
"from_socket": "Curve",
"to_node": "List Slice",
"to_socket": "Data"
},
{
"from_node": "Reroute",
"from_socket": "Output",
"to_node": "List Slice",
"to_socket": "Stop"
},
{
"from_node": "A Number",
"from_socket": "Float_001",
"to_node": "Circle (Curve).002",
"to_socket": "Radius"
},
{
"from_node": "Number Range.001",
"from_socket": "Range",
"to_node": "Circle (Curve).002",
"to_socket": "TMin"
},
{
"from_node": "List Shift.001",
"from_socket": "data",
"to_node": "Circle (Curve).002",
"to_socket": "TMax"
},
{
"from_node": "List Slice",
"from_socket": "Slice_001",
"to_node": "List Shift.002",
"to_socket": "data"
},
{
"from_node": "Curve Segment.001",
"from_socket": "Segment",
"to_node": "Flip Curve",
"to_socket": "Curve"
},
{
"from_node": "Circle (Curve).001",
"from_socket": "Curve",
"to_node": "Reroute.001",
"to_socket": "Input"
},
{
"from_node": "Circle (Curve).001",
"from_socket": "Curve",
"to_node": "Curve to NURBS",
"to_socket": "Curve"
},
{
"from_node": "Curve Segment",
"from_socket": "Segment",
"to_node": "Evaluate Curve",
"to_socket": "Curve"
},
{
"from_node": "Flip Curve",
"from_socket": "Curve",
"to_node": "Evaluate Curve.001",
"to_socket": "Curve"
},
{
"from_node": "List Shift.002",
"from_socket": "data_001",
"to_node": "Evaluate Curve.002",
"to_socket": "Curve"
},
{
"from_node": "List Flip",
"from_socket": "data_001",
"to_node": "Mesh Join",
"to_socket": "Vertices"
},
{
"from_node": "List Flip.001",
"from_socket": "data",
"to_node": "Mesh Join",
"to_socket": "Edges"
},
{
"from_node": "List Levels",
"from_socket": "Data_001",
"to_node": "Merge by Distance",
"to_socket": "Vertices"
},
{
"from_node": "List Levels.001",
"from_socket": "Data",
"to_node": "Merge by Distance",
"to_socket": "PolyEdge"
},
{
"from_node": "Evaluate Curve",
"from_socket": "Vertices",
"to_node": "List Zip",
"to_socket": "data"
},
{
"from_node": "Evaluate Curve.001",
"from_socket": "Vertices",
"to_node": "List Zip",
"to_socket": "data 1"
},
{
"from_node": "Evaluate Curve.002",
"from_socket": "Vertices",
"to_node": "List Zip",
"to_socket": "data 2"
},
{
"from_node": "List Zip",
"from_socket": "data_001",
"to_node": "List Flip",
"to_socket": "data"
},
{
"from_node": "Evaluate Curve",
"from_socket": "Edges",
"to_node": "List Zip.001",
"to_socket": "data"
},
{
"from_node": "Evaluate Curve.001",
"from_socket": "Edges",
"to_node": "List Zip.001",
"to_socket": "data 1"
},
{
"from_node": "Evaluate Curve.002",
"from_socket": "Edges",
"to_node": "List Zip.001",
"to_socket": "data 2"
},
{
"from_node": "List Zip.001",
"from_socket": "data",
"to_node": "List Flip.001",
"to_socket": "data"
},
{
"from_node": "Mesh Join",
"from_socket": "Vertices",
"to_node": "List Levels",
"to_socket": "Data"
},
{
"from_node": "Mesh Join",
"from_socket": "Edges",
"to_node": "List Levels.001",
"to_socket": "Data"
},
{
"from_node": "Merge by Distance",
"from_socket": "Vertices",
"to_node": "Fill Holes",
"to_socket": "vertices"
},
{
"from_node": "Merge by Distance",
"from_socket": "Edges",
"to_node": "Fill Holes",
"to_socket": "edges"
},
{
"from_node": "Fill Holes",
"from_socket": "vertices",
"to_node": "Viewer Draw",
"to_socket": "Vertices"
},
{
"from_node": "Fill Holes",
"from_socket": "edges",
"to_node": "Viewer Draw",
"to_socket": "Edges"
},
{
"from_node": "Fill Holes",
"from_socket": "polygons",
"to_node": "Viewer Draw",
"to_socket": "Polygons"
},
{
"from_node": "Reroute",
"from_socket": "Output",
"to_node": "Scalar Math.003",
"to_socket": "y"
},
{
"from_node": "Curve Segment",
"from_socket": "Segment",
"to_node": "Surface from Boundary Curves",
"to_socket": "Curve1"
},
{
"from_node": "Flip Curve",
"from_socket": "Curve",
"to_node": "Surface from Boundary Curves",
"to_socket": "Curve2"
},
{
"from_node": "List Shift.002",
"from_socket": "data_001",
"to_node": "Surface from Boundary Curves",
"to_socket": "Curve3"
},
{
"from_node": "Surface from Boundary Curves",
"from_socket": "Surface",
"to_node": "Viewer Draw Surface",
"to_socket": "Surface"
}
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment