This tutorial is a continuation of the earlier Introduction to WebAssembly Text

If you are not familiar with WebAssembly Text (WAT), then please read the above introductory tutorial first because from this point on, I will assume that you are at least able to read and understand a WebAssembly Text program.

In the tutorials that follow, we will take a detailed look at how to implement an application in WebAssembly Text that plots the Mandelbrot and Julia Sets

But Why Not Just Write the Solution in Rust?

I did here!

But here’s the thing…

When I wrote the above solution in Rust, I enjoyed all the advantages of using a language with much richer programming constructs and a compiler that turns out almost bullet-proof code. However, when I used wasm-pack to transform the Rust executable into a .wasm module, the resulting file was 74Kb in size.

This is certainly not large, but it was much larger than I expected given the simplicity of the task being performed.

So as a matter of both curiosity and education, I set about re-implementing this program in WebAssembly Text (WAT) to see just how small I could get it.

The results are encouraging because the hand-crafted .wasm file is now about 150 times smaller - just 493 bytes…

Live Demo

Plotting Fractals Using WebAssembly Threads and Web Workers

Table of Contents

  1. Plotting Fractals
  2. Initial Implementation
  3. Basic WAT Implementation
  4. Optimised WAT Implementation
  5. Plotting a Julia Set
  6. Zooming In
  7. WebAssembly and Web Workers