{
	"name": "iching",
	"node_position": {
		"x": 0,
		"y": 0
	},
	"parameters": {
		"columns": 4,
		"rows": 4
	},
	"shader_model": {
		"code": "",
		"global": "float IChing(vec2 uv, float seed) {\n\tint value = int(32.0*rand(floor(uv)+vec2(seed)));\n\tfloat base = step(0.5, fract(fract(uv.y)*6.5))*step(0.04, fract(uv.y+0.02))*step(0.2, fract(uv.x+0.1));\n\tint bit = int(fract(uv.y)*6.5);\n\treturn base*step(0.1*step(float(bit & value), 0.5), fract(uv.x+0.55));\n}\n\n\n",
		"inputs": [

		],
		"instance": "",
		"longdesc": "This node generates a grid of random I Ching hexagrams.",
		"name": "I Ching",
		"outputs": [
			{
				"f": "IChing(vec2($columns, $rows)*$uv, float($seed))",
				"longdesc": "A greyscale image showing random I Ching hexagrams.",
				"shortdesc": "Output",
				"type": "f"
			}
		],
		"parameters": [
			{
				"control": "None",
				"default": 0,
				"label": "Size X",
				"longdesc": "The number of columns of the grid",
				"max": 32,
				"min": 2,
				"name": "columns",
				"shortdesc": "Size.x",
				"step": 1,
				"type": "float"
			},
			{
				"control": "None",
				"default": 0,
				"label": "Size Y",
				"longdesc": "The number of rows of the grid",
				"max": 32,
				"min": 2,
				"name": "rows",
				"shortdesc": "Size.y",
				"step": 1,
				"type": "float"
			}
		],
		"shortdesc": "I Ching hexagrams generator"
	},
	"type": "shader"
}