Tweets
- Tweets, current page.
- Tweets & replies
- Media
You blocked @baldand
Are you sure you want to view these Tweets? Viewing Tweets won't unblock @baldand
-
Some annoyances and challenges: - Android chrome much faster fullscreen - Fullscreen & WebAudio only work if the user interacts. So there has to be an initial state that requires a click/press - Safari WebAudio is still behind webkit prefix and has slightly different behaviour
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
The (text) shader code is stored with simple dictionary-based compression of keywords. But the rest of the code is not compressed. To keep code density high, I used rust to write a binary code runtime based on 4-bit opcodes and args that manipulate a JS-side stack
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
To avoid needing JS binding functions for all the Web APIs, I used the JS function Reflect.ownKeys() on API classes to enumerate all the available functions, and extract the ones I needed dynamically based on a pre-computed (12-bit) hash - then using JS fn apply() to call them
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
The version of WebAssembly widely available today in most browsers is limited to being able to call a list of javascript functions you give it at load time, with only numbers as parameters & returns - it cannot call arbitrary Web functions (such as WebGL or WebAudio) directly
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
The audio ("music") is also rendered in a fragment shader, with one pixel per sample, using additive synthesis with about 500 sin waves for left and right channels. Output float value is coded into the 4x8bit RGBA and cast back to float32 on host side, then into a WebAudio buffer
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Each of the 4096 rings is a quad instance, positioned in 3D space by the vertex shader. Then in the fragment shader, a local single torus distance field is ray marched for a few steps. Depth testing is on, and pixels that don't hit a surface are discarded.
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
The graphics and audio are rendered with WebGL(1) shaders. The challenge for me was how to bind all the needed functions while staying "in budget" (<4KB) but still with broad compatibility
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
The file is actually one wasm binary file, with just "<!--" added to the start, and the javascript bootstrap embedded as constant data
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
On my (android) phone, performance is best in landscape
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
I've been exploring Rust+WebAssembly recently. Here's one experiment made with those - my friend said it looked like thousands of fruit loops dancing to "music". Runs in your browser (and maybe even your phone). One file, just 4092 bytes. https://thndl.com/ws4k pic.twitter.com/oIZDtHPvHp
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Andrew Baldwin Retweeted
Today, we are launching CineShader - A cinematic shader visualiser! It is a little side project we created for the shader community using the
@Shadertoy API. Retweet is appreciated.
https://cineshader.com
#webgl#threejs#shadertoy#cineshader#realtime#webdesignpic.twitter.com/BjaSwi6qZOShow this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Andrew Baldwin RetweetedThanks. Twitter will use this to make your timeline better. UndoUndo
-
Andrew Baldwin Retweeted
(1) Dear friends! Please help me spread the word! Proud to announce my first single author paper, a new display technology that combines optical scanning and machine learning. The results is up to x4 resolution, faster refresh rate and no more screen door effect!pic.twitter.com/utkUQnhaIO
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Andrew Baldwin Retweeted
Differentiable Digital Signal Processing (DDSP)! Fusing classic interpretable DSP with neural networks.
Blog: http://magenta.tensorflow.org/ddsp
Examples: https://g.co/magenta/ddsp-examples …
Colab: http://g.co/magenta/ddsp-demo …
Code: http://github.com/magenta/ddsp
Paper: http://g.co/magenta/ddsp-paper …
1/pic.twitter.com/SlxLUOUC6k
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Andrew Baldwin Retweeted
Making really tiny WebAssembly graphics demos http://cliffle.com/blog/bare-metal-wasm/ …pic.twitter.com/cIQTFVug52
Thanks. Twitter will use this to make your timeline better. UndoUndo -
Andrew Baldwin Retweeted
A fascinating spin on raymarching in the "Scene Representation Networks" paper, using a *learned* rendering pipeline: The scene is implicit in a feature vector space, raymarched using an LSTM, and mapped to RGB pixels using a multi-layer perceptron https://vsitzmann.github.io/srns/ pic.twitter.com/QHyz0TOUDx
Thanks. Twitter will use this to make your timeline better. UndoUndo -
Andrew Baldwin Retweeted
JPEG XL, the next-generation image compression codec. It's still a work-in-progress, but since today we have a public software repository. The code is proudly Free & Open Source (Apache 2.0), the codec is Royalty-free.https://gitlab.com/wg1/jpeg-xl
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
In my case it was for audio synthesis. Could also be useful for ML model output
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
GLSL function to write out a valid full precision float value as 4 uint8s that can be cast directly back to a float host-side. Useful on WebGL 1.0 targets with no native float output if you want to calculate something with the GPU
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
vec4 f2v4(float f){if (f==0.)return vec4(0.);float s=f>0.?0.:1.;f=abs(f);float e=floor(log2(f));float t=(e+127.)*.5;float m=((f/exp2(e))-1.)*8388608.;float z=floor(m/65536.);m-=z*65536.;float y=floor(m/256.);m-=y*256.;return vec4(m,y,(fract(t)*256.+z),(s*128.+floor(t)))/255.;}
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.