Your designer sends you a mockup featuring a mesh gradient and a liquid-metal logo.
You google "GLSL tutorial."
Your therapist asks why you seem different this week.
You tell the designer it is not feasible.
๐ฃ๐ฎ๐ฝ๐ฒ๐ฟ ๐ฆ๐ต๐ฎ๐ฑ๐ฒ๐ฟ๐ made it a one-line import. Zero dependencies. Every effect is a React component with props.
๐ช๐ต๐ฎ๐'๐ ๐ถ๐ป๐๐ถ๐ฑ๐ฒ
โก๏ธ ๐๐บ๐ฎ๐ด๐ฒ ๐ณ๐ถ๐น๐๐ฒ๐ฟ๐: paper texture, fluted glass, water distortion, halftone dots, halftone CMYK, image dithering. Drop them on any element.
โก๏ธ ๐๐ผ๐ด๐ผ ๐ฎ๐ป๐ถ๐บ๐ฎ๐๐ถ๐ผ๐ป๐: heatmap, liquid metal, gem smoke. Feed it your SVG and watch it move.
โก๏ธ ๐๐ณ๐ณ๐ฒ๐ฐ๐๐: mesh gradients, warp, spiral, swirl, waves, neuro noise, Perlin, Voronoi, metaballs, god rays, pulsing borders, smoke rings, dot orbits. Over 20 GPU-rendered effects.
โก๏ธ ๐ญ๐ฒ๐ฟ๐ผ ๐ฑ๐ฒ๐ฝ๐ฒ๐ป๐ฑ๐ฒ๐ป๐ฐ๐ถ๐ฒ๐: no Three.js. No WebGL framework. Raw GLSL compiled to a canvas. Also ships as standalone GLSL if you are not using React.
๐ช๐ต๐ ๐ถ๐ ๐บ๐ฎ๐๐๐ฒ๐ฟ๐
Every one of these effects used to require a developer who understood fragment shaders, uniforms, and coordinate spaces. Now it is a component with colour and speed props. The entire library loads faster than a single Three.js import.
#React #Shaders #GLSL #WebGL #Frontend #WebDev #Design #OpenSource #TypeScript #GPU
Maintaining Cloudy has been a great opportunity to explore new ideas, and it's exciting to finally see them coming to life.
Huge thanks to skydoves. I'll keep building and sharing more animations and visual effects whenever I can.
This stunning rainy window animation was built 100% with Compose Multiplatform, using the Cloudy library.
Shoutout to @woolee2828 for the recent contributions and this beautiful example.
https://t.co/L4aRR1ripM
Akademisyenler iรงin Claude Codeโu nasฤฑl kullanacaฤฤฑnฤฑza dair basit bir giriล.
Alessandro Spina'ya ait sunum slaytlarฤฑ ve GitHub deposu.
๐ https://t.co/FCfOers2Lw
Just published `nitro-webview` v0.1.0 ๐
A React Native WebView built on Nitro Modules. Drop-in compatible with react-native-webview.
โ https://t.co/hNnKdA48d3
LLM Knowledge Bases
Something I'm finding very useful recently: using LLMs to build personal knowledge bases for various topics of research interest. In this way, a large fraction of my recent token throughput is going less into manipulating code, and more into manipulating knowledge (stored as markdown and images). The latest LLMs are quite good at it. So:
Data ingest:
I index source documents (articles, papers, repos, datasets, images, etc.) into a raw/ directory, then I use an LLM to incrementally "compile" a wiki, which is just a collection of .md files in a directory structure. The wiki includes summaries of all the data in raw/, backlinks, and then it categorizes data into concepts, writes articles for them, and links them all. To convert web articles into .md files I like to use the Obsidian Web Clipper extension, and then I also use a hotkey to download all the related images to local so that my LLM can easily reference them.
IDE:
I use Obsidian as the IDE "frontend" where I can view the raw data, the the compiled wiki, and the derived visualizations. Important to note that the LLM writes and maintains all of the data of the wiki, I rarely touch it directly. I've played with a few Obsidian plugins to render and view data in other ways (e.g. Marp for slides).
Q&A:
Where things get interesting is that once your wiki is big enough (e.g. mine on some recent research is ~100 articles and ~400K words), you can ask your LLM agent all kinds of complex questions against the wiki, and it will go off, research the answers, etc. I thought I had to reach for fancy RAG, but the LLM has been pretty good about auto-maintaining index files and brief summaries of all the documents and it reads all the important related data fairly easily at this ~small scale.
Output:
Instead of getting answers in text/terminal, I like to have it render markdown files for me, or slide shows (Marp format), or matplotlib images, all of which I then view again in Obsidian. You can imagine many other visual output formats depending on the query. Often, I end up "filing" the outputs back into the wiki to enhance it for further queries. So my own explorations and queries always "add up" in the knowledge base.
Linting:
I've run some LLM "health checks" over the wiki to e.g. find inconsistent data, impute missing data (with web searchers), find interesting connections for new article candidates, etc., to incrementally clean up the wiki and enhance its overall data integrity. The LLMs are quite good at suggesting further questions to ask and look into.
Extra tools:
I find myself developing additional tools to process the data, e.g. I vibe coded a small and naive search engine over the wiki, which I both use directly (in a web ui), but more often I want to hand it off to an LLM via CLI as a tool for larger queries.
Further explorations:
As the repo grows, the natural desire is to also think about synthetic data generation + finetuning to have your LLM "know" the data in its weights instead of just context windows.
TLDR: raw data from a given number of sources is collected, then compiled by an LLM into a .md wiki, then operated on by various CLIs by the LLM to do Q&A and to incrementally enhance the wiki, and all of it viewable in Obsidian. You rarely ever write or edit the wiki manually, it's the domain of the LLM. I think there is room here for an incredible new product instead of a hacky collection of scripts.
@birch_js this is heavily vibe coded and untested, with RN skia. I think pretext port can be created on top of RN skia as it has the measure text/font APIs (haven't checked all the capabilities though ๐ ).
Also native measure text API + absolute RN Texts might just work in theory.