|
1 | 1 | {
|
2 | 2 | "title": "Weighted Voronoi Stippling",
|
3 | 3 | "videoNumber": "181",
|
4 |
| - "description": "TBD", |
| 4 | + "description": "Stippling refers to the process of creating an image from a collection of many dots. In this coding challenge I attempt to implement a weighted voronoi stippling algorithm with p5.js and the delaunay triangulation d3.js package.", |
5 | 5 | "videoId": "Bxdt6T_1qgc",
|
6 | 6 | "nebulaSlug": "codingtrain-coding-challenge-181-image-stippling",
|
7 | 7 | "date": "2024-02-22",
|
|
11 | 11 | "relatedChallenges": ["c4-worley-noise", "33-poisson-disc-sampling"],
|
12 | 12 | "timestamps": [
|
13 | 13 | { "time": "0:00", "title": "Hello!" },
|
14 |
| - { "time": "0:37", "title": "Delaunay triangulation" }, |
15 |
| - { "time": "2:31", "title": "d3-delaunay" }, |
16 |
| - { "time": "2:49", "title": "Start coding" }, |
17 |
| - { "time": "6:38", "title": "Explain the voronoi diagram" }, |
18 |
| - { "time": "9:17", "title": "Call the voronoi function on the delaunay object" }, |
| 14 | + { "time": "0:37", "title": "What is a delaunay triangulation?" }, |
| 15 | + { "time": "2:31", "title": "d3-delaunay package" }, |
| 16 | + { "time": "2:49", "title": "Coding the delaunay triangulation." }, |
| 17 | + { "time": "6:38", "title": "What is a voronoi diagram?" }, |
| 18 | + { "time": "9:17", "title": "voronoi function on the delaunay object" }, |
19 | 19 | { "time": "10:25", "title": "Things you could try with the Voronoi diagram" },
|
20 |
| - { "time": "10:56", "title": "Lloyd's alorithm" }, |
21 |
| - { "time": "12:07", "title": "Calculate the centroid of each polygon" }, |
22 |
| - { "time": "13:00", "title": "Convert generator to an array" }, |
| 20 | + { "time": "10:56", "title": "Lloyd's \"relaxation\" algorithm" }, |
| 21 | + { "time": "12:07", "title": "Calculate the average of a polygon's vertices" }, |
23 | 22 | { "time": "15:30", "title": "Calculate the area of a polygon" },
|
24 |
| - { "time": "16:45", "title": "Calculate the centroid x and y" }, |
25 |
| - { "time": "18:47", "title": "Stippling" }, |
26 |
| - { "time": "19:45", "title": "Draw dots based on brightness value of pixel in an image" }, |
27 |
| - { "time": "21:50", "title": "Find the weighted centroid" }, |
28 |
| - { "time": "24:51", "title": "Use delaunay.find(i,j) to find the index of the centroid" }, |
29 |
| - { "time": "27:52", "title": "Possible visualizations" }, |
30 |
| - { "time": "28:47", "title": "Outro" } |
| 23 | + { "time": "16:45", "title": "Calculate the proper centroid of a polygon" }, |
| 24 | + { "time": "18:47", "title": "What is stippling?" }, |
| 25 | + { "time": "19:45", "title": "Draw dots based on brightness value of pixel" }, |
| 26 | + { "time": "21:50", "title": "Calculate a weighted centroid" }, |
| 27 | + { "time": "24:51", "title": "Using delaunay.find()" }, |
| 28 | + { "time": "27:52", "title": "Ideas for you to try!" }, |
| 29 | + { "time": "28:47", "title": "Goodbye!" } |
31 | 30 | ],
|
32 | 31 | "codeExamples": [
|
33 | 32 | {
|
|
40 | 39 | },
|
41 | 40 | {
|
42 | 41 | "title": "Circumcircle",
|
43 |
| - "description": "Sketch visualizing a circumcircle.", |
| 42 | + "description": "How to calculate the circumricle for a triangle.", |
44 | 43 | "image": "1.jpg",
|
45 | 44 | "urls": {
|
46 | 45 | "p5": "https://editor.p5js.org/codingtrain/sketches/eJnSI84Tw"
|
47 | 46 | }
|
48 | 47 | },
|
49 | 48 | {
|
50 |
| - "title": "CC 181: Voronoi Bouncing Points", |
51 |
| - "description": "Implementation of voroni showing points moving.", |
| 49 | + "title": "Voronoi Diagram", |
| 50 | + "description": "Calculating and drawing the voronoi diagram (with moving points).", |
52 | 51 | "image": "2.jpg",
|
53 | 52 | "urls": {
|
54 | 53 | "p5": "https://editor.p5js.org/codingtrain/sketches/GpeT1W8X1"
|
55 | 54 | }
|
56 | 55 | },
|
57 | 56 | {
|
58 |
| - "title": "CC 181: Voronoi Phyllotaxis", |
59 |
| - "description": "Implementation of voroni with the phyllotaxis algorithm.", |
| 57 | + "title": "Voronoi Phyllotaxis", |
| 58 | + "description": "Voronoini diagram with seed points calculated by phyllotaxis.", |
60 | 59 | "image": "3.jpg",
|
61 | 60 | "urls": {
|
62 | 61 | "p5": "https://editor.p5js.org/codingtrain/sketches/ydiZeUK8R"
|
63 | 62 | }
|
64 | 63 | },
|
65 | 64 | {
|
66 |
| - "title": "CC 181: Voronoi Area Mapped to Color", |
67 |
| - "description": "Sketch demonstrating how to map voronoi area to color.", |
| 65 | + "title": "Voronoi Diagram colored by area", |
| 66 | + "description": "Sketch demonstrating how to map area of a polygon to color.", |
68 | 67 | "image": "4.jpg",
|
69 | 68 | "urls": {
|
70 | 69 | "p5": "https://editor.p5js.org/codingtrain/sketches/opmU_UQqg"
|
71 | 70 | }
|
72 | 71 | },
|
73 | 72 | {
|
74 |
| - "title": "CC 181 Weighted Stippling - Abstract Pattern", |
75 |
| - "description": "Implementation of weighted stippling on an image generating from noise.", |
| 73 | + "title": "Weighted Stippling - Abstract Pattern", |
| 74 | + "description": "Implementation of weighted stippling on an image generated from perlin noise.", |
76 | 75 | "image": "5.jpg",
|
77 | 76 | "urls": {
|
78 | 77 | "p5": "https://editor.p5js.org/codingtrain/sketches/9ntWWLXqA"
|
79 | 78 | }
|
80 | 79 | },
|
81 | 80 | {
|
82 |
| - "title": "CC 181 Weighted Stippling - video", |
83 |
| - "description": "Implementation of voroni stippling on video.", |
84 |
| - "image": "", |
| 81 | + "title": "Weighted Stippling - video", |
| 82 | + "description": "Implementation of applying weighted voronoi stippling algorithm to a moving image.", |
| 83 | + "image": "6.png", |
85 | 84 | "urls": {
|
86 |
| - "p5": "https://editor.p5js.org/codingtrain/sketches/bH_LhAYG3" |
| 85 | + "p5": "https://editor.p5js.org/codingtrain/sketches/7TKSgi16z" |
87 | 86 | }
|
88 | 87 | }
|
89 | 88 | ],
|
|
0 commit comments