Files
matrix/TODO.txt

100 lines
3.0 KiB
Plaintext

TODO:
Minimum react requirement?
Minify bundles
Naming "matrix" for the github repo, "digital-rain" and "DigitalRain" for everything else
Retire fetchLibraries?
Preserve time across configure calls, move times into renderer and uniforms
Move off of regl
Unify implementations?
Reshape all passes to react to config changes, ie. "configure"
simple deltas only require updating the uniforms
return boolean of whether all deltas are simple
Resource changes are simple if they're cached and loaded, false otherwise
remake the pipeline if anything returns false
Core vs full
core
One embedded MSDF, combined from the two main glyph sets and their configs
full
Other MSDFs and configs
and then one with built-in MSDF generation
(TTF + glyphString) --> MSDF
Is MSDF strictly necessary?
Expanded configurability
Modify regl pass
async build(config, inputs)
loads all required stuff
async resize - adjusts the sizes
run — performs the GPU operation
Rewrite main code to accept changes to config
Build a Tweakpane for config
https://cocopon.github.io/tweakpane
Show a gear emoji in the top right on mouse move
Hide after three seconds
If tapped, show the tweakpane
Seems like bloom size and resolution impact the REGL and WebGPU bloom implementations differently
Move high pass into WebGPU bloom
Dithering bug on mobile?
Looks like a subtle fade occurring at a per-second interval
Write an explanation of the rain pass (and include images)
Compute
Volumetric quads
Fullscreen quad and spacial mapping
MSDFs
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 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
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
Idea: Build a UI
Replace versions with presets
Simple changes update the values
Complex changes replace the pipeline
Make it a form, so it's accessible
Then, make it look cool like the UI from the old site
Maybe pay someone to make Mac/Windows screensavers
Zion Control's matrix variant
From Reloaded
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