Skip to content

Instantly share code, notes, and snippets.

@portnov
Created January 15, 2025 13:31
Show Gist options
  • Save portnov/5eaf3a33b0b8ebba9a5572bcdde5a0e6 to your computer and use it in GitHub Desktop.
Save portnov/5eaf3a33b0b8ebba9a5572bcdde5a0e6 to your computer and use it in GitHub Desktop.
Sverchok.v1.3.0 | Blender.4.3.0 | NodeTree | 2025.01.15 | 18:31 | license: CC BY-SA
{
"export_version": "1.0",
"main_tree": {
"nodes": {
"Line": {
"attributes": {
"location": [
-621.8948974609375,
158.46884155273438
],
"parent": {
"type": "NODE",
"value": "Frame"
}
},
"properties": {
"num": 10
},
"inputs": {
"Num": {
"bl_idname": "SvStringsSocket",
"name": "Num",
"properties": {
"prop_name": "num"
}
},
"Steps": {
"bl_idname": "SvStringsSocket",
"name": "Steps",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "step"
}
},
"Size": {
"bl_idname": "SvStringsSocket",
"name": "Size",
"properties": {
"prop_name": "size"
}
},
"Origin": {
"bl_idname": "SvVerticesSocket",
"name": "Origin",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "v3_origin"
}
},
"Direction": {
"bl_idname": "SvVerticesSocket",
"name": "Direction",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "v3_dir"
}
}
},
"outputs": {
"Verts": {
"bl_idname": "SvVerticesSocket",
"name": "Verts"
},
"Edges": {
"bl_idname": "SvStringsSocket",
"name": "Edges"
}
},
"bl_idname": "SvLineNodeMK4"
},
"Randomize": {
"attributes": {
"location": [
-362.0307159423828,
198.44808959960938
],
"parent": {
"type": "NODE",
"value": "Frame"
}
},
"properties": {
"random_x_": 0.05999999865889549,
"random_y_": 0.5399999618530273,
"random_z_": 0.6299999952316284
},
"inputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
},
"RandomX": {
"bl_idname": "SvStringsSocket",
"name": "RandomX",
"properties": {
"prop_name": "random_x_"
}
},
"RandomY": {
"bl_idname": "SvStringsSocket",
"name": "RandomY",
"properties": {
"prop_name": "random_y_"
}
},
"RandomZ": {
"bl_idname": "SvStringsSocket",
"name": "RandomZ",
"properties": {
"prop_name": "random_z_"
}
},
"Seed": {
"bl_idname": "SvStringsSocket",
"name": "Seed",
"properties": {
"prop_name": "random_seed_"
}
}
},
"outputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
}
},
"bl_idname": "SvRandomizeVerticesNode"
},
"Catmull-Rom Spline": {
"attributes": {
"location": [
-152.4744110107422,
252.25376892089844
],
"parent": {
"type": "NODE",
"value": "Frame"
}
},
"inputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
},
"Tension": {
"bl_idname": "SvStringsSocket",
"name": "Tension",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "tension"
}
}
},
"outputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
}
},
"bl_idname": "SvCatmullRomSplineNode"
},
"Loop In": {
"attributes": {
"location": [
383.1291809082031,
406.6953125
],
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"properties": {
"linked_to_loop_out": true,
"iterations": 50,
"max_iterations": 100
},
"inputs": {
"Iterations": {
"bl_idname": "SvStringsSocket",
"name": "Iterations",
"properties": {
"prop_name": "iterations"
}
},
"Data 0": {
"bl_idname": "SvStringsSocket",
"name": "Data 0",
"properties": {
"label": "Catmull-Rom Spline"
}
},
"Data": {
"bl_idname": "SvStringsSocket",
"name": "Data"
}
},
"outputs": {
"Loop Out": {
"bl_idname": "SvLoopControlSocket",
"name": "Loop Out"
},
"Loop Number": {
"bl_idname": "SvStringsSocket",
"name": "Loop Number"
},
"Total Loops": {
"bl_idname": "SvStringsSocket",
"name": "Total Loops"
},
"Data_001": {
"bl_idname": "SvCurveSocket",
"name": "Data",
"properties": {
"label": "Catmull-Rom Spline"
}
}
},
"bl_idname": "SvLoopInNode"
},
"Loop Out": {
"attributes": {
"location": [
2322.582275390625,
619.2767333984375
],
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"inputs": {
"Loop In": {
"bl_idname": "SvLoopControlSocket",
"name": "Loop In"
},
"Break": {
"bl_idname": "SvStringsSocket",
"name": "Break",
"properties": {
"label": "Break"
}
},
"Data 0": {
"bl_idname": "SvCurveSocket",
"name": "Data 0",
"properties": {
"label": "Catmull-Rom Spline"
}
}
},
"outputs": {
"Data 0_001": {
"bl_idname": "SvCurveSocket",
"name": "Data 0",
"properties": {
"label": "Catmull-Rom Spline"
}
}
},
"bl_idname": "SvLoopOutNode"
},
"Curve Zero-Twist Frame": {
"attributes": {
"location": [
1190.886962890625,
412.2733459472656
],
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"properties": {
"algorithm": "TRACK",
"resolution": 200
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"Resolution": {
"bl_idname": "SvStringsSocket",
"name": "Resolution",
"properties": {
"prop_name": "resolution"
}
},
"T": {
"bl_idname": "SvStringsSocket",
"name": "T",
"properties": {
"prop_name": "t_value"
}
}
},
"outputs": {
"CumulativeTorsion": {
"bl_idname": "SvStringsSocket",
"name": "CumulativeTorsion",
"attributes": {
"hide": true
}
},
"Matrix": {
"bl_idname": "SvMatrixSocket",
"name": "Matrix"
}
},
"bl_idname": "SvExCurveZeroTwistFrameNode"
},
"Curve Domain": {
"attributes": {
"location": [
575.7140502929688,
195.67091369628906
],
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
}
},
"outputs": {
"TMin": {
"bl_idname": "SvStringsSocket",
"name": "TMin"
},
"TMax": {
"bl_idname": "SvStringsSocket",
"name": "TMax"
},
"Range": {
"bl_idname": "SvStringsSocket",
"name": "Range"
}
},
"bl_idname": "SvExCurveRangeNode"
},
"Number Range": {
"attributes": {
"location": [
777.8877563476562,
144.28280639648438
],
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"properties": {
"range_mode": "RANGE_COUNT",
"current_mode": "RANGE_COUNT",
"count_": 50
},
"inputs": {
"Start": {
"bl_idname": "SvStringsSocket",
"name": "Start",
"properties": {
"prop_name": "start_float"
}
},
"Step": {
"bl_idname": "SvStringsSocket",
"name": "Step",
"properties": {
"prop_name": "stop_float",
"label": "stop"
}
},
"Stop": {
"bl_idname": "SvStringsSocket",
"name": "Stop",
"properties": {
"prop_name": "count_",
"label": "count"
}
}
},
"outputs": {
"Range": {
"bl_idname": "SvStringsSocket",
"name": "Range"
}
},
"bl_idname": "SvGenNumberRange"
},
"Matrix Math": {
"attributes": {
"location": [
1518.324462890625,
405.2072448730469
],
"label": "Matrix Basis",
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"properties": {
"operation": "BASIS"
},
"inputs": {
"A": {
"bl_idname": "SvMatrixSocket",
"name": "A"
}
},
"outputs": {
"C": {
"bl_idname": "SvMatrixSocket",
"name": "C"
},
"X": {
"bl_idname": "SvVerticesSocket",
"name": "X"
},
"Y": {
"bl_idname": "SvVerticesSocket",
"name": "Y"
},
"Z": {
"bl_idname": "SvVerticesSocket",
"name": "Z"
}
},
"bl_idname": "SvMatrixMathNode"
},
"Move": {
"attributes": {
"location": [
1790.6650390625,
373.060302734375
],
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"properties": {
"strength": 0.10000000149011612
},
"inputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
},
"Movement Vectors": {
"bl_idname": "SvVerticesSocket",
"name": "Movement Vectors",
"properties": {
"prop_name": "movement_vectors"
}
},
"Strength": {
"bl_idname": "SvStringsSocket",
"name": "Strength",
"properties": {
"prop_name": "strength"
}
}
},
"outputs": {
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
}
},
"bl_idname": "SvMoveNodeMk3"
},
"Viewer Draw Curve": {
"attributes": {
"location": [
2602.080078125,
707.0121459960938
],
"color": [
1.0,
0.5889999866485596,
0.21400000154972076
],
"use_custom_color": true
},
"properties": {
"line_color": [
0.0,
0.06277695298194885,
1.0,
1.0
],
"comb_color": [
0.7445480227470398,
0.43838220834732056,
0.0,
0.7405171394348145
],
"control_polygon_color": [
0.023192498832941055,
0.6177791357040405,
0.41069942712783813,
1.0
],
"verts_color": [
0.0,
0.8049903512001038,
0.7719917297363281,
1.0
],
"arrows_color": [
0.04119928926229477,
0.6374202370643616,
0.48610028624534607,
1.0
],
"resolution": 200,
"line_width": 1,
"control_points_color": [
0.015343744307756424,
0.3374054431915283,
0.025069717317819595,
1.0
]
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"Resolution": {
"bl_idname": "SvStringsSocket",
"name": "Resolution",
"properties": {
"prop_name": "resolution"
}
}
},
"bl_idname": "SvCurveViewerDrawNode"
},
"Viewer Draw Curve.002": {
"attributes": {
"location": [
69.8680419921875,
150.69447326660156
],
"color": [
1.0,
0.5889999866485596,
0.21400000154972076
],
"use_custom_color": true,
"parent": {
"type": "NODE",
"value": "Frame"
}
},
"properties": {
"nodes_size": 6,
"control_polygon_color": [
0.5439786314964294,
0.9000002145767212,
0.7794800996780396,
1.0
],
"control_points_size": 4,
"line_color": [
0.01055984664708376,
1.0,
0.011916614137589931,
1.0
],
"control_points_color": [
0.414283812046051,
1.0,
0.4808262288570404,
1.0
],
"verts_color": [
0.8583641648292542,
0.9500000476837158,
0.31934696435928345,
1.0
],
"nodes_color": [
0.07898826897144318,
0.29999998211860657,
0.0,
1.0
],
"resolution": 100
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"Resolution": {
"bl_idname": "SvStringsSocket",
"name": "Resolution",
"properties": {
"prop_name": "resolution"
}
}
},
"bl_idname": "SvCurveViewerDrawNode"
},
"Curve Curvature": {
"attributes": {
"location": [
1176.465087890625,
42.74392318725586
],
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"T": {
"bl_idname": "SvStringsSocket",
"name": "T",
"properties": {
"prop_name": "t_value"
}
}
},
"outputs": {
"Curvature": {
"bl_idname": "SvStringsSocket",
"name": "Curvature"
},
"Radius": {
"bl_idname": "SvStringsSocket",
"name": "Radius"
},
"Center": {
"bl_idname": "SvMatrixSocket",
"name": "Center"
}
},
"bl_idname": "SvExCurveCurvatureNode"
},
"Scalar Math": {
"attributes": {
"location": [
1511.4677734375,
50.389713287353516
],
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"properties": {
"y_": -0.012000000104308128
},
"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"
},
"Curve Frame": {
"attributes": {
"location": [
1185.977294921875,
217.03448486328125
],
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"inputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"T": {
"bl_idname": "SvStringsSocket",
"name": "T",
"properties": {
"prop_name": "t_value"
}
}
},
"outputs": {
"Matrix": {
"bl_idname": "SvMatrixSocket",
"name": "Matrix"
},
"Normal": {
"bl_idname": "SvVerticesSocket",
"name": "Normal"
},
"Binormal": {
"bl_idname": "SvVerticesSocket",
"name": "Binormal"
}
},
"bl_idname": "SvExCurveFrameNode"
},
"Reroute": {
"attributes": {
"location": [
1075.81591796875,
303.5113220214844
],
"width": 16.0,
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"bl_idname": "NodeReroute"
},
"Reroute.001": {
"attributes": {
"location": [
1095.6209716796875,
224.5254364013672
],
"width": 16.0,
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"bl_idname": "NodeReroute"
},
"Approximate NURBS Curve": {
"attributes": {
"location": [
2088.268310546875,
516.0758666992188
],
"parent": {
"type": "NODE",
"value": "Frame.001"
}
},
"properties": {
"implementation": "SCIPY",
"has_smoothing": true,
"smoothing": 0.009999999776482582
},
"inputs": {
"LengthWeight": {
"bl_idname": "SvStringsSocket",
"name": "LengthWeight",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "length_weight"
}
},
"CurvatureWeight": {
"bl_idname": "SvStringsSocket",
"name": "CurvatureWeight",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "curvature_weight"
}
},
"TorsionWeight": {
"bl_idname": "SvStringsSocket",
"name": "TorsionWeight",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "torsion_weight"
}
},
"Knots": {
"bl_idname": "SvStringsSocket",
"name": "Knots",
"attributes": {
"hide": true
}
},
"Vertices": {
"bl_idname": "SvVerticesSocket",
"name": "Vertices"
},
"Weights": {
"bl_idname": "SvStringsSocket",
"name": "Weights"
},
"Degree": {
"bl_idname": "SvStringsSocket",
"name": "Degree",
"properties": {
"prop_name": "degree"
}
},
"PointsCnt": {
"bl_idname": "SvStringsSocket",
"name": "PointsCnt",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "points_cnt"
}
},
"Smoothing": {
"bl_idname": "SvStringsSocket",
"name": "Smoothing",
"properties": {
"prop_name": "smoothing"
}
},
"DegreeMin": {
"bl_idname": "SvStringsSocket",
"name": "DegreeMin",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "degree_min"
}
},
"DegreeMax": {
"bl_idname": "SvStringsSocket",
"name": "DegreeMax",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "degree_max"
}
},
"Tolerance": {
"bl_idname": "SvStringsSocket",
"name": "Tolerance",
"attributes": {
"hide": true
},
"properties": {
"prop_name": "tolerance"
}
}
},
"outputs": {
"Curve": {
"bl_idname": "SvCurveSocket",
"name": "Curve"
},
"ControlPoints": {
"bl_idname": "SvVerticesSocket",
"name": "ControlPoints"
},
"Knots": {
"bl_idname": "SvStringsSocket",
"name": "Knots"
}
},
"bl_idname": "SvApproxNurbsCurveMk3Node"
},
"Frame": {
"attributes": {
"location": [
-264.6802978515625,
108.4464111328125
],
"height": 457.0,
"width": 892.0,
"label": "Initial Curve"
},
"bl_idname": "NodeFrame"
},
"Frame.001": {
"attributes": {
"location": [
0.0,
0.0
],
"height": 791.0,
"width": 2140.0,
"label": "Deformation"
},
"bl_idname": "NodeFrame"
},
"A Number": {
"attributes": {
"location": [
979.1197509765625,
-192.4767303466797
],
"label": "Coefficient"
},
"properties": {
"float_": -0.012000000104308128
},
"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"
},
"NGon": {
"attributes": {
"location": [
-1023.5552978515625,
106.88021850585938
],
"width": 210.9970703125
},
"properties": {
"sides_": 12,
"rad_": 5.0,
"rand_r_": 2.0,
"rand_phi_": 0.1599999964237213,
"rand_seed_": 0.05999999865889549
},
"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"
}
},
"links": [
{
"from_node": "NGon",
"from_socket": "Vertices",
"to_node": "Randomize",
"to_socket": "Vertices"
},
{
"from_node": "Randomize",
"from_socket": "Vertices",
"to_node": "Catmull-Rom Spline",
"to_socket": "Vertices"
},
{
"from_node": "Catmull-Rom Spline",
"from_socket": "Curve",
"to_node": "Loop In",
"to_socket": "Data 0"
},
{
"from_node": "Loop In",
"from_socket": "Loop Out",
"to_node": "Loop Out",
"to_socket": "Loop In"
},
{
"from_node": "Approximate NURBS Curve",
"from_socket": "Curve",
"to_node": "Loop Out",
"to_socket": "Data 0"
},
{
"from_node": "Reroute",
"from_socket": "Output",
"to_node": "Curve Zero-Twist Frame",
"to_socket": "Curve"
},
{
"from_node": "Reroute.001",
"from_socket": "Output",
"to_node": "Curve Zero-Twist Frame",
"to_socket": "T"
},
{
"from_node": "Loop In",
"from_socket": "Data_001",
"to_node": "Curve Domain",
"to_socket": "Curve"
},
{
"from_node": "Curve Domain",
"from_socket": "TMin",
"to_node": "Number Range",
"to_socket": "Start"
},
{
"from_node": "Curve Domain",
"from_socket": "TMax",
"to_node": "Number Range",
"to_socket": "Step"
},
{
"from_node": "Curve Frame",
"from_socket": "Matrix",
"to_node": "Matrix Math",
"to_socket": "A"
},
{
"from_node": "Matrix Math",
"from_socket": "C",
"to_node": "Move",
"to_socket": "Vertices"
},
{
"from_node": "Matrix Math",
"from_socket": "X",
"to_node": "Move",
"to_socket": "Movement Vectors"
},
{
"from_node": "Scalar Math",
"from_socket": "Out",
"to_node": "Move",
"to_socket": "Strength"
},
{
"from_node": "Loop Out",
"from_socket": "Data 0_001",
"to_node": "Viewer Draw Curve",
"to_socket": "Curve"
},
{
"from_node": "Catmull-Rom Spline",
"from_socket": "Curve",
"to_node": "Viewer Draw Curve.002",
"to_socket": "Curve"
},
{
"from_node": "Loop In",
"from_socket": "Data_001",
"to_node": "Curve Curvature",
"to_socket": "Curve"
},
{
"from_node": "Number Range",
"from_socket": "Range",
"to_node": "Curve Curvature",
"to_socket": "T"
},
{
"from_node": "Curve Curvature",
"from_socket": "Curvature",
"to_node": "Scalar Math",
"to_socket": "x"
},
{
"from_node": "A Number",
"from_socket": "Float_001",
"to_node": "Scalar Math",
"to_socket": "y"
},
{
"from_node": "Reroute",
"from_socket": "Output",
"to_node": "Curve Frame",
"to_socket": "Curve"
},
{
"from_node": "Reroute.001",
"from_socket": "Output",
"to_node": "Curve Frame",
"to_socket": "T"
},
{
"from_node": "Loop In",
"from_socket": "Data_001",
"to_node": "Reroute",
"to_socket": "Input"
},
{
"from_node": "Number Range",
"from_socket": "Range",
"to_node": "Reroute.001",
"to_socket": "Input"
},
{
"from_node": "Move",
"from_socket": "Vertices",
"to_node": "Approximate NURBS Curve",
"to_socket": "Vertices"
}
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment