Disjoint Sets, Graph analysis & Signed Distance Fields
This is part 4 of an ongoing series introducing & discussing projects of the thi.ng/umbrella monorepo, whilst building a minigame on the side. Other parts available:
We finished the last part with expanding our 1D cellular automata generator to two dimensions, and in this part, we will slightly refactor this and perform several post-processing steps to extract an actually usable and playable terrain from the raw CA generated pattern/grid.
The diagram below provides a high-level overview of the processing steps required to get from our raw CA output to the version later shown to the…
1D & 2D convolutions, functional, branchless, cellular automata
This is part 3 of an ongoing series introducing & discussing projects of the thi.ng/umbrella monorepo. Other parts:
Having covered some transducer basics and related functional programming concepts in the previous post, we are now ready to apply some of that knowledge to start creating the world for our game.
Convolutions are an interesting group of mathematical operations with many applications in audio & image processing (DSP, computer vision), machine learning (CNNs), statistics, engineering etc. In general math terms, convolution is the integral of the product of two functions f(t) and g(t), with one of them shifted in time. In other words, we compute a sliding, weighted-sum of function f(t), with g(t) being the weighting function (also called kernel). …
A 5k-word deep look under the bonnet of Transducer Model S
This is part 2 of an ongoing series introducing & discussing projects of the thi.ng/umbrella monorepo. Other parts:
As promised last time, in this installment we shall lay the technical foundations used throughout the rest of this tutorial series, to prepare for some terraforming of Shroomania, the mini-game going to be built up here. However, the game itself is just used to contextualize these more generally useful-to-know concepts, which for this part are: functional programming basics (some, this is not an FP tutorial as such), ES6 iterables, reducers & transducers. …