├── .gitignore ├── 16-braids ├── sandbox.config.json ├── braids.png ├── README.md ├── scratch │ ├── package.json │ ├── sketch.js │ └── package-lock.json ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 01-lines-tiled ├── sandbox.config.json ├── lines-tiled.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 02-lines-tiled ├── sandbox.config.json ├── lines-tiled-2.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 03-lines-displaced ├── sandbox.config.json ├── lines-displaced.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 04-curves-tiled ├── sandbox.config.json ├── curves-tiled.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 07-curve-repeated ├── sandbox.config.json ├── curve-repeated.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 09-shapes-tiled ├── sandbox.config.json ├── shapes-tiled.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 10-squares-displaced ├── sandbox.config.json ├── squares-displaced.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 12-squares-recursive ├── sandbox.config.json ├── squares-recursive.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 13-triangle-recursive ├── sandbox.config.json ├── triangle-recursive.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 14-branches-circular ├── sandbox.config.json ├── branches-circular.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 15-shapes-tiled-colors ├── sandbox.config.json ├── shapes-tiled-colors.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 05-lines-displaced-curved ├── sandbox.config.json ├── lines-displaced-curved.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 06-lines-displaced-curved ├── sandbox.config.json ├── lines-displaced-curved-2.png ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json ├── 11-circle-displaced-repeated ├── sandbox.config.json ├── circle-displaced-repeated.png ├── scratch │ ├── package.json │ ├── sketch.js │ └── package-lock.json ├── README.md ├── package.json ├── index.html ├── sketch.js └── package-lock.json └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | .cache/ 4 | /tmp/ 5 | -------------------------------------------------------------------------------- /16-braids/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /01-lines-tiled/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /02-lines-tiled/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /03-lines-displaced/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /04-curves-tiled/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /07-curve-repeated/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /09-shapes-tiled/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /10-squares-displaced/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /12-squares-recursive/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /13-triangle-recursive/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /14-branches-circular/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /15-shapes-tiled-colors/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /05-lines-displaced-curved/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /06-lines-displaced-curved/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /11-circle-displaced-repeated/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "template": "parcel" 3 | } 4 | -------------------------------------------------------------------------------- /16-braids/braids.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/16-braids/braids.png -------------------------------------------------------------------------------- /01-lines-tiled/lines-tiled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/01-lines-tiled/lines-tiled.png -------------------------------------------------------------------------------- /02-lines-tiled/lines-tiled-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/02-lines-tiled/lines-tiled-2.png -------------------------------------------------------------------------------- /04-curves-tiled/curves-tiled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/04-curves-tiled/curves-tiled.png -------------------------------------------------------------------------------- /09-shapes-tiled/shapes-tiled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/09-shapes-tiled/shapes-tiled.png -------------------------------------------------------------------------------- /03-lines-displaced/lines-displaced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/03-lines-displaced/lines-displaced.png -------------------------------------------------------------------------------- /07-curve-repeated/curve-repeated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/07-curve-repeated/curve-repeated.png -------------------------------------------------------------------------------- /10-squares-displaced/squares-displaced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/10-squares-displaced/squares-displaced.png -------------------------------------------------------------------------------- /12-squares-recursive/squares-recursive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/12-squares-recursive/squares-recursive.png -------------------------------------------------------------------------------- /14-branches-circular/branches-circular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/14-branches-circular/branches-circular.png -------------------------------------------------------------------------------- /13-triangle-recursive/triangle-recursive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/13-triangle-recursive/triangle-recursive.png -------------------------------------------------------------------------------- /15-shapes-tiled-colors/shapes-tiled-colors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/15-shapes-tiled-colors/shapes-tiled-colors.png -------------------------------------------------------------------------------- /05-lines-displaced-curved/lines-displaced-curved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/05-lines-displaced-curved/lines-displaced-curved.png -------------------------------------------------------------------------------- /06-lines-displaced-curved/lines-displaced-curved-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/06-lines-displaced-curved/lines-displaced-curved-2.png -------------------------------------------------------------------------------- /11-circle-displaced-repeated/circle-displaced-repeated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhyfritz/generative-art-speedrun-examples/HEAD/11-circle-displaced-repeated/circle-displaced-repeated.png -------------------------------------------------------------------------------- /16-braids/README.md: -------------------------------------------------------------------------------- 1 | # Colored braids 2 | 3 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
4 |
5 |
6 |
7 |
10 |
11 |
10 |
11 |
12 | ### [Tiled horizontal and vertical lines](02-lines-tiled/)
13 |
14 |
15 |
16 |
17 |
18 | ### [Displaced lines](03-lines-displaced/)
19 |
20 |
21 |
22 |
23 |
24 | ### [Tiled curves](04-curves-tiled/)
25 |
26 |
27 |
28 |
29 |
30 | ### [Displaced curved lines](05-lines-displaced-curved/)
31 |
32 |
33 |
34 |
35 |
36 | ### [Displaced (center) curved lines ("Joy Division cover")](06-lines-displaced-curved/)
37 |
38 |
39 |
40 |
41 |
42 | ### [Repeated curve](07-curve-repeated/)
43 |
44 |
45 |
46 |
47 |
48 | ### [Tiled shapes](09-shapes-tiled/)
49 |
50 |
51 |
52 |
53 |
54 | ### [Displaced squares ("Cubic disarray")](10-squares-displaced/)
55 |
56 |
57 |
58 |
59 |
60 | ### [Displaced repeated circle](11-circle-displaced-repeated/)
61 |
62 |
63 |
64 |
65 |
66 | ### [Recursive squares](12-squares-recursive/)
67 |
68 |
69 |
70 |
71 |
72 | ### [Recursive displaced repeated triangle](13-triangle-recursive/)
73 |
74 |
75 |
76 |
77 |
78 | ### [Circular branches](14-branches-circular/)
79 |
80 |
81 |
82 |
83 |
84 | ### [Colored tiled shapes](15-shapes-tiled-colors/)
85 |
86 |
87 |
88 |
89 |
90 | ### [Colored braids](16-braids/)
91 |
92 |
93 |
94 |
95 |
--------------------------------------------------------------------------------
/13-triangle-recursive/sketch.js:
--------------------------------------------------------------------------------
1 | const canvasSketch = require("canvas-sketch");
2 | const random = require("random");
3 |
4 | const size = 620;
5 |
6 | const settings = {
7 | dimensions: [size, size]
8 | };
9 |
10 | const margin = 60;
11 | const sizeInner = size - 2 * margin;
12 |
13 | const maxLevel = 3;
14 | const repeat = 20;
15 |
16 | const sketch = ({ canvas, context, width, height }) => {
17 | canvas.addEventListener("click", render);
18 |
19 | function render() {
20 | context.fillStyle = "white";
21 | context.fillRect(0, 0, width, height);
22 | context.save();
23 | context.translate(margin, margin);
24 | draw(
25 | context,
26 | { x: sizeInner / 2 + off1(), y: 0 + off1() },
27 | { x: 0 + off1(), y: sizeInner + off1() },
28 | { x: sizeInner + off1(), y: sizeInner + off1() },
29 | 1,
30 | maxLevel
31 | );
32 | context.restore();
33 | }
34 |
35 | return render;
36 | };
37 |
38 | canvasSketch(sketch, settings);
39 |
40 | function draw(context, p1, p2, p3, level, maxLevel) {
41 | const midpoints = [
42 | {
43 | x: p2.x + (p3.x - p2.x) * 0.25 + off1(),
44 | y: p1.y + (p2.y - p1.y) / 2 + off1()
45 | },
46 | {
47 | x: p2.x + (p3.x - p2.x) * 0.75 + off1(),
48 | y: p1.y + (p2.y - p1.y) / 2 + off1()
49 | },
50 | { x: p2.x + (p3.x - p2.x) * 0.5 + off1(), y: p2.y + off1() }
51 | ];
52 |
53 | if (level === maxLevel) {
54 | triangle(context, p1, midpoints[0], midpoints[1]);
55 | triangle(context, midpoints[0], p2, midpoints[2]);
56 | triangle(context, midpoints[1], midpoints[2], p3);
57 | for (let i = 0; i < repeat; i += 1) {
58 | triangle(
59 | context,
60 | { x: p1.x + off2(), y: p1.y + off2() },
61 | { x: midpoints[0].x + off2(), y: midpoints[0].y + off2() },
62 | { x: midpoints[1].x + off2(), y: midpoints[1].y + off2() }
63 | );
64 | triangle(
65 | context,
66 | { x: midpoints[0].x + off2(), y: midpoints[0].y + off2() },
67 | { x: p2.x + off2(), y: p2.y + off2() },
68 | { x: midpoints[2].x + off2(), y: midpoints[2].y + off2() }
69 | );
70 | triangle(
71 | context,
72 | { x: midpoints[1].x + off2(), y: midpoints[1].y + off2() },
73 | { x: midpoints[2].x + off2(), y: midpoints[2].y + off2() },
74 | { x: p3.x + off2(), y: p3.y + off2() }
75 | );
76 | }
77 | return;
78 | }
79 |
80 | draw(context, p1, midpoints[0], midpoints[1], level + 1, maxLevel);
81 | draw(context, midpoints[0], p2, midpoints[2], level + 1, maxLevel);
82 | draw(context, midpoints[1], midpoints[2], p3, level + 1, maxLevel);
83 | }
84 |
85 | function triangle(context, p1, p2, p3) {
86 | context.beginPath();
87 | context.strokeStyle = "rgba(0,0,0,0.25)";
88 | context.lineWidth = 2;
89 | context.moveTo(p1.x, p1.y);
90 | context.lineTo(p2.x, p2.y);
91 | context.lineTo(p3.x, p3.y);
92 | context.closePath();
93 | context.stroke();
94 | }
95 |
96 | function off1() {
97 | return random.normal(0, 8)();
98 | }
99 |
100 | function off2() {
101 | return random.normal(0, 4)();
102 | }
103 |
--------------------------------------------------------------------------------
/16-braids/scratch/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "scratch",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "canvas-sketch": {
8 | "version": "0.2.0",
9 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
10 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
11 | "requires": {
12 | "convert-length": "^1.0.1",
13 | "dateformat": "^3.0.3",
14 | "deep-equal": "^1.0.1",
15 | "defined": "^1.0.0",
16 | "get-canvas-context": "^1.0.2",
17 | "is-class": "0.0.5",
18 | "is-dom": "^1.0.9",
19 | "is-promise": "^2.1.0",
20 | "object-assign": "^4.1.1",
21 | "pad-left": "^2.1.0",
22 | "right-now": "^1.0.0",
23 | "two.js": "^0.7.0-beta.1"
24 | }
25 | },
26 | "convert-length": {
27 | "version": "1.0.1",
28 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
29 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
30 | "requires": {
31 | "defined": "^1.0.0"
32 | }
33 | },
34 | "dateformat": {
35 | "version": "3.0.3",
36 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
37 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
38 | },
39 | "deep-equal": {
40 | "version": "1.0.1",
41 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
42 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
43 | },
44 | "defined": {
45 | "version": "1.0.0",
46 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
47 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
48 | },
49 | "get-canvas-context": {
50 | "version": "1.0.2",
51 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
52 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
53 | },
54 | "is-class": {
55 | "version": "0.0.5",
56 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
57 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
58 | },
59 | "is-dom": {
60 | "version": "1.0.9",
61 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
62 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
63 | },
64 | "is-promise": {
65 | "version": "2.1.0",
66 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
67 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
68 | },
69 | "object-assign": {
70 | "version": "4.1.1",
71 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
72 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
73 | },
74 | "pad-left": {
75 | "version": "2.1.0",
76 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
77 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
78 | "requires": {
79 | "repeat-string": "^1.5.4"
80 | }
81 | },
82 | "repeat-string": {
83 | "version": "1.6.1",
84 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
85 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
86 | },
87 | "right-now": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
90 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
91 | },
92 | "two.js": {
93 | "version": "0.7.0-beta.3",
94 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
95 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
96 | }
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/01-lines-tiled/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "01-lines-tiled",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "canvas-sketch": {
8 | "version": "0.2.0",
9 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
10 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
11 | "requires": {
12 | "convert-length": "^1.0.1",
13 | "dateformat": "^3.0.3",
14 | "deep-equal": "^1.0.1",
15 | "defined": "^1.0.0",
16 | "get-canvas-context": "^1.0.2",
17 | "is-class": "0.0.5",
18 | "is-dom": "^1.0.9",
19 | "is-promise": "^2.1.0",
20 | "object-assign": "^4.1.1",
21 | "pad-left": "^2.1.0",
22 | "right-now": "^1.0.0",
23 | "two.js": "^0.7.0-beta.1"
24 | }
25 | },
26 | "convert-length": {
27 | "version": "1.0.1",
28 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
29 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
30 | "requires": {
31 | "defined": "^1.0.0"
32 | }
33 | },
34 | "dateformat": {
35 | "version": "3.0.3",
36 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
37 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
38 | },
39 | "deep-equal": {
40 | "version": "1.0.1",
41 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
42 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
43 | },
44 | "defined": {
45 | "version": "1.0.0",
46 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
47 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
48 | },
49 | "get-canvas-context": {
50 | "version": "1.0.2",
51 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
52 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
53 | },
54 | "is-class": {
55 | "version": "0.0.5",
56 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
57 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
58 | },
59 | "is-dom": {
60 | "version": "1.0.9",
61 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
62 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
63 | },
64 | "is-promise": {
65 | "version": "2.1.0",
66 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
67 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
68 | },
69 | "object-assign": {
70 | "version": "4.1.1",
71 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
72 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
73 | },
74 | "pad-left": {
75 | "version": "2.1.0",
76 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
77 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
78 | "requires": {
79 | "repeat-string": "^1.5.4"
80 | }
81 | },
82 | "repeat-string": {
83 | "version": "1.6.1",
84 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
85 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
86 | },
87 | "right-now": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
90 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
91 | },
92 | "two.js": {
93 | "version": "0.7.0-beta.3",
94 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
95 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
96 | }
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/02-lines-tiled/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "02-lines-tiled",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "canvas-sketch": {
8 | "version": "0.2.0",
9 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
10 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
11 | "requires": {
12 | "convert-length": "^1.0.1",
13 | "dateformat": "^3.0.3",
14 | "deep-equal": "^1.0.1",
15 | "defined": "^1.0.0",
16 | "get-canvas-context": "^1.0.2",
17 | "is-class": "0.0.5",
18 | "is-dom": "^1.0.9",
19 | "is-promise": "^2.1.0",
20 | "object-assign": "^4.1.1",
21 | "pad-left": "^2.1.0",
22 | "right-now": "^1.0.0",
23 | "two.js": "^0.7.0-beta.1"
24 | }
25 | },
26 | "convert-length": {
27 | "version": "1.0.1",
28 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
29 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
30 | "requires": {
31 | "defined": "^1.0.0"
32 | }
33 | },
34 | "dateformat": {
35 | "version": "3.0.3",
36 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
37 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
38 | },
39 | "deep-equal": {
40 | "version": "1.0.1",
41 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
42 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
43 | },
44 | "defined": {
45 | "version": "1.0.0",
46 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
47 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
48 | },
49 | "get-canvas-context": {
50 | "version": "1.0.2",
51 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
52 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
53 | },
54 | "is-class": {
55 | "version": "0.0.5",
56 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
57 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
58 | },
59 | "is-dom": {
60 | "version": "1.0.9",
61 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
62 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
63 | },
64 | "is-promise": {
65 | "version": "2.1.0",
66 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
67 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
68 | },
69 | "object-assign": {
70 | "version": "4.1.1",
71 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
72 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
73 | },
74 | "pad-left": {
75 | "version": "2.1.0",
76 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
77 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
78 | "requires": {
79 | "repeat-string": "^1.5.4"
80 | }
81 | },
82 | "repeat-string": {
83 | "version": "1.6.1",
84 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
85 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
86 | },
87 | "right-now": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
90 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
91 | },
92 | "two.js": {
93 | "version": "0.7.0-beta.3",
94 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
95 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
96 | }
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/04-curves-tiled/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "04-curves-tiled",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "canvas-sketch": {
8 | "version": "0.2.0",
9 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
10 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
11 | "requires": {
12 | "convert-length": "^1.0.1",
13 | "dateformat": "^3.0.3",
14 | "deep-equal": "^1.0.1",
15 | "defined": "^1.0.0",
16 | "get-canvas-context": "^1.0.2",
17 | "is-class": "0.0.5",
18 | "is-dom": "^1.0.9",
19 | "is-promise": "^2.1.0",
20 | "object-assign": "^4.1.1",
21 | "pad-left": "^2.1.0",
22 | "right-now": "^1.0.0",
23 | "two.js": "^0.7.0-beta.1"
24 | }
25 | },
26 | "convert-length": {
27 | "version": "1.0.1",
28 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
29 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
30 | "requires": {
31 | "defined": "^1.0.0"
32 | }
33 | },
34 | "dateformat": {
35 | "version": "3.0.3",
36 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
37 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
38 | },
39 | "deep-equal": {
40 | "version": "1.0.1",
41 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
42 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
43 | },
44 | "defined": {
45 | "version": "1.0.0",
46 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
47 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
48 | },
49 | "get-canvas-context": {
50 | "version": "1.0.2",
51 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
52 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
53 | },
54 | "is-class": {
55 | "version": "0.0.5",
56 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
57 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
58 | },
59 | "is-dom": {
60 | "version": "1.0.9",
61 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
62 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
63 | },
64 | "is-promise": {
65 | "version": "2.1.0",
66 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
67 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
68 | },
69 | "object-assign": {
70 | "version": "4.1.1",
71 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
72 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
73 | },
74 | "pad-left": {
75 | "version": "2.1.0",
76 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
77 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
78 | "requires": {
79 | "repeat-string": "^1.5.4"
80 | }
81 | },
82 | "repeat-string": {
83 | "version": "1.6.1",
84 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
85 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
86 | },
87 | "right-now": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
90 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
91 | },
92 | "two.js": {
93 | "version": "0.7.0-beta.3",
94 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
95 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
96 | }
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/09-shapes-tiled/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "09-shapes-tiled",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "canvas-sketch": {
8 | "version": "0.2.0",
9 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
10 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
11 | "requires": {
12 | "convert-length": "^1.0.1",
13 | "dateformat": "^3.0.3",
14 | "deep-equal": "^1.0.1",
15 | "defined": "^1.0.0",
16 | "get-canvas-context": "^1.0.2",
17 | "is-class": "0.0.5",
18 | "is-dom": "^1.0.9",
19 | "is-promise": "^2.1.0",
20 | "object-assign": "^4.1.1",
21 | "pad-left": "^2.1.0",
22 | "right-now": "^1.0.0",
23 | "two.js": "^0.7.0-beta.1"
24 | }
25 | },
26 | "convert-length": {
27 | "version": "1.0.1",
28 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
29 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
30 | "requires": {
31 | "defined": "^1.0.0"
32 | }
33 | },
34 | "dateformat": {
35 | "version": "3.0.3",
36 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
37 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
38 | },
39 | "deep-equal": {
40 | "version": "1.0.1",
41 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
42 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
43 | },
44 | "defined": {
45 | "version": "1.0.0",
46 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
47 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
48 | },
49 | "get-canvas-context": {
50 | "version": "1.0.2",
51 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
52 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
53 | },
54 | "is-class": {
55 | "version": "0.0.5",
56 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
57 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
58 | },
59 | "is-dom": {
60 | "version": "1.0.9",
61 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
62 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
63 | },
64 | "is-promise": {
65 | "version": "2.1.0",
66 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
67 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
68 | },
69 | "object-assign": {
70 | "version": "4.1.1",
71 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
72 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
73 | },
74 | "pad-left": {
75 | "version": "2.1.0",
76 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
77 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
78 | "requires": {
79 | "repeat-string": "^1.5.4"
80 | }
81 | },
82 | "repeat-string": {
83 | "version": "1.6.1",
84 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
85 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
86 | },
87 | "right-now": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
90 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
91 | },
92 | "two.js": {
93 | "version": "0.7.0-beta.3",
94 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
95 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
96 | }
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/03-lines-displaced/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "03-lines-displaced",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "canvas-sketch": {
8 | "version": "0.2.0",
9 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
10 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
11 | "requires": {
12 | "convert-length": "^1.0.1",
13 | "dateformat": "^3.0.3",
14 | "deep-equal": "^1.0.1",
15 | "defined": "^1.0.0",
16 | "get-canvas-context": "^1.0.2",
17 | "is-class": "0.0.5",
18 | "is-dom": "^1.0.9",
19 | "is-promise": "^2.1.0",
20 | "object-assign": "^4.1.1",
21 | "pad-left": "^2.1.0",
22 | "right-now": "^1.0.0",
23 | "two.js": "^0.7.0-beta.1"
24 | }
25 | },
26 | "convert-length": {
27 | "version": "1.0.1",
28 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
29 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
30 | "requires": {
31 | "defined": "^1.0.0"
32 | }
33 | },
34 | "dateformat": {
35 | "version": "3.0.3",
36 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
37 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
38 | },
39 | "deep-equal": {
40 | "version": "1.0.1",
41 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
42 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
43 | },
44 | "defined": {
45 | "version": "1.0.0",
46 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
47 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
48 | },
49 | "get-canvas-context": {
50 | "version": "1.0.2",
51 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
52 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
53 | },
54 | "is-class": {
55 | "version": "0.0.5",
56 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
57 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
58 | },
59 | "is-dom": {
60 | "version": "1.0.9",
61 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
62 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
63 | },
64 | "is-promise": {
65 | "version": "2.1.0",
66 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
67 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
68 | },
69 | "object-assign": {
70 | "version": "4.1.1",
71 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
72 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
73 | },
74 | "pad-left": {
75 | "version": "2.1.0",
76 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
77 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
78 | "requires": {
79 | "repeat-string": "^1.5.4"
80 | }
81 | },
82 | "repeat-string": {
83 | "version": "1.6.1",
84 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
85 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
86 | },
87 | "right-now": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
90 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
91 | },
92 | "two.js": {
93 | "version": "0.7.0-beta.3",
94 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
95 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
96 | }
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/10-squares-displaced/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "10-squares-displaced",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "canvas-sketch": {
8 | "version": "0.2.0",
9 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
10 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
11 | "requires": {
12 | "convert-length": "^1.0.1",
13 | "dateformat": "^3.0.3",
14 | "deep-equal": "^1.0.1",
15 | "defined": "^1.0.0",
16 | "get-canvas-context": "^1.0.2",
17 | "is-class": "0.0.5",
18 | "is-dom": "^1.0.9",
19 | "is-promise": "^2.1.0",
20 | "object-assign": "^4.1.1",
21 | "pad-left": "^2.1.0",
22 | "right-now": "^1.0.0",
23 | "two.js": "^0.7.0-beta.1"
24 | }
25 | },
26 | "convert-length": {
27 | "version": "1.0.1",
28 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
29 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
30 | "requires": {
31 | "defined": "^1.0.0"
32 | }
33 | },
34 | "dateformat": {
35 | "version": "3.0.3",
36 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
37 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
38 | },
39 | "deep-equal": {
40 | "version": "1.0.1",
41 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
42 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
43 | },
44 | "defined": {
45 | "version": "1.0.0",
46 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
47 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
48 | },
49 | "get-canvas-context": {
50 | "version": "1.0.2",
51 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
52 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
53 | },
54 | "is-class": {
55 | "version": "0.0.5",
56 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
57 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
58 | },
59 | "is-dom": {
60 | "version": "1.0.9",
61 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
62 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
63 | },
64 | "is-promise": {
65 | "version": "2.1.0",
66 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
67 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
68 | },
69 | "object-assign": {
70 | "version": "4.1.1",
71 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
72 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
73 | },
74 | "pad-left": {
75 | "version": "2.1.0",
76 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
77 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
78 | "requires": {
79 | "repeat-string": "^1.5.4"
80 | }
81 | },
82 | "repeat-string": {
83 | "version": "1.6.1",
84 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
85 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
86 | },
87 | "right-now": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
90 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
91 | },
92 | "two.js": {
93 | "version": "0.7.0-beta.3",
94 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
95 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
96 | }
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/12-squares-recursive/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "12-squares-recursive",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "canvas-sketch": {
8 | "version": "0.2.0",
9 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
10 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
11 | "requires": {
12 | "convert-length": "^1.0.1",
13 | "dateformat": "^3.0.3",
14 | "deep-equal": "^1.0.1",
15 | "defined": "^1.0.0",
16 | "get-canvas-context": "^1.0.2",
17 | "is-class": "0.0.5",
18 | "is-dom": "^1.0.9",
19 | "is-promise": "^2.1.0",
20 | "object-assign": "^4.1.1",
21 | "pad-left": "^2.1.0",
22 | "right-now": "^1.0.0",
23 | "two.js": "^0.7.0-beta.1"
24 | }
25 | },
26 | "convert-length": {
27 | "version": "1.0.1",
28 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
29 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
30 | "requires": {
31 | "defined": "^1.0.0"
32 | }
33 | },
34 | "dateformat": {
35 | "version": "3.0.3",
36 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
37 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
38 | },
39 | "deep-equal": {
40 | "version": "1.0.1",
41 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
42 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
43 | },
44 | "defined": {
45 | "version": "1.0.0",
46 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
47 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
48 | },
49 | "get-canvas-context": {
50 | "version": "1.0.2",
51 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
52 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
53 | },
54 | "is-class": {
55 | "version": "0.0.5",
56 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
57 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
58 | },
59 | "is-dom": {
60 | "version": "1.0.9",
61 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
62 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
63 | },
64 | "is-promise": {
65 | "version": "2.1.0",
66 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
67 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
68 | },
69 | "object-assign": {
70 | "version": "4.1.1",
71 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
72 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
73 | },
74 | "pad-left": {
75 | "version": "2.1.0",
76 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
77 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
78 | "requires": {
79 | "repeat-string": "^1.5.4"
80 | }
81 | },
82 | "repeat-string": {
83 | "version": "1.6.1",
84 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
85 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
86 | },
87 | "right-now": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
90 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
91 | },
92 | "two.js": {
93 | "version": "0.7.0-beta.3",
94 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
95 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
96 | }
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/14-branches-circular/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "14-branches-circular",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "canvas-sketch": {
8 | "version": "0.2.0",
9 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
10 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
11 | "requires": {
12 | "convert-length": "^1.0.1",
13 | "dateformat": "^3.0.3",
14 | "deep-equal": "^1.0.1",
15 | "defined": "^1.0.0",
16 | "get-canvas-context": "^1.0.2",
17 | "is-class": "0.0.5",
18 | "is-dom": "^1.0.9",
19 | "is-promise": "^2.1.0",
20 | "object-assign": "^4.1.1",
21 | "pad-left": "^2.1.0",
22 | "right-now": "^1.0.0",
23 | "two.js": "^0.7.0-beta.1"
24 | }
25 | },
26 | "convert-length": {
27 | "version": "1.0.1",
28 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
29 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
30 | "requires": {
31 | "defined": "^1.0.0"
32 | }
33 | },
34 | "dateformat": {
35 | "version": "3.0.3",
36 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
37 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
38 | },
39 | "deep-equal": {
40 | "version": "1.0.1",
41 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
42 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
43 | },
44 | "defined": {
45 | "version": "1.0.0",
46 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
47 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
48 | },
49 | "get-canvas-context": {
50 | "version": "1.0.2",
51 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
52 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
53 | },
54 | "is-class": {
55 | "version": "0.0.5",
56 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
57 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
58 | },
59 | "is-dom": {
60 | "version": "1.0.9",
61 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
62 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
63 | },
64 | "is-promise": {
65 | "version": "2.1.0",
66 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
67 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
68 | },
69 | "object-assign": {
70 | "version": "4.1.1",
71 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
72 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
73 | },
74 | "pad-left": {
75 | "version": "2.1.0",
76 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
77 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
78 | "requires": {
79 | "repeat-string": "^1.5.4"
80 | }
81 | },
82 | "repeat-string": {
83 | "version": "1.6.1",
84 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
85 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
86 | },
87 | "right-now": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
90 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
91 | },
92 | "two.js": {
93 | "version": "0.7.0-beta.3",
94 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
95 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
96 | }
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/05-lines-displaced-curved/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "05-lines-displaced-curved",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "canvas-sketch": {
8 | "version": "0.2.0",
9 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
10 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
11 | "requires": {
12 | "convert-length": "^1.0.1",
13 | "dateformat": "^3.0.3",
14 | "deep-equal": "^1.0.1",
15 | "defined": "^1.0.0",
16 | "get-canvas-context": "^1.0.2",
17 | "is-class": "0.0.5",
18 | "is-dom": "^1.0.9",
19 | "is-promise": "^2.1.0",
20 | "object-assign": "^4.1.1",
21 | "pad-left": "^2.1.0",
22 | "right-now": "^1.0.0",
23 | "two.js": "^0.7.0-beta.1"
24 | }
25 | },
26 | "convert-length": {
27 | "version": "1.0.1",
28 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
29 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
30 | "requires": {
31 | "defined": "^1.0.0"
32 | }
33 | },
34 | "dateformat": {
35 | "version": "3.0.3",
36 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
37 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
38 | },
39 | "deep-equal": {
40 | "version": "1.0.1",
41 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
42 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
43 | },
44 | "defined": {
45 | "version": "1.0.0",
46 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
47 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
48 | },
49 | "get-canvas-context": {
50 | "version": "1.0.2",
51 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
52 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
53 | },
54 | "is-class": {
55 | "version": "0.0.5",
56 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
57 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
58 | },
59 | "is-dom": {
60 | "version": "1.0.9",
61 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
62 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
63 | },
64 | "is-promise": {
65 | "version": "2.1.0",
66 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
67 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
68 | },
69 | "object-assign": {
70 | "version": "4.1.1",
71 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
72 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
73 | },
74 | "pad-left": {
75 | "version": "2.1.0",
76 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
77 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
78 | "requires": {
79 | "repeat-string": "^1.5.4"
80 | }
81 | },
82 | "repeat-string": {
83 | "version": "1.6.1",
84 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
85 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
86 | },
87 | "right-now": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
90 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
91 | },
92 | "two.js": {
93 | "version": "0.7.0-beta.3",
94 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
95 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
96 | }
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/16-braids/sketch.js:
--------------------------------------------------------------------------------
1 | const canvasSketch = require("canvas-sketch");
2 | const palettes = require("nice-color-palettes");
3 |
4 | const size = 620;
5 |
6 | const settings = {
7 | dimensions: [size, size]
8 | };
9 |
10 | const numRows = 10;
11 | const numCols = 20;
12 |
13 | const margin = 20;
14 | const sizeInner = size - 2 * margin;
15 | const widthCell = sizeInner / numCols;
16 | const heightCell = sizeInner / numRows;
17 | const pCross = 0.5;
18 |
19 | const sketch = ({ canvas, context, width, height }) => {
20 | canvas.addEventListener("click", render);
21 |
22 | function render() {
23 | context.fillStyle = "white";
24 | context.fillRect(0, 0, width, height);
25 | context.save();
26 | context.translate(margin, margin);
27 | const colors = genColors();
28 | context.lineWidth = Math.floor(widthCell / 4);
29 |
30 | // keep track of previous row to avoid immediately "inversing" a crossing
31 | // cf. http://rectangleworld.com/blog/archives/733
32 | // 0: no crossing, 1: crossing "right-on-top" 2: crossing: "left-on-top"
33 | const states = new Array(numCols).fill(0);
34 |
35 | for (let i = 0; i < numRows; i += 1) {
36 | for (let j = 0; j < numCols; ) {
37 | context.save();
38 | context.translate(j * widthCell, i * heightCell);
39 | const r = Math.random();
40 |
41 | if (j === numCols - 1 || r > pCross) {
42 | line(
43 | context,
44 | widthCell * 0.5,
45 | 0,
46 | widthCell * 0.5,
47 | heightCell,
48 | colors[j]
49 | );
50 | states[j] = 0;
51 | j += 1;
52 | } else {
53 | if (states[j] === 1) {
54 | crossing(
55 | context,
56 | widthCell * 0.5,
57 | 0,
58 | widthCell * 1.5,
59 | heightCell,
60 | widthCell * 1.5,
61 | 0,
62 | widthCell * 0.5,
63 | heightCell,
64 | colors[j],
65 | colors[j + 1]
66 | );
67 | } else if (states[j] === 2) {
68 | crossing(
69 | context,
70 | widthCell * 1.5,
71 | 0,
72 | widthCell * 0.5,
73 | heightCell,
74 | widthCell * 0.5,
75 | 0,
76 | widthCell * 1.5,
77 | heightCell,
78 | colors[j + 1],
79 | colors[j]
80 | );
81 | } else {
82 | if (Math.random() < 0.5) {
83 | crossing(
84 | context,
85 | widthCell * 0.5,
86 | 0,
87 | widthCell * 1.5,
88 | heightCell,
89 | widthCell * 1.5,
90 | 0,
91 | widthCell * 0.5,
92 | heightCell,
93 | colors[j],
94 | colors[j + 1]
95 | );
96 | states[j] = 1;
97 | } else {
98 | crossing(
99 | context,
100 | widthCell * 1.5,
101 | 0,
102 | widthCell * 0.5,
103 | heightCell,
104 | widthCell * 0.5,
105 | 0,
106 | widthCell * 1.5,
107 | heightCell,
108 | colors[j + 1],
109 | colors[j]
110 | );
111 | states[j] = 2;
112 | }
113 | }
114 | [colors[j], colors[j + 1]] = [colors[j + 1], colors[j]];
115 | j += 2;
116 | }
117 | context.restore();
118 | }
119 | }
120 | context.restore();
121 | }
122 |
123 | return render;
124 | };
125 |
126 | canvasSketch(sketch, settings);
127 |
128 | function genColors() {
129 | const palette = palettes[Math.floor(Math.random() * palettes.length)];
130 | const colors = [];
131 | for (let i = 0; i < numCols; i += 1) {
132 | colors.push(palette[Math.floor(Math.random() * palette.length)]);
133 | }
134 | return colors;
135 | }
136 |
137 | function line(context, x1, y1, x2, y2, color) {
138 | context.beginPath();
139 | context.strokeStyle = color;
140 | context.moveTo(x1, y1);
141 | context.lineTo(x2, y2);
142 | context.stroke();
143 | }
144 |
145 | function curve(context, x1, y1, x2, y2, color) {
146 | context.beginPath();
147 | context.strokeStyle = color;
148 | context.moveTo(x1, y1);
149 | const h = y2 - y1;
150 | context.lineTo(x1, y1 + h * 0.2);
151 | context.bezierCurveTo(x1, y1 + h * 0.6, x2, y1 + h * 0.4, x2, y1 + h * 0.8);
152 | context.lineTo(x2, y2);
153 | context.stroke();
154 | }
155 |
156 | function crossing(
157 | context,
158 | x1_1,
159 | y1_1,
160 | x1_2,
161 | y1_2,
162 | x2_1,
163 | y2_1,
164 | x2_2,
165 | y2_2,
166 | color1,
167 | color2
168 | ) {
169 | curve(context, x1_1, y1_1, x1_2, y1_2, color1);
170 | curve(context, x2_1, y2_1, x2_2, y2_2, color2);
171 | }
172 |
--------------------------------------------------------------------------------
/07-curve-repeated/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "07-curve-repeated",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "babel-runtime": {
8 | "version": "6.26.0",
9 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
10 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
11 | "requires": {
12 | "core-js": "^2.4.0",
13 | "regenerator-runtime": "^0.11.0"
14 | }
15 | },
16 | "canvas-sketch": {
17 | "version": "0.2.0",
18 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
19 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
20 | "requires": {
21 | "convert-length": "^1.0.1",
22 | "dateformat": "^3.0.3",
23 | "deep-equal": "^1.0.1",
24 | "defined": "^1.0.0",
25 | "get-canvas-context": "^1.0.2",
26 | "is-class": "0.0.5",
27 | "is-dom": "^1.0.9",
28 | "is-promise": "^2.1.0",
29 | "object-assign": "^4.1.1",
30 | "pad-left": "^2.1.0",
31 | "right-now": "^1.0.0",
32 | "two.js": "^0.7.0-beta.1"
33 | }
34 | },
35 | "convert-length": {
36 | "version": "1.0.1",
37 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
38 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
39 | "requires": {
40 | "defined": "^1.0.0"
41 | }
42 | },
43 | "core-js": {
44 | "version": "2.6.4",
45 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.4.tgz",
46 | "integrity": "sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A=="
47 | },
48 | "dateformat": {
49 | "version": "3.0.3",
50 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
51 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
52 | },
53 | "deep-equal": {
54 | "version": "1.0.1",
55 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
56 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
57 | },
58 | "defined": {
59 | "version": "1.0.0",
60 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
61 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
62 | },
63 | "get-canvas-context": {
64 | "version": "1.0.2",
65 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
66 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
67 | },
68 | "is-class": {
69 | "version": "0.0.5",
70 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
71 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
72 | },
73 | "is-dom": {
74 | "version": "1.0.9",
75 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
76 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
77 | },
78 | "is-promise": {
79 | "version": "2.1.0",
80 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
81 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
82 | },
83 | "object-assign": {
84 | "version": "4.1.1",
85 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
86 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
87 | },
88 | "ow": {
89 | "version": "0.4.0",
90 | "resolved": "https://registry.npmjs.org/ow/-/ow-0.4.0.tgz",
91 | "integrity": "sha512-kJNzxUgVd6EF5LoGs+s2/etJPwjfRDLXPTCfEgV8At77sRrV+PSFA8lcoW2HF15Qd455mIR2Stee/2MzDiFBDA=="
92 | },
93 | "ow-lite": {
94 | "version": "0.0.2",
95 | "resolved": "https://registry.npmjs.org/ow-lite/-/ow-lite-0.0.2.tgz",
96 | "integrity": "sha1-359QDmdAtlkKHpqWVzDUmo61l9E="
97 | },
98 | "pad-left": {
99 | "version": "2.1.0",
100 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
101 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
102 | "requires": {
103 | "repeat-string": "^1.5.4"
104 | }
105 | },
106 | "random": {
107 | "version": "2.0.13",
108 | "resolved": "https://registry.npmjs.org/random/-/random-2.0.13.tgz",
109 | "integrity": "sha512-vwU1O5Wm0zvGUtwj188MLrqsIs3r6cpVqhBkCJLk4yyb0z5eV846so+JwnvVJKXUkVLRzAjluakzYMz2rtjLmw==",
110 | "requires": {
111 | "babel-runtime": "^6.26.0",
112 | "ow": "^0.4.0",
113 | "ow-lite": "^0.0.2"
114 | }
115 | },
116 | "regenerator-runtime": {
117 | "version": "0.11.1",
118 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
119 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
120 | },
121 | "repeat-string": {
122 | "version": "1.6.1",
123 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
124 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
125 | },
126 | "right-now": {
127 | "version": "1.0.0",
128 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
129 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
130 | },
131 | "two.js": {
132 | "version": "0.7.0-beta.3",
133 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
134 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
135 | }
136 | }
137 | }
138 |
--------------------------------------------------------------------------------
/11-circle-displaced-repeated/scratch/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "scratch",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "babel-runtime": {
8 | "version": "6.26.0",
9 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
10 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
11 | "requires": {
12 | "core-js": "^2.4.0",
13 | "regenerator-runtime": "^0.11.0"
14 | }
15 | },
16 | "canvas-sketch": {
17 | "version": "0.2.0",
18 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
19 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
20 | "requires": {
21 | "convert-length": "^1.0.1",
22 | "dateformat": "^3.0.3",
23 | "deep-equal": "^1.0.1",
24 | "defined": "^1.0.0",
25 | "get-canvas-context": "^1.0.2",
26 | "is-class": "0.0.5",
27 | "is-dom": "^1.0.9",
28 | "is-promise": "^2.1.0",
29 | "object-assign": "^4.1.1",
30 | "pad-left": "^2.1.0",
31 | "right-now": "^1.0.0",
32 | "two.js": "^0.7.0-beta.1"
33 | }
34 | },
35 | "convert-length": {
36 | "version": "1.0.1",
37 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
38 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
39 | "requires": {
40 | "defined": "^1.0.0"
41 | }
42 | },
43 | "core-js": {
44 | "version": "2.6.5",
45 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
46 | "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A=="
47 | },
48 | "dateformat": {
49 | "version": "3.0.3",
50 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
51 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
52 | },
53 | "deep-equal": {
54 | "version": "1.0.1",
55 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
56 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
57 | },
58 | "defined": {
59 | "version": "1.0.0",
60 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
61 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
62 | },
63 | "get-canvas-context": {
64 | "version": "1.0.2",
65 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
66 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
67 | },
68 | "is-class": {
69 | "version": "0.0.5",
70 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
71 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
72 | },
73 | "is-dom": {
74 | "version": "1.0.9",
75 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
76 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
77 | },
78 | "is-promise": {
79 | "version": "2.1.0",
80 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
81 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
82 | },
83 | "object-assign": {
84 | "version": "4.1.1",
85 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
86 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
87 | },
88 | "ow": {
89 | "version": "0.4.0",
90 | "resolved": "https://registry.npmjs.org/ow/-/ow-0.4.0.tgz",
91 | "integrity": "sha512-kJNzxUgVd6EF5LoGs+s2/etJPwjfRDLXPTCfEgV8At77sRrV+PSFA8lcoW2HF15Qd455mIR2Stee/2MzDiFBDA=="
92 | },
93 | "ow-lite": {
94 | "version": "0.0.2",
95 | "resolved": "https://registry.npmjs.org/ow-lite/-/ow-lite-0.0.2.tgz",
96 | "integrity": "sha1-359QDmdAtlkKHpqWVzDUmo61l9E="
97 | },
98 | "pad-left": {
99 | "version": "2.1.0",
100 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
101 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
102 | "requires": {
103 | "repeat-string": "^1.5.4"
104 | }
105 | },
106 | "random": {
107 | "version": "2.0.13",
108 | "resolved": "https://registry.npmjs.org/random/-/random-2.0.13.tgz",
109 | "integrity": "sha512-vwU1O5Wm0zvGUtwj188MLrqsIs3r6cpVqhBkCJLk4yyb0z5eV846so+JwnvVJKXUkVLRzAjluakzYMz2rtjLmw==",
110 | "requires": {
111 | "babel-runtime": "^6.26.0",
112 | "ow": "^0.4.0",
113 | "ow-lite": "^0.0.2"
114 | }
115 | },
116 | "regenerator-runtime": {
117 | "version": "0.11.1",
118 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
119 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
120 | },
121 | "repeat-string": {
122 | "version": "1.6.1",
123 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
124 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
125 | },
126 | "right-now": {
127 | "version": "1.0.0",
128 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
129 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
130 | },
131 | "two.js": {
132 | "version": "0.7.0-beta.3",
133 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
134 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
135 | }
136 | }
137 | }
138 |
--------------------------------------------------------------------------------
/13-triangle-recursive/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "13-triangle-recursive",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "babel-runtime": {
8 | "version": "6.26.0",
9 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
10 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
11 | "requires": {
12 | "core-js": "^2.4.0",
13 | "regenerator-runtime": "^0.11.0"
14 | }
15 | },
16 | "canvas-sketch": {
17 | "version": "0.2.0",
18 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
19 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
20 | "requires": {
21 | "convert-length": "^1.0.1",
22 | "dateformat": "^3.0.3",
23 | "deep-equal": "^1.0.1",
24 | "defined": "^1.0.0",
25 | "get-canvas-context": "^1.0.2",
26 | "is-class": "0.0.5",
27 | "is-dom": "^1.0.9",
28 | "is-promise": "^2.1.0",
29 | "object-assign": "^4.1.1",
30 | "pad-left": "^2.1.0",
31 | "right-now": "^1.0.0",
32 | "two.js": "^0.7.0-beta.1"
33 | }
34 | },
35 | "convert-length": {
36 | "version": "1.0.1",
37 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
38 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
39 | "requires": {
40 | "defined": "^1.0.0"
41 | }
42 | },
43 | "core-js": {
44 | "version": "2.6.5",
45 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
46 | "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A=="
47 | },
48 | "dateformat": {
49 | "version": "3.0.3",
50 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
51 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
52 | },
53 | "deep-equal": {
54 | "version": "1.0.1",
55 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
56 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
57 | },
58 | "defined": {
59 | "version": "1.0.0",
60 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
61 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
62 | },
63 | "get-canvas-context": {
64 | "version": "1.0.2",
65 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
66 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
67 | },
68 | "is-class": {
69 | "version": "0.0.5",
70 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
71 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
72 | },
73 | "is-dom": {
74 | "version": "1.0.9",
75 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
76 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
77 | },
78 | "is-promise": {
79 | "version": "2.1.0",
80 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
81 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
82 | },
83 | "object-assign": {
84 | "version": "4.1.1",
85 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
86 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
87 | },
88 | "ow": {
89 | "version": "0.4.0",
90 | "resolved": "https://registry.npmjs.org/ow/-/ow-0.4.0.tgz",
91 | "integrity": "sha512-kJNzxUgVd6EF5LoGs+s2/etJPwjfRDLXPTCfEgV8At77sRrV+PSFA8lcoW2HF15Qd455mIR2Stee/2MzDiFBDA=="
92 | },
93 | "ow-lite": {
94 | "version": "0.0.2",
95 | "resolved": "https://registry.npmjs.org/ow-lite/-/ow-lite-0.0.2.tgz",
96 | "integrity": "sha1-359QDmdAtlkKHpqWVzDUmo61l9E="
97 | },
98 | "pad-left": {
99 | "version": "2.1.0",
100 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
101 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
102 | "requires": {
103 | "repeat-string": "^1.5.4"
104 | }
105 | },
106 | "random": {
107 | "version": "2.0.13",
108 | "resolved": "https://registry.npmjs.org/random/-/random-2.0.13.tgz",
109 | "integrity": "sha512-vwU1O5Wm0zvGUtwj188MLrqsIs3r6cpVqhBkCJLk4yyb0z5eV846so+JwnvVJKXUkVLRzAjluakzYMz2rtjLmw==",
110 | "requires": {
111 | "babel-runtime": "^6.26.0",
112 | "ow": "^0.4.0",
113 | "ow-lite": "^0.0.2"
114 | }
115 | },
116 | "regenerator-runtime": {
117 | "version": "0.11.1",
118 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
119 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
120 | },
121 | "repeat-string": {
122 | "version": "1.6.1",
123 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
124 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
125 | },
126 | "right-now": {
127 | "version": "1.0.0",
128 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
129 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
130 | },
131 | "two.js": {
132 | "version": "0.7.0-beta.3",
133 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
134 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
135 | }
136 | }
137 | }
138 |
--------------------------------------------------------------------------------
/11-circle-displaced-repeated/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "11-circle-displaced-repeated",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "babel-runtime": {
8 | "version": "6.26.0",
9 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
10 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
11 | "requires": {
12 | "core-js": "^2.4.0",
13 | "regenerator-runtime": "^0.11.0"
14 | }
15 | },
16 | "canvas-sketch": {
17 | "version": "0.2.0",
18 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
19 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
20 | "requires": {
21 | "convert-length": "^1.0.1",
22 | "dateformat": "^3.0.3",
23 | "deep-equal": "^1.0.1",
24 | "defined": "^1.0.0",
25 | "get-canvas-context": "^1.0.2",
26 | "is-class": "0.0.5",
27 | "is-dom": "^1.0.9",
28 | "is-promise": "^2.1.0",
29 | "object-assign": "^4.1.1",
30 | "pad-left": "^2.1.0",
31 | "right-now": "^1.0.0",
32 | "two.js": "^0.7.0-beta.1"
33 | }
34 | },
35 | "convert-length": {
36 | "version": "1.0.1",
37 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
38 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
39 | "requires": {
40 | "defined": "^1.0.0"
41 | }
42 | },
43 | "core-js": {
44 | "version": "2.6.4",
45 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.4.tgz",
46 | "integrity": "sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A=="
47 | },
48 | "dateformat": {
49 | "version": "3.0.3",
50 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
51 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
52 | },
53 | "deep-equal": {
54 | "version": "1.0.1",
55 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
56 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
57 | },
58 | "defined": {
59 | "version": "1.0.0",
60 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
61 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
62 | },
63 | "get-canvas-context": {
64 | "version": "1.0.2",
65 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
66 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
67 | },
68 | "is-class": {
69 | "version": "0.0.5",
70 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
71 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
72 | },
73 | "is-dom": {
74 | "version": "1.0.9",
75 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
76 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
77 | },
78 | "is-promise": {
79 | "version": "2.1.0",
80 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
81 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
82 | },
83 | "object-assign": {
84 | "version": "4.1.1",
85 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
86 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
87 | },
88 | "ow": {
89 | "version": "0.4.0",
90 | "resolved": "https://registry.npmjs.org/ow/-/ow-0.4.0.tgz",
91 | "integrity": "sha512-kJNzxUgVd6EF5LoGs+s2/etJPwjfRDLXPTCfEgV8At77sRrV+PSFA8lcoW2HF15Qd455mIR2Stee/2MzDiFBDA=="
92 | },
93 | "ow-lite": {
94 | "version": "0.0.2",
95 | "resolved": "https://registry.npmjs.org/ow-lite/-/ow-lite-0.0.2.tgz",
96 | "integrity": "sha1-359QDmdAtlkKHpqWVzDUmo61l9E="
97 | },
98 | "pad-left": {
99 | "version": "2.1.0",
100 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
101 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
102 | "requires": {
103 | "repeat-string": "^1.5.4"
104 | }
105 | },
106 | "random": {
107 | "version": "2.0.13",
108 | "resolved": "https://registry.npmjs.org/random/-/random-2.0.13.tgz",
109 | "integrity": "sha512-vwU1O5Wm0zvGUtwj188MLrqsIs3r6cpVqhBkCJLk4yyb0z5eV846so+JwnvVJKXUkVLRzAjluakzYMz2rtjLmw==",
110 | "requires": {
111 | "babel-runtime": "^6.26.0",
112 | "ow": "^0.4.0",
113 | "ow-lite": "^0.0.2"
114 | }
115 | },
116 | "regenerator-runtime": {
117 | "version": "0.11.1",
118 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
119 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
120 | },
121 | "repeat-string": {
122 | "version": "1.6.1",
123 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
124 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
125 | },
126 | "right-now": {
127 | "version": "1.0.0",
128 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
129 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
130 | },
131 | "two.js": {
132 | "version": "0.7.0-beta.3",
133 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
134 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
135 | }
136 | }
137 | }
138 |
--------------------------------------------------------------------------------
/06-lines-displaced-curved/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "06-lines-displaced-curved",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "babel-runtime": {
8 | "version": "6.26.0",
9 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
10 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
11 | "requires": {
12 | "core-js": "^2.4.0",
13 | "regenerator-runtime": "^0.11.0"
14 | }
15 | },
16 | "canvas-sketch": {
17 | "version": "0.2.0",
18 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
19 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
20 | "requires": {
21 | "convert-length": "^1.0.1",
22 | "dateformat": "^3.0.3",
23 | "deep-equal": "^1.0.1",
24 | "defined": "^1.0.0",
25 | "get-canvas-context": "^1.0.2",
26 | "is-class": "0.0.5",
27 | "is-dom": "^1.0.9",
28 | "is-promise": "^2.1.0",
29 | "object-assign": "^4.1.1",
30 | "pad-left": "^2.1.0",
31 | "right-now": "^1.0.0",
32 | "two.js": "^0.7.0-beta.1"
33 | }
34 | },
35 | "convert-length": {
36 | "version": "1.0.1",
37 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
38 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
39 | "requires": {
40 | "defined": "^1.0.0"
41 | }
42 | },
43 | "core-js": {
44 | "version": "2.6.4",
45 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.4.tgz",
46 | "integrity": "sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A=="
47 | },
48 | "d3-array": {
49 | "version": "1.2.4",
50 | "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz",
51 | "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw=="
52 | },
53 | "d3-collection": {
54 | "version": "1.0.7",
55 | "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz",
56 | "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A=="
57 | },
58 | "d3-color": {
59 | "version": "1.2.3",
60 | "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.2.3.tgz",
61 | "integrity": "sha512-x37qq3ChOTLd26hnps36lexMRhNXEtVxZ4B25rL0DVdDsGQIJGB18S7y9XDwlDD6MD/ZBzITCf4JjGMM10TZkw=="
62 | },
63 | "d3-format": {
64 | "version": "1.3.2",
65 | "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.3.2.tgz",
66 | "integrity": "sha512-Z18Dprj96ExragQ0DeGi+SYPQ7pPfRMtUXtsg/ChVIKNBCzjO8XYJvRTC1usblx52lqge56V5ect+frYTQc8WQ=="
67 | },
68 | "d3-interpolate": {
69 | "version": "1.3.2",
70 | "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.3.2.tgz",
71 | "integrity": "sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w==",
72 | "requires": {
73 | "d3-color": "1"
74 | }
75 | },
76 | "d3-scale": {
77 | "version": "2.2.2",
78 | "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz",
79 | "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==",
80 | "requires": {
81 | "d3-array": "^1.2.0",
82 | "d3-collection": "1",
83 | "d3-format": "1",
84 | "d3-interpolate": "1",
85 | "d3-time": "1",
86 | "d3-time-format": "2"
87 | }
88 | },
89 | "d3-time": {
90 | "version": "1.0.11",
91 | "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.0.11.tgz",
92 | "integrity": "sha512-Z3wpvhPLW4vEScGeIMUckDW7+3hWKOQfAWg/U7PlWBnQmeKQ00gCUsTtWSYulrKNA7ta8hJ+xXc6MHrMuITwEw=="
93 | },
94 | "d3-time-format": {
95 | "version": "2.1.3",
96 | "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.1.3.tgz",
97 | "integrity": "sha512-6k0a2rZryzGm5Ihx+aFMuO1GgelgIz+7HhB4PH4OEndD5q2zGn1mDfRdNrulspOfR6JXkb2sThhDK41CSK85QA==",
98 | "requires": {
99 | "d3-time": "1"
100 | }
101 | },
102 | "dateformat": {
103 | "version": "3.0.3",
104 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
105 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
106 | },
107 | "deep-equal": {
108 | "version": "1.0.1",
109 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
110 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
111 | },
112 | "defined": {
113 | "version": "1.0.0",
114 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
115 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
116 | },
117 | "get-canvas-context": {
118 | "version": "1.0.2",
119 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
120 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
121 | },
122 | "is-class": {
123 | "version": "0.0.5",
124 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
125 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
126 | },
127 | "is-dom": {
128 | "version": "1.0.9",
129 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
130 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
131 | },
132 | "is-promise": {
133 | "version": "2.1.0",
134 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
135 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
136 | },
137 | "object-assign": {
138 | "version": "4.1.1",
139 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
140 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
141 | },
142 | "ow": {
143 | "version": "0.4.0",
144 | "resolved": "https://registry.npmjs.org/ow/-/ow-0.4.0.tgz",
145 | "integrity": "sha512-kJNzxUgVd6EF5LoGs+s2/etJPwjfRDLXPTCfEgV8At77sRrV+PSFA8lcoW2HF15Qd455mIR2Stee/2MzDiFBDA=="
146 | },
147 | "ow-lite": {
148 | "version": "0.0.2",
149 | "resolved": "https://registry.npmjs.org/ow-lite/-/ow-lite-0.0.2.tgz",
150 | "integrity": "sha1-359QDmdAtlkKHpqWVzDUmo61l9E="
151 | },
152 | "pad-left": {
153 | "version": "2.1.0",
154 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
155 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
156 | "requires": {
157 | "repeat-string": "^1.5.4"
158 | }
159 | },
160 | "random": {
161 | "version": "2.0.13",
162 | "resolved": "https://registry.npmjs.org/random/-/random-2.0.13.tgz",
163 | "integrity": "sha512-vwU1O5Wm0zvGUtwj188MLrqsIs3r6cpVqhBkCJLk4yyb0z5eV846so+JwnvVJKXUkVLRzAjluakzYMz2rtjLmw==",
164 | "requires": {
165 | "babel-runtime": "^6.26.0",
166 | "ow": "^0.4.0",
167 | "ow-lite": "^0.0.2"
168 | }
169 | },
170 | "regenerator-runtime": {
171 | "version": "0.11.1",
172 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
173 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
174 | },
175 | "repeat-string": {
176 | "version": "1.6.1",
177 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
178 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
179 | },
180 | "right-now": {
181 | "version": "1.0.0",
182 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
183 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
184 | },
185 | "two.js": {
186 | "version": "0.7.0-beta.3",
187 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
188 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
189 | }
190 | }
191 | }
192 |
--------------------------------------------------------------------------------
/16-braids/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "16-braids",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "buffer-to-arraybuffer": {
8 | "version": "0.0.5",
9 | "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz",
10 | "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo="
11 | },
12 | "canvas-sketch": {
13 | "version": "0.2.0",
14 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
15 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
16 | "requires": {
17 | "convert-length": "^1.0.1",
18 | "dateformat": "^3.0.3",
19 | "deep-equal": "^1.0.1",
20 | "defined": "^1.0.0",
21 | "get-canvas-context": "^1.0.2",
22 | "is-class": "0.0.5",
23 | "is-dom": "^1.0.9",
24 | "is-promise": "^2.1.0",
25 | "object-assign": "^4.1.1",
26 | "pad-left": "^2.1.0",
27 | "right-now": "^1.0.0",
28 | "two.js": "^0.7.0-beta.1"
29 | }
30 | },
31 | "convert-length": {
32 | "version": "1.0.1",
33 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
34 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
35 | "requires": {
36 | "defined": "^1.0.0"
37 | }
38 | },
39 | "dateformat": {
40 | "version": "3.0.3",
41 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
42 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
43 | },
44 | "decode-uri-component": {
45 | "version": "0.2.0",
46 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
47 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
48 | },
49 | "decompress-response": {
50 | "version": "3.3.0",
51 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
52 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
53 | "requires": {
54 | "mimic-response": "^1.0.0"
55 | }
56 | },
57 | "deep-equal": {
58 | "version": "1.0.1",
59 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
60 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
61 | },
62 | "define-properties": {
63 | "version": "1.1.3",
64 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
65 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
66 | "requires": {
67 | "object-keys": "^1.0.12"
68 | }
69 | },
70 | "defined": {
71 | "version": "1.0.0",
72 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
73 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
74 | },
75 | "dom-walk": {
76 | "version": "0.1.1",
77 | "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
78 | "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg="
79 | },
80 | "es-abstract": {
81 | "version": "1.13.0",
82 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
83 | "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
84 | "requires": {
85 | "es-to-primitive": "^1.2.0",
86 | "function-bind": "^1.1.1",
87 | "has": "^1.0.3",
88 | "is-callable": "^1.1.4",
89 | "is-regex": "^1.0.4",
90 | "object-keys": "^1.0.12"
91 | }
92 | },
93 | "es-to-primitive": {
94 | "version": "1.2.0",
95 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
96 | "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
97 | "requires": {
98 | "is-callable": "^1.1.4",
99 | "is-date-object": "^1.0.1",
100 | "is-symbol": "^1.0.2"
101 | }
102 | },
103 | "for-each": {
104 | "version": "0.3.3",
105 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
106 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
107 | "requires": {
108 | "is-callable": "^1.1.3"
109 | }
110 | },
111 | "function-bind": {
112 | "version": "1.1.1",
113 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
114 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
115 | },
116 | "get-canvas-context": {
117 | "version": "1.0.2",
118 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
119 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
120 | },
121 | "global": {
122 | "version": "4.3.2",
123 | "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
124 | "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
125 | "requires": {
126 | "min-document": "^2.19.0",
127 | "process": "~0.5.1"
128 | }
129 | },
130 | "has": {
131 | "version": "1.0.3",
132 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
133 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
134 | "requires": {
135 | "function-bind": "^1.1.1"
136 | }
137 | },
138 | "has-symbols": {
139 | "version": "1.0.0",
140 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
141 | "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
142 | },
143 | "is-callable": {
144 | "version": "1.1.4",
145 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
146 | "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
147 | },
148 | "is-class": {
149 | "version": "0.0.5",
150 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
151 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
152 | },
153 | "is-date-object": {
154 | "version": "1.0.1",
155 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
156 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
157 | },
158 | "is-dom": {
159 | "version": "1.0.9",
160 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
161 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
162 | },
163 | "is-function": {
164 | "version": "1.0.1",
165 | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz",
166 | "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU="
167 | },
168 | "is-promise": {
169 | "version": "2.1.0",
170 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
171 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
172 | },
173 | "is-regex": {
174 | "version": "1.0.4",
175 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
176 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
177 | "requires": {
178 | "has": "^1.0.1"
179 | }
180 | },
181 | "is-symbol": {
182 | "version": "1.0.2",
183 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
184 | "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
185 | "requires": {
186 | "has-symbols": "^1.0.0"
187 | }
188 | },
189 | "map-limit": {
190 | "version": "0.0.1",
191 | "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz",
192 | "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=",
193 | "requires": {
194 | "once": "~1.3.0"
195 | }
196 | },
197 | "mimic-response": {
198 | "version": "1.0.1",
199 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
200 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
201 | },
202 | "min-document": {
203 | "version": "2.19.0",
204 | "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
205 | "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
206 | "requires": {
207 | "dom-walk": "^0.1.0"
208 | }
209 | },
210 | "minimist": {
211 | "version": "1.2.0",
212 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
213 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
214 | },
215 | "new-array": {
216 | "version": "1.0.0",
217 | "resolved": "https://registry.npmjs.org/new-array/-/new-array-1.0.0.tgz",
218 | "integrity": "sha1-XbxjnZYerH8an7wacUbsEvKST78="
219 | },
220 | "nice-color-palettes": {
221 | "version": "2.0.0",
222 | "resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-2.0.0.tgz",
223 | "integrity": "sha512-vfQnGTYJuNYaPsCgf5t7mQyRJaVzojRXJ5Qy7iRx4OP914fytCHG3fdtFQIpuGpYjxpcC1Hge1pmLa2a/c0r8w==",
224 | "requires": {
225 | "map-limit": "0.0.1",
226 | "minimist": "^1.2.0",
227 | "new-array": "^1.0.0",
228 | "xhr-request": "^1.0.1"
229 | }
230 | },
231 | "object-assign": {
232 | "version": "4.1.1",
233 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
234 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
235 | },
236 | "object-keys": {
237 | "version": "1.1.0",
238 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz",
239 | "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg=="
240 | },
241 | "once": {
242 | "version": "1.3.3",
243 | "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
244 | "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
245 | "requires": {
246 | "wrappy": "1"
247 | }
248 | },
249 | "pad-left": {
250 | "version": "2.1.0",
251 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
252 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
253 | "requires": {
254 | "repeat-string": "^1.5.4"
255 | }
256 | },
257 | "parse-headers": {
258 | "version": "2.0.2",
259 | "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz",
260 | "integrity": "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==",
261 | "requires": {
262 | "for-each": "^0.3.3",
263 | "string.prototype.trim": "^1.1.2"
264 | }
265 | },
266 | "process": {
267 | "version": "0.5.2",
268 | "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz",
269 | "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8="
270 | },
271 | "query-string": {
272 | "version": "5.1.1",
273 | "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
274 | "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
275 | "requires": {
276 | "decode-uri-component": "^0.2.0",
277 | "object-assign": "^4.1.0",
278 | "strict-uri-encode": "^1.0.0"
279 | }
280 | },
281 | "repeat-string": {
282 | "version": "1.6.1",
283 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
284 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
285 | },
286 | "right-now": {
287 | "version": "1.0.0",
288 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
289 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
290 | },
291 | "simple-concat": {
292 | "version": "1.0.0",
293 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
294 | "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY="
295 | },
296 | "simple-get": {
297 | "version": "2.8.1",
298 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz",
299 | "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
300 | "requires": {
301 | "decompress-response": "^3.3.0",
302 | "once": "^1.3.1",
303 | "simple-concat": "^1.0.0"
304 | }
305 | },
306 | "strict-uri-encode": {
307 | "version": "1.1.0",
308 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
309 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
310 | },
311 | "string.prototype.trim": {
312 | "version": "1.1.2",
313 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
314 | "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=",
315 | "requires": {
316 | "define-properties": "^1.1.2",
317 | "es-abstract": "^1.5.0",
318 | "function-bind": "^1.0.2"
319 | }
320 | },
321 | "timed-out": {
322 | "version": "4.0.1",
323 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
324 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
325 | },
326 | "two.js": {
327 | "version": "0.7.0-beta.3",
328 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
329 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
330 | },
331 | "url-set-query": {
332 | "version": "1.0.0",
333 | "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
334 | "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk="
335 | },
336 | "wrappy": {
337 | "version": "1.0.2",
338 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
339 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
340 | },
341 | "xhr": {
342 | "version": "2.5.0",
343 | "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz",
344 | "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==",
345 | "requires": {
346 | "global": "~4.3.0",
347 | "is-function": "^1.0.1",
348 | "parse-headers": "^2.0.0",
349 | "xtend": "^4.0.0"
350 | }
351 | },
352 | "xhr-request": {
353 | "version": "1.1.0",
354 | "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz",
355 | "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==",
356 | "requires": {
357 | "buffer-to-arraybuffer": "^0.0.5",
358 | "object-assign": "^4.1.1",
359 | "query-string": "^5.0.1",
360 | "simple-get": "^2.7.0",
361 | "timed-out": "^4.0.1",
362 | "url-set-query": "^1.0.0",
363 | "xhr": "^2.0.4"
364 | }
365 | },
366 | "xtend": {
367 | "version": "4.0.1",
368 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
369 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
370 | }
371 | }
372 | }
373 |
--------------------------------------------------------------------------------
/15-shapes-tiled-colors/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "15-shapes-tiled-colors",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "buffer-to-arraybuffer": {
8 | "version": "0.0.5",
9 | "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz",
10 | "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo="
11 | },
12 | "canvas-sketch": {
13 | "version": "0.2.0",
14 | "resolved": "https://registry.npmjs.org/canvas-sketch/-/canvas-sketch-0.2.0.tgz",
15 | "integrity": "sha512-US+ViyXKcNywgULfbB2dVI0Swdq79vaBzQt+rE6OBNCLLZOS+/L1WOsoHGdsg7GXCRdlqE22H8SM2en0FATN7A==",
16 | "requires": {
17 | "convert-length": "^1.0.1",
18 | "dateformat": "^3.0.3",
19 | "deep-equal": "^1.0.1",
20 | "defined": "^1.0.0",
21 | "get-canvas-context": "^1.0.2",
22 | "is-class": "0.0.5",
23 | "is-dom": "^1.0.9",
24 | "is-promise": "^2.1.0",
25 | "object-assign": "^4.1.1",
26 | "pad-left": "^2.1.0",
27 | "right-now": "^1.0.0",
28 | "two.js": "^0.7.0-beta.1"
29 | }
30 | },
31 | "convert-length": {
32 | "version": "1.0.1",
33 | "resolved": "https://registry.npmjs.org/convert-length/-/convert-length-1.0.1.tgz",
34 | "integrity": "sha512-w94Vge3sck6J1NHuA0du367/JTbj1zfjTapX7ixR2W+KlU4zb+NRTbou3x9nTpm5vlcXmjoaUJQpVN9pULCdxQ==",
35 | "requires": {
36 | "defined": "^1.0.0"
37 | }
38 | },
39 | "dateformat": {
40 | "version": "3.0.3",
41 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
42 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q=="
43 | },
44 | "decode-uri-component": {
45 | "version": "0.2.0",
46 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
47 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
48 | },
49 | "decompress-response": {
50 | "version": "3.3.0",
51 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
52 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
53 | "requires": {
54 | "mimic-response": "^1.0.0"
55 | }
56 | },
57 | "deep-equal": {
58 | "version": "1.0.1",
59 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
60 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
61 | },
62 | "define-properties": {
63 | "version": "1.1.3",
64 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
65 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
66 | "requires": {
67 | "object-keys": "^1.0.12"
68 | }
69 | },
70 | "defined": {
71 | "version": "1.0.0",
72 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
73 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
74 | },
75 | "dom-walk": {
76 | "version": "0.1.1",
77 | "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
78 | "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg="
79 | },
80 | "es-abstract": {
81 | "version": "1.13.0",
82 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
83 | "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
84 | "requires": {
85 | "es-to-primitive": "^1.2.0",
86 | "function-bind": "^1.1.1",
87 | "has": "^1.0.3",
88 | "is-callable": "^1.1.4",
89 | "is-regex": "^1.0.4",
90 | "object-keys": "^1.0.12"
91 | }
92 | },
93 | "es-to-primitive": {
94 | "version": "1.2.0",
95 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
96 | "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
97 | "requires": {
98 | "is-callable": "^1.1.4",
99 | "is-date-object": "^1.0.1",
100 | "is-symbol": "^1.0.2"
101 | }
102 | },
103 | "for-each": {
104 | "version": "0.3.3",
105 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
106 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
107 | "requires": {
108 | "is-callable": "^1.1.3"
109 | }
110 | },
111 | "function-bind": {
112 | "version": "1.1.1",
113 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
114 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
115 | },
116 | "get-canvas-context": {
117 | "version": "1.0.2",
118 | "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz",
119 | "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM="
120 | },
121 | "global": {
122 | "version": "4.3.2",
123 | "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
124 | "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
125 | "requires": {
126 | "min-document": "^2.19.0",
127 | "process": "~0.5.1"
128 | }
129 | },
130 | "has": {
131 | "version": "1.0.3",
132 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
133 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
134 | "requires": {
135 | "function-bind": "^1.1.1"
136 | }
137 | },
138 | "has-symbols": {
139 | "version": "1.0.0",
140 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
141 | "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
142 | },
143 | "is-callable": {
144 | "version": "1.1.4",
145 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
146 | "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
147 | },
148 | "is-class": {
149 | "version": "0.0.5",
150 | "resolved": "https://registry.npmjs.org/is-class/-/is-class-0.0.5.tgz",
151 | "integrity": "sha512-jOquneoRNrqbpDgh4hKicrMcGIl7jopvIJaWI+LyDVRzZrQy819qBaYSofOyUMTo/x5Jelvs8G5v/ptdySWy6A=="
152 | },
153 | "is-date-object": {
154 | "version": "1.0.1",
155 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
156 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
157 | },
158 | "is-dom": {
159 | "version": "1.0.9",
160 | "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
161 | "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
162 | },
163 | "is-function": {
164 | "version": "1.0.1",
165 | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz",
166 | "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU="
167 | },
168 | "is-promise": {
169 | "version": "2.1.0",
170 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
171 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
172 | },
173 | "is-regex": {
174 | "version": "1.0.4",
175 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
176 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
177 | "requires": {
178 | "has": "^1.0.1"
179 | }
180 | },
181 | "is-symbol": {
182 | "version": "1.0.2",
183 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
184 | "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
185 | "requires": {
186 | "has-symbols": "^1.0.0"
187 | }
188 | },
189 | "map-limit": {
190 | "version": "0.0.1",
191 | "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz",
192 | "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=",
193 | "requires": {
194 | "once": "~1.3.0"
195 | }
196 | },
197 | "mimic-response": {
198 | "version": "1.0.1",
199 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
200 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
201 | },
202 | "min-document": {
203 | "version": "2.19.0",
204 | "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
205 | "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
206 | "requires": {
207 | "dom-walk": "^0.1.0"
208 | }
209 | },
210 | "minimist": {
211 | "version": "1.2.0",
212 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
213 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
214 | },
215 | "new-array": {
216 | "version": "1.0.0",
217 | "resolved": "https://registry.npmjs.org/new-array/-/new-array-1.0.0.tgz",
218 | "integrity": "sha1-XbxjnZYerH8an7wacUbsEvKST78="
219 | },
220 | "nice-color-palettes": {
221 | "version": "2.0.0",
222 | "resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-2.0.0.tgz",
223 | "integrity": "sha512-vfQnGTYJuNYaPsCgf5t7mQyRJaVzojRXJ5Qy7iRx4OP914fytCHG3fdtFQIpuGpYjxpcC1Hge1pmLa2a/c0r8w==",
224 | "requires": {
225 | "map-limit": "0.0.1",
226 | "minimist": "^1.2.0",
227 | "new-array": "^1.0.0",
228 | "xhr-request": "^1.0.1"
229 | }
230 | },
231 | "object-assign": {
232 | "version": "4.1.1",
233 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
234 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
235 | },
236 | "object-keys": {
237 | "version": "1.1.0",
238 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz",
239 | "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg=="
240 | },
241 | "once": {
242 | "version": "1.3.3",
243 | "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
244 | "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
245 | "requires": {
246 | "wrappy": "1"
247 | }
248 | },
249 | "pad-left": {
250 | "version": "2.1.0",
251 | "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz",
252 | "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=",
253 | "requires": {
254 | "repeat-string": "^1.5.4"
255 | }
256 | },
257 | "parse-headers": {
258 | "version": "2.0.2",
259 | "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz",
260 | "integrity": "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==",
261 | "requires": {
262 | "for-each": "^0.3.3",
263 | "string.prototype.trim": "^1.1.2"
264 | }
265 | },
266 | "process": {
267 | "version": "0.5.2",
268 | "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz",
269 | "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8="
270 | },
271 | "query-string": {
272 | "version": "5.1.1",
273 | "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
274 | "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
275 | "requires": {
276 | "decode-uri-component": "^0.2.0",
277 | "object-assign": "^4.1.0",
278 | "strict-uri-encode": "^1.0.0"
279 | }
280 | },
281 | "repeat-string": {
282 | "version": "1.6.1",
283 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
284 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
285 | },
286 | "right-now": {
287 | "version": "1.0.0",
288 | "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz",
289 | "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg="
290 | },
291 | "simple-concat": {
292 | "version": "1.0.0",
293 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
294 | "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY="
295 | },
296 | "simple-get": {
297 | "version": "2.8.1",
298 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz",
299 | "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
300 | "requires": {
301 | "decompress-response": "^3.3.0",
302 | "once": "^1.3.1",
303 | "simple-concat": "^1.0.0"
304 | }
305 | },
306 | "strict-uri-encode": {
307 | "version": "1.1.0",
308 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
309 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
310 | },
311 | "string.prototype.trim": {
312 | "version": "1.1.2",
313 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz",
314 | "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=",
315 | "requires": {
316 | "define-properties": "^1.1.2",
317 | "es-abstract": "^1.5.0",
318 | "function-bind": "^1.0.2"
319 | }
320 | },
321 | "timed-out": {
322 | "version": "4.0.1",
323 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
324 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
325 | },
326 | "two.js": {
327 | "version": "0.7.0-beta.3",
328 | "resolved": "https://registry.npmjs.org/two.js/-/two.js-0.7.0-beta.3.tgz",
329 | "integrity": "sha512-oPEmRGCo5c296Wn40+yTxYydwPTf1iwJY+EPdLoka5TxUkLkAUo10CkQxRZJ7VGmbShBxQRXQxS5i5/otwqGZg=="
330 | },
331 | "url-set-query": {
332 | "version": "1.0.0",
333 | "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
334 | "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk="
335 | },
336 | "wrappy": {
337 | "version": "1.0.2",
338 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
339 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
340 | },
341 | "xhr": {
342 | "version": "2.5.0",
343 | "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz",
344 | "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==",
345 | "requires": {
346 | "global": "~4.3.0",
347 | "is-function": "^1.0.1",
348 | "parse-headers": "^2.0.0",
349 | "xtend": "^4.0.0"
350 | }
351 | },
352 | "xhr-request": {
353 | "version": "1.1.0",
354 | "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz",
355 | "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==",
356 | "requires": {
357 | "buffer-to-arraybuffer": "^0.0.5",
358 | "object-assign": "^4.1.1",
359 | "query-string": "^5.0.1",
360 | "simple-get": "^2.7.0",
361 | "timed-out": "^4.0.1",
362 | "url-set-query": "^1.0.0",
363 | "xhr": "^2.0.4"
364 | }
365 | },
366 | "xtend": {
367 | "version": "4.0.1",
368 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
369 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
370 | }
371 | }
372 | }
373 |
--------------------------------------------------------------------------------