techhub.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A hub primarily for passionate technologists, but everyone is welcome

Administered by:

Server stats:

4.6K
active users

#shaderast

0 posts0 participants0 posts today
Karsten Schmidt<p>Accidental atmospheric Rayleigh scattering (<a href="https://en.wikipedia.org/wiki/Rayleigh_scattering" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">en.wikipedia.org/wiki/Rayleigh</span><span class="invisible">_scattering</span></a>) — feels like sunrise from ~50secs...</p><p><a href="https://mastodon.thi.ng/tags/Umbra" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Umbra</span></a> <a href="https://mastodon.thi.ng/tags/Art" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Art</span></a> <a href="https://mastodon.thi.ng/tags/GenerativeArt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenerativeArt</span></a> <a href="https://mastodon.thi.ng/tags/Gradients" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Gradients</span></a> <a href="https://mastodon.thi.ng/tags/Color" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Color</span></a> <a href="https://mastodon.thi.ng/tags/Rec2020" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rec2020</span></a> <a href="https://mastodon.thi.ng/tags/Video" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Video</span></a> <a href="https://mastodon.thi.ng/tags/Animation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Animation</span></a> <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/ShaderAST" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderAST</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a></p>
Karsten Schmidt<p><a href="https://mastodon.thi.ng/tags/Umbra" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Umbra</span></a></p><p>(Revisiting an unoptimized old code sketch, semi-fluid screen recording only... Love the contrast between soft gradients and hard edges and the unexpected emergence of shapes [and their disappearance]...)</p><p>(Made with <a href="https://thi.ng/shader-ast" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast</span><span class="invisible"></span></a>)</p><p><a href="https://mastodon.thi.ng/tags/Art" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Art</span></a> <a href="https://mastodon.thi.ng/tags/GenerativeArt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenerativeArt</span></a> <a href="https://mastodon.thi.ng/tags/Gradients" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Gradients</span></a> <a href="https://mastodon.thi.ng/tags/Color" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Color</span></a> <a href="https://mastodon.thi.ng/tags/Rec2020" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Rec2020</span></a> <a href="https://mastodon.thi.ng/tags/Video" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Video</span></a> <a href="https://mastodon.thi.ng/tags/Animation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Animation</span></a> <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/ShaderAST" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderAST</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a></p>
Karsten Schmidt<p>New work: <a href="https://mastodon.thi.ng/tags/ALLUVION" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ALLUVION</span></a></p><p>Over the past two months I've been actively revisiting, updating/extending and now close to finishing this 1.5 year long journey... The actual journey has been much longer, been toying with (faux) fluid sims since ~2007...</p><p>A 50 second preview of one of my fave variations, best enjoyed fullscreen... Tried to achieve some molten, dichroic/irridescent glass &amp; oilfilm aesthetics here, but there're over a dozen of other very different routes/styles possible too, with 25+ parameters to tweak the simulation and look &amp; feel...</p><p>Made with <a href="https://thi.ng/shader-ast" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast</span><span class="invisible"></span></a> &amp; <a href="https://thi.ng/shader-ast-stdlib" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast-stdlib</span><span class="invisible"></span></a></p><p><a href="https://mastodon.thi.ng/tags/Art" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Art</span></a> <a href="https://mastodon.thi.ng/tags/FluidSim" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FluidSim</span></a> <a href="https://mastodon.thi.ng/tags/FlowField" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FlowField</span></a> <a href="https://mastodon.thi.ng/tags/Noise" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Noise</span></a> <a href="https://mastodon.thi.ng/tags/Turbulence" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Turbulence</span></a> <a href="https://mastodon.thi.ng/tags/ShaderAST" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderAST</span></a> <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/GLSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GLSL</span></a> <a href="https://mastodon.thi.ng/tags/WebGL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebGL</span></a> <a href="https://mastodon.thi.ng/tags/GenerativeArt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenerativeArt</span></a> <a href="https://mastodon.thi.ng/tags/Animation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Animation</span></a></p>
Karsten Schmidt<p>Uploaded a new demo/example showing how to perform GPU-side data reductions using <a href="https://thi.ng/shader-ast" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast</span><span class="invisible"></span></a> &amp; <a href="https://thi.ng/webgl" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/webgl</span><span class="invisible"></span></a> multi-pass pipeline. Arbitrary reduction functions supported. If there's interest, this could be expanded &amp; packaged up as library... 90% of this example is boiler plate, 9.9% benchmarking &amp; debug outputs...</p><p>Demo:<br><a href="https://demo.thi.ng/umbrella/gpgpu-reduce/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">demo.thi.ng/umbrella/gpgpu-red</span><span class="invisible">uce/</span></a></p><p>Source code:<br><a href="https://github.com/thi-ng/umbrella/blob/develop/examples/gpgpu-reduce/src/index.ts" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/umbrella/blo</span><span class="invisible">b/develop/examples/gpgpu-reduce/src/index.ts</span></a></p><p>Readme w/ benchmark results:<br><a href="https://github.com/thi-ng/umbrella/tree/develop/examples/gpgpu-reduce" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/umbrella/tre</span><span class="invisible">e/develop/examples/gpgpu-reduce</span></a></p><p>Related discussion:<br><a href="https://github.com/thi-ng/umbrella/issues/478" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/umbrella/iss</span><span class="invisible">ues/478</span></a></p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/WebGL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebGL</span></a> <a href="https://mastodon.thi.ng/tags/ShaderAST" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderAST</span></a> <a href="https://mastodon.thi.ng/tags/GPGPU" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GPGPU</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a></p>
Karsten Schmidt<p>So much to do, but can't stop watching &amp; hacking on this pseudo fluid sim every now &amp; then... 🤩 Probably will develop this further into a tutorial for <a href="https://thi.ng/shader-ast" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast</span><span class="invisible"></span></a></p><p><a href="https://mastodon.thi.ng/tags/ALLUVION" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ALLUVION</span></a> <a href="https://mastodon.thi.ng/tags/Animation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Animation</span></a> <a href="https://mastodon.thi.ng/tags/FlowField" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FlowField</span></a> <a href="https://mastodon.thi.ng/tags/FluidSim" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FluidSim</span></a> <a href="https://mastodon.thi.ng/tags/Noise" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Noise</span></a> <a href="https://mastodon.thi.ng/tags/ShaderAST" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderAST</span></a> <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/GLSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GLSL</span></a> <a href="https://mastodon.thi.ng/tags/WebGL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebGL</span></a> <a href="https://mastodon.thi.ng/tags/GenerativeArt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GenerativeArt</span></a></p>
Karsten Schmidt<p>Direct outcome from a recent GitHub discussion with <span class="h-card" translate="no"><a href="https://mastodon.gamedev.place/@made" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>made</span></a></span>, a new <a href="https://thi.ng/webgl" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/webgl</span><span class="invisible"></span></a> multi-pass example to interactively draw to &amp; read from an offscreen render texture using shaders directly written in <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> via <a href="https://thi.ng/shader-ast" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast</span><span class="invisible"></span></a> and using high-level operators (gaussian blur &amp; Porter-Duff alpha compositing) from <a href="https://thi.ng/shader-ast-stdlib" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast-stdlib</span><span class="invisible"></span></a>...</p><p>Demo (draw in the left/first square):<br><a href="https://demo.thi.ng/umbrella/webgl-texture-paint/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">demo.thi.ng/umbrella/webgl-tex</span><span class="invisible">ture-paint/</span></a></p><p>Source:<br><a href="https://github.com/thi-ng/umbrella/blob/develop/examples/webgl-texture-paint/src/index.ts" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/umbrella/blo</span><span class="invisible">b/develop/examples/webgl-texture-paint/src/index.ts</span></a></p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/WebGL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebGL</span></a> <a href="https://mastodon.thi.ng/tags/ShaderAST" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderAST</span></a> <a href="https://mastodon.thi.ng/tags/Colors" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Colors</span></a></p>
Karsten Schmidt<p><a href="https://mastodon.thi.ng/tags/ReleaseFriday" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ReleaseFriday</span></a> 🚀 - This week's <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> releases are mainly related to ShaderAST &amp; ongoing repo-wide documentation updates of all 190 packages...</p><p><a href="https://thi.ng/shader-ast" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast</span><span class="invisible"></span></a> — Added polymorphic syntax sugar versions of various math ops to simplify "self-assignments" aka ops in the form of `x = x+ 2`, which would in shader AST syntax looked like `assign(x, add(x, 2))`, now `addSelf(x, 2)`... See changelog &amp; docs for details of supported ops.</p><p><a href="https://thi.ng/shader-ast-stdlib" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast-stdlib</span><span class="invisible"></span></a> — The "standard library" for <a href="https://thi.ng/shader-ast" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast</span><span class="invisible"></span></a> has had several new additions of useful helpers &amp; metaprogramming tools, e.g. a new `branches()` function (see screenshot) to simplify n-ary A/B testing of params (or debugging of shader outputs) as is commonly done by e.g. visualizing different versions as columns based on fragment position. Other additions include surface normal calculation from a 2D terrain/grayscale texture (e.g. for GIS or fluid sims), float packing/unpacking (to/from 8bit/channel RGBA textures as a lot of mobile devices _still_ don't support float render textures in WebGL)...</p><p><a href="https://thi.ng/shader-ast-optimize" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast-optimize</span><span class="invisible"></span></a> — This package is used to apply various optimizations on a given shader AST program (or expression). Recursive constant folding has been extended to more ops &amp; built-in functions. There's also a new wrapper function `defOptimized()` which can be used in place of `defMain()` to create auto-optimized shader main functions. The new version also has several bug fixes and more tests... See updated readme for examples.</p><p>As mentioned in earlier toots, I've also been doing several large rounds/commits of general documentation related updates/revamps, incl. updating all code examples in readmes &amp; API docs to provide all required import statements, writing a new tooling (see below) to extract said code blocks from their original files and export them to their own source files for easier testing/trying them out from the command line. That work is only partially completed (with still hundreds of files to edit/update), but if you've got a clone of the <a href="https://thi.ng/umbrella" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/umbrella</span><span class="invisible"></span></a> repo, you can already try it out by running `yarn tool:tangle` (to extract examples from API docs in source files) or `yarn doc:readme` (to extract from readmes). In both cases, make sure your first build everything via `yarn build`. The tools will log where each of the examples is written to. Once I'm done, there will be ~800 example files extracted via this process... 💪</p><p><a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a> <a href="https://mastodon.thi.ng/tags/ShaderAST" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderAST</span></a> <a href="https://mastodon.thi.ng/tags/WebGL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebGL</span></a> <a href="https://mastodon.thi.ng/tags/Documentation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Documentation</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenSource</span></a></p>
Karsten Schmidt<p>Revisiting an old unfinished project with new eyes &amp; new colors... </p><p><a href="https://mastodon.thi.ng/tags/ALLUVION" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ALLUVION</span></a> <a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/Generative" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Generative</span></a> <a href="https://mastodon.thi.ng/tags/Art" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Art</span></a> <a href="https://mastodon.thi.ng/tags/FluidSim" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FluidSim</span></a> <a href="https://mastodon.thi.ng/tags/Colors" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Colors</span></a> <a href="https://mastodon.thi.ng/tags/ShaderAST" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderAST</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/WebGL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebGL</span></a></p>
Karsten Schmidt<p>Always be dogfooding (your tech): Updated my WebGL image transition web component to display blurhash previews before &amp; during image preloading. The hashes are provided as text attribute (~30 characters) and decoded to preview images via <a href="https://thi.ng/blurhash" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/blurhash</span><span class="invisible"></span></a>...</p><p><a href="https://demo.thi.ng/umbrella/webgl-transition/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">demo.thi.ng/umbrella/webgl-tra</span><span class="invisible">nsition/</span></a></p><p>Always trying to be aware of bandwidth &amp; energy implications (also UX related), this component is 100% lazy and only performs any work when absolutely needed (i.e. during transitions), otherwise is completely idle (not even using a dummy requestAnimationFrame() loop). Images are only starting to be preloaded when the component comes into view (using the IntersectionObserver API)</p><p>Other features added:</p><p>- slideshow mode w/ arbitrary number of images (at least not limited by VRAM), adjustable delay time<br>- choice of easing options/functions for transitions<br>- dynamic loading/replacing of images &amp; updating underlying WebGL textures</p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/WebComponents" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebComponents</span></a> <a href="https://mastodon.thi.ng/tags/LazyLoading" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LazyLoading</span></a> <a href="https://mastodon.thi.ng/tags/WebGL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebGL</span></a> <a href="https://mastodon.thi.ng/tags/UI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>UI</span></a> <a href="https://mastodon.thi.ng/tags/Transition" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Transition</span></a> <a href="https://mastodon.thi.ng/tags/ShaderAST" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderAST</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a></p>
Karsten Schmidt<p>Really getting into reusable <a href="https://mastodon.thi.ng/tags/WebComponents" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebComponents</span></a> lately, incl. this one I worked over the last week for the new thi.ng website: a WebGL based image transition (via displacement mapping), primarily using <a href="https://thi.ng/shader-ast" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/shader-ast</span><span class="invisible"></span></a> &amp; <a href="http://thi.ng/webgl" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">http://</span><span class="">thi.ng/webgl</span><span class="invisible"></span></a>...</p><p><a href="https://demo.thi.ng/umbrella/webgl-transition/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">demo.thi.ng/umbrella/webgl-tra</span><span class="invisible">nsition/</span></a></p><p>- the transition is currently linked to mouse over or touch events, but will be more flexible<br>- the layout is responsive (single column on mobile, two columns on larger screens)<br>- some of the displacement map images were created with <a href="https://shadergraph.thi.ng" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">shadergraph.thi.ng</span><span class="invisible"></span></a></p><p>(cc <span class="h-card" translate="no"><a href="https://mastodon.world/@Yura" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>Yura</span></a></span>)</p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/WebGL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebGL</span></a> <a href="https://mastodon.thi.ng/tags/WebComponents" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebComponents</span></a> <a href="https://mastodon.thi.ng/tags/UI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>UI</span></a> <a href="https://mastodon.thi.ng/tags/Transition" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Transition</span></a> <a href="https://mastodon.thi.ng/tags/ShaderAST" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderAST</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a></p>
Karsten Schmidt<p>Warm fuzzy monday morning feeling after someone sent you a link to a blog post describing your project (<a href="https://thi.ng/umbrella" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/umbrella</span><span class="invisible"></span></a>) as "the most beautiful open source project I've ever seen" and "it's bloody fantastic"... 🤩🥹</p><p><a href="https://polar.sh/emilwidlund/posts/alma-an-experimental-playground-for-generative-graphics" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">polar.sh/emilwidlund/posts/alm</span><span class="invisible">a-an-experimental-playground-for-generative-graphics</span></a></p><p>Btw. Related to <a href="https://alma.sh" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">alma.sh</span><span class="invisible"></span></a> (the main topic of the above blog post), here's my own older (less flashy) interactive shader playground here (the basics of which were developed in a YT live stream):</p><p><a href="https://shadergraph.thi.ng/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">shadergraph.thi.ng/</span><span class="invisible"></span></a></p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenSource</span></a> <a href="https://mastodon.thi.ng/tags/ShaderAST" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderAST</span></a> <a href="https://mastodon.thi.ng/tags/ShaderGraph" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ShaderGraph</span></a> <a href="https://mastodon.thi.ng/tags/WebGL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WebGL</span></a> <a href="https://mastodon.thi.ng/tags/ScreenRecording" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ScreenRecording</span></a></p>