Here you go:
{
"name": "circular_bricks",
"node_position": {
"x": 0,
"y": 0
},
"parameters": {
"columns": 7,
"rows": 17
},
"seed": 0,
"seed_locked": false,
"shader_model": {
"code": "float d = distance($uv, vec2(.5));\nfloat cols = $columns * 2.0;\nfloat stepped = steps(d, cols);\nfloat y = split(d, cols);\nfloat offset = ($rows - 5.0) * (6.283 * stepped);\nfloat gradient = circular_gradient($uv - vec2(.5));\nfloat x = split(gradient, offset);\nvec3 $(name_uv) = vec3(vec2(x, y), 0);\nfloat $(name_uv)_mask = step(d, 0.5);\nvec3 $(name_uv)_id = col(vec2(stepped, steps(gradient, offset)));\n",
"global": "float circular_gradient(vec2 uv) {\n\treturn fract(0.15915494309 * atan(uv.x, uv.y));\n}\n\nfloat bricks(vec2 uv) {\n\tif (any(greaterThan(uv, vec2(.9))) || any(lessThan(uv, vec2(.1)))) {\n\t\treturn 0.0;\n\t}\n\treturn 1.0;\n}\n\nfloat steps(float a, float num) {\n\treturn ceil(a * (num)) / (num);\n}\n\nfloat split(float a, float num) {\n\treturn mod(a * num, 1.0);\n}\n\nvec3 col(vec2 a) {\n\treturn rand3(a);\n}\n\n",
"inputs": [
],
"instance": "",
"longdesc": "Create a circular array of squares that stay the same size.\n\nMade by Jummit.",
"name": "Circular Bricks",
"outputs": [
{
"rgb": "$(name_uv)",
"shortdesc": "UVs",
"type": "rgb"
},
{
"f": "$(name_uv)_mask",
"shortdesc": "Mask",
"type": "f"
},
{
"rgb": "$(name_uv)_id",
"shortdesc": "ID",
"type": "rgb"
}
],
"parameters": [
{
"control": "None",
"default": 8,
"label": "Rows",
"max": 30,
"min": 0,
"name": "rows",
"step": 1,
"type": "float"
},
{
"control": "None",
"default": 18,
"label": "Columns",
"max": 40,
"min": 0,
"name": "columns",
"step": 1,
"type": "float"
}
],
"shortdesc": "Circular Bricks"
},
"type": "shader"
}
{
"connections": [
{
"from": "graph",
"from_port": 0,
"to": "blend_5",
"to_port": 1
},
{
"from": "tiler_4",
"from_port": 2,
"to": "custom_uv_2",
"to_port": 1
},
{
"from": "translate_3",
"from_port": 0,
"to": "tiler_4",
"to_port": 0
},
{
"from": "translate_4",
"from_port": 0,
"to": "custom_uv_2",
"to_port": 0
},
{
"from": "graph",
"from_port": 0,
"to": "translate_3",
"to_port": 0
},
{
"from": "blend_5",
"from_port": 0,
"to": "translate_4",
"to_port": 0
},
{
"from": "gen_inputs",
"from_port": 0,
"to": "blend_5",
"to_port": 0
},
{
"from": "custom_uv_2",
"from_port": 0,
"to": "gen_outputs",
"to_port": 0
}
],
"label": "Tile Scales",
"longdesc": "This can be used for roofs, stone patterns or other interesting shapes.\n\nMade by Jummit.",
"name": "scales",
"node_position": {
"x": 0,
"y": 0
},
"nodes": [
{
"name": "tiler_4",
"node_position": {
"x": 641.931946,
"y": 290.662415
},
"parameters": {
"fixed_offset": 0.5,
"inputs": 0,
"offset": 0,
"overlap": 2,
"rotate": 0,
"scale": 0,
"scale_x": 1,
"scale_y": 1,
"tx": 1,
"ty": 6,
"value": 0,
"variations": false
},
"seed": 0,
"seed_locked": false,
"type": "tiler"
},
{
"name": "blend_5",
"node_position": {
"x": 385,
"y": 92
},
"parameters": {
"amount": 1,
"blend_type": 10
},
"seed": 0,
"seed_locked": false,
"type": "blend"
},
{
"name": "translate_4",
"node_position": {
"x": 648.5,
"y": 94
},
"parameters": {
"translate_x": 0,
"translate_y": 0.5
},
"seed": 0,
"seed_locked": false,
"type": "translate"
},
{
"connections": [
{
"from": "translate",
"from_port": 0,
"to": "mirror",
"to_port": 0
},
{
"from": "shape_3",
"from_port": 0,
"to": "translate_2",
"to_port": 0
},
{
"from": "blend_3",
"from_port": 0,
"to": "blend_2",
"to_port": 1
},
{
"from": "mirror",
"from_port": 0,
"to": "invert_2",
"to_port": 0
},
{
"from": "invert_2",
"from_port": 0,
"to": "blend_2",
"to_port": 0
},
{
"from": "translate_2",
"from_port": 0,
"to": "invert_3",
"to_port": 0
},
{
"from": "invert_3",
"from_port": 0,
"to": "blend_3",
"to_port": 1
},
{
"from": "shape_3",
"from_port": 0,
"to": "blend_3",
"to_port": 0
},
{
"from": "shape_3",
"from_port": 0,
"to": "translate",
"to_port": 0
},
{
"from": "blend_2",
"from_port": 0,
"to": "gen_outputs",
"to_port": 0
}
],
"label": "Scale",
"longdesc": "",
"name": "graph",
"node_position": {
"x": 107.019791,
"y": 282.835144
},
"nodes": [
{
"name": "shape_3",
"node_position": {
"x": -794,
"y": 317
},
"parameters": {
"edge": 0,
"radius": 1,
"shape": 0,
"sides": 4
},
"seed": 0,
"seed_locked": false,
"type": "shape"
},
{
"name": "translate",
"node_position": {
"x": -593,
"y": 248
},
"parameters": {
"translate_x": -0.5,
"translate_y": 0.175
},
"seed": 0,
"seed_locked": false,
"type": "translate"
},
{
"name": "mirror",
"node_position": {
"x": -339,
"y": 240
},
"parameters": {
"direction": 0,
"flip_sides": true,
"offset": 0
},
"seed": 0,
"seed_locked": false,
"type": "mirror"
},
{
"name": "invert_2",
"node_position": {
"x": -135,
"y": 240
},
"parameters": {
},
"seed": 0,
"seed_locked": false,
"type": "invert"
},
{
"name": "translate_2",
"node_position": {
"x": -616.5,
"y": 393
},
"parameters": {
"translate_x": 0,
"translate_y": 0.45
},
"seed": 0,
"seed_locked": false,
"type": "translate"
},
{
"name": "invert_3",
"node_position": {
"x": -348,
"y": 397
},
"parameters": {
},
"seed": 0,
"seed_locked": false,
"type": "invert"
},
{
"name": "blend_3",
"node_position": {
"x": -153,
"y": 325
},
"parameters": {
"amount": 1,
"blend_type": 10
},
"seed": 0,
"seed_locked": false,
"type": "blend"
},
{
"name": "blend_2",
"node_position": {
"x": 85,
"y": 240
},
"parameters": {
"amount": 1,
"blend_type": 10
},
"seed": 0,
"seed_locked": false,
"type": "blend"
},
{
"name": "gen_inputs",
"node_position": {
"x": -1060,
"y": 309.926392
},
"parameters": {
},
"ports": [
],
"seed": 0,
"seed_locked": false,
"type": "ios"
},
{
"name": "gen_outputs",
"node_position": {
"x": 336.926422,
"y": 238.718369
},
"parameters": {
},
"ports": [
{
"name": "port0",
"type": "rgba"
}
],
"seed": 0,
"seed_locked": false,
"type": "ios"
},
{
"name": "gen_parameters",
"node_position": {
"x": -285.6875,
"y": 95
},
"parameters": {
},
"seed": 0,
"seed_locked": false,
"type": "remote",
"widgets": [
]
}
],
"parameters": {
},
"seed": 0,
"seed_locked": false,
"shortdesc": "",
"type": "graph"
},
{
"name": "translate_3",
"node_position": {
"x": 367.431946,
"y": 299.662384
},
"parameters": {
"translate_x": 0,
"translate_y": 0.5
},
"seed": 0,
"seed_locked": false,
"type": "translate"
},
{
"name": "custom_uv_2",
"node_position": {
"x": 950.211121,
"y": 94.632004
},
"parameters": {
"inputs": 0,
"rotate": 0,
"scale": 0,
"sx": 1,
"sy": 1,
"variations": false
},
"seed": 0,
"seed_locked": false,
"type": "custom_uv"
},
{
"name": "gen_inputs",
"node_position": {
"x": -60,
"y": 90.865761
},
"parameters": {
},
"ports": [
{
"name": "Color",
"type": "rgb"
}
],
"seed": 0,
"seed_locked": false,
"type": "ios"
},
{
"name": "gen_outputs",
"node_position": {
"x": 1274.211182,
"y": 95.865753
},
"parameters": {
},
"ports": [
{
"name": "Color",
"type": "rgb"
}
],
"seed": 0,
"seed_locked": false,
"type": "ios"
},
{
"name": "gen_parameters",
"node_position": {
"x": 68.677216,
"y": -377
},
"parameters": {
},
"seed": 0,
"seed_locked": false,
"type": "remote",
"widgets": [
]
}
],
"parameters": {
},
"seed": 0,
"seed_locked": false,
"shortdesc": "Tile in the shape of scales",
"type": "graph"
}