TODO:

Migrate recoded changes to WebGPU

Update the README

Audio system
  Toggle (or number representing frequency)
  Load the sound effect
  Play it multiple times with delay
    Random pan
    Random volume?
    Randomize pitch a little?

Playdate version
  Audio system
    Falling sound
    Launch sound
    Undocking sound
    Docking sound
    Maybe crank sounds? Not sure yet

Support Resurrections anomaly streaks
  Kind of like the cursor: new rain pass output channel, new config prop
  MSDF
    They should line up in Photoshop without too much trouble, actually
  Texture
    Maybe give normal Matrix code a pixel grill texture
  Lighting
    Different parts of a streak glow at different intensities, at different times
    The streaks often dim slower, ie. are brighter, than the glyphs beneath them
    Imagine they're metallic or something

Support Resurrections SDF bevel and "lights"
  https://shaderfun.com/2018/07/23/signed-distance-fields-part-8-gradients-bevels-and-noise/
  Get the "normals" and color right
    Note: even completely dark glyphs can have glint on their edges
    "Golden hour"
  Stuff MSDF-derived normal vectors from rain pass frag into two of its output channels
  Anomaly mode toggles between this and anomaly streaks

WebGPU
  Why is it brighter than the regl version?
    Create a project that tests them side-by-side
      That's right, two canvases, one regl and one webgpu
      program them both to do the same basic ops in a floating point texture
      display that texture
      Retrieve the texture from the GPU and spit it out
    Possible causes of difference
      Color space
      Floating point math
      Texture interpolation
      Blur implementation
  Try https://github.com/brendan-duncan/wgsl_reflect
  Get rid of end pass once it's possible to copy a bgra8unorm to a canvas texture
  Switch to rgba32float somehow?
    Why isn't this straightforward?
  Try shorthand
  Share a bind group and layout just for time?
  Try using a buffer for the stripe pass 1D texture

Improve loop support

Write an explanation of the rain pass (and include images)
  Compute
  Volumetric quads
  Fullscreen quad and spacial mapping
  MSDFs

Zion Control's matrix variant
  From Reloaded

Idea: Build a UI
  Changes some uniforms
  Effect selection would swap out the desired effect pass, somehow
  The color palette stuff would be hard

Deja vu effect: flashing rows
  Make them flash all the time
  Then use a thunder-like pattern to show and hide the flash

gpu-buffer, working title
  Support type aliasing (type Q = array<i32, 5>)
  Support shorthand (vec4f)
  Build mocha tests, example project
  Give it its own repo, microsite
