Fork of https://github.com/Silverwolf90/2d-visibility
This is a 2d visibility algorithm described in this article, ported by hand to TypeScript and slightly refactored.
I highly suggest reading the article. It's very well explained with some really awesome interactive examples and provides the code in multiple languages. The original code was written in Haxe, which can compile into JavaScript but I found the generated JS to be rather difficult to read and comes with an (unnecessary) doubly linked list implementation.
Clone the repo, npm install
then run npm run build
and open index.html
in your browser.