There’s a little known algorithm for constructing a Sierpinski triangle that is surprisingly easy to implement.

- Start the three vertices that form a triangle
- Pick a random point inside the triangle
- Pick a random vertex
- Go halfway from a the random point to the vertex and mark that point
- Go to step 3 using the result of 4 as the starting point

I’m trying to get better at D3 and thought it would be a good exercise to code it up. The resulting image is below (generated using 10,000 points) and the JavaScript is in the following file. Next up is to write a new script that allows a user to specify the number of vertices and the adjustment factor - the Sierpinski carpet can be generated with 4 vertices and a distance adjustment factor of a third rather than a half.