block-fractal

Generates a blocky fractal-like shape, like a tile-based randomized koch curve

Usage no npm install needed!

<script type="module">
  import blockFractal from 'https://cdn.skypack.dev/block-fractal';
</script>

README

BlockFractal

Dependencies Node.js CI License

Generates a blocky fractal-like shape, like a tile-based randomized koch curve

See the demo

Example Result

Installation

npm install block-fractal

Usage

Create a block fractal:

const BlockFractal = require('block-fractal');

const path = BlockFractal.makeBlockFractal({
    iterations: 7
});

Convert the path into a set of raster lines (makes cell tests faster):

const mask = path.rasterize();

Test if a tile is in the shape:

const inside = mask.get(x, y);

...

Details

BlockFractal starts with a "seed" shape, which by default is a 2x2 square:

Example 1

The shape is doubled, and then each edge is either left in place or moved to one side or the other:

Example 10

The result is a new, bigger shape, similar to the previous shape but with a more varied border:

Example 13

That process is then repeated as many times as requested.

For more information, see the Algorithm Overview