This is Poisson's equation:

To roughly transliterate it, it says 'The rate of change of the slope of *phi* is *f*', where *phi* and *f* are usually 2D or 3D scalar fields. In practice, that usually boils down to a large array of floats.

There are several fields of study where it shows up, and often, the *f* is known, while *phi* needs to be found, based on this equation. That is what Poisson solvers do.

A while back, I was making a fluid simulator, and I needed a Poisson solver as well. As I was working in an array language at the time (uiua), I started thinking about how I would make something like that with an eye on parallel processing, and I came up with a fun technique for it. However, I never ended up testing the actual characteristics of the technique with respect to 'known' techniques. (for example: how fast it converges to a solution)

So, for this year's wheel reinvention jam I am going to reimplement the algorithm in a systems language, and for the GPU, to get some proper data on how fast (and maybe useful) it can be. With this, I'll also make some proper documentation, so that people can follow along somewhat!