Floating point math is 10-100x slower than integer math, so you may be able to get something half-decent even while writing every single pixel from TypeScript.
(from https://www.microsoft.com/en-us/research/uploads/prod/2019/09/static-typescript-draft2.pdf )