{ "xzbt": "0.1", "meta": { "id": "mechanical-abstraction", "name": "Rotating mechanical abstraction", "version": "1.0.0", "description": "PRD 130 challenge 5; generic visual primitives only." }, "runtime": { "seed": 4204 }, "visuals": { "scene": { "coordinateSpace": "virtual", "width": 960, "height": 540, "background": "#101d25" }, "systems": { "wheel": { "type": "graphic", "content": { "outer": { "type": "ring", "position": { "x": 480, "y": 270 }, "radius": 160, "innerRadius": 158, "style": { "fill": "#72c4bd" } }, "inner": { "type": "ring", "position": { "x": 480, "y": 270 }, "radius": 125, "innerRadius": 123, "style": { "fill": "#e1bd7c" } }, "hub": { "type": "ring", "position": { "x": 480, "y": 270 }, "radius": 38, "innerRadius": 36, "style": { "fill": "#e1bd7c" } } } }, "spokes": { "type": "repeater", "count": 12, "distribution": { "type": "point", "position": { "x": 480, "y": 270 } }, "repeat": { "type": "group", "transform": { "rotation": { "op": "multiply", "args": [ { "ref": "repeat.fraction" }, 330 ] } }, "behaviors": [ { "type": "rotate", "speed": 12 } ], "children": { "bar": { "type": "rectangle", "position": { "x": 40, "y": -4 }, "size": { "width": 85, "height": 8 }, "style": { "fill": "#e1bd7c" } } } } } } } }