SlopScore
10 crowdincl. 1 critic

aura-fx

30 WebGL elements for interfaces that don't look vibe-coded. Raymarched orbs, liquid metal, holo foil, caustics, glass refraction. One shared GL context, zero dependencies, 14 kB, MIT.
Open repo on GitHub Open the demogithub.com/stas4000/aura-fx
JavaScript · ★ 4 · 0 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)other
listed 5 hours ago by stas4000 · last checked 3 hours ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-18: 30 WebGL elements for interfaces that don't look vibe-coded. Raymarched orbs, liquid metal, holo foil, caustic; its own README says "30 WebGL elements for interfaces that don't look vibe-coded". 4 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as stas4000. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
30 WebGL elements for interfaces that don't look vibe-coded. Raymarched orbs, liquid metal, holo foil, caustics, glass refraction. One shared GL context, zero dependencies, 14 kB, MIT.
website
https://aura.bles-software.com
topics
animationcustom-elementsglslreactshadersui-componentsweb-componentswebgl
created
2026-07-27 · pushed 1 month ago · 5 commits · 1 contributor
languages
JavaScript 67%HTML 20%CSS 13%
paperwork
licensereadme 42% health
dependencies
no dependency graph (no manifest, or disabled) · OSV.dev, checked 5 hours ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
other
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
csshtmljavascript
topic (detected)
animationcustom-elementsglslreactshadersui-componentsweb-componentswebgl
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: 30 WebGL elements for interfaces that don't look vibe-coded. Raymarched orbs, liquid metal, holo foil, caustic; its own README says "30 WebGL elements for interfaces that don't look vibe-coded". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

aura

30 WebGL elements for interfaces that don't look vibe-coded.

Raymarched orbs, liquid metal, holographic foil, caustics, real glass refraction, volumetric fog. One shared GL context, zero dependencies, 14 kB gzipped, MIT.

Live demo and playground: https://aura.bles-software.com

<script src="https://aura.bles-software.com/aura.min.js"></script>

<aura-fx effect="plasma-orb" size="120"></aura-fx>

That is the whole integration. The tag registers itself and works in plain HTML, Vue, Svelte, Astro and React 19. React 18 has a wrapper, see below.


Install

CDN — one file, no build step:

<script src="https://aura.bles-software.com/aura.min.js"></script>

Bundler:

npm install github:stas4000/aura-fx
import 'aura-fx';                        // registers <aura-fx> and <aura-text>
import { AuraFX } from 'aura-fx/react';  // optional React 18 wrapper

Usage

<!-- an agent thinking state -->
<aura-fx effect="plasma-orb" size="64"></aura-fx>

<!-- a hero background -->
<aura-fx effect="aurora" style="position:absolute;inset:0"></aura-fx>

<!-- a gauge, driven from your code -->
<aura-fx effect="progress-orb" size="120" progress="0.62"></aura-fx>

<!-- live, selectable text -->
<aura-text effect="scramble">Deploying</aura-text>

Update at runtime with an attribute, or imperatively:

el.setAttribute('progress', '0.8');
el.update({ progress: 0.8, speed: 1.5 });   // skips attribute parsing
document.querySelector('aura-text').replay(); // re-run a one-shot text effect

Attributes

Attribute Applies to Default What it does
effect both plasma-orb / shimmer Which of the 30 to render
size aura-fx Shorthand for equal width and height
speed both per effect Time multiplier. 0 freezes it
intensity aura-fx 1 Effect-specific amplitude
progress aura-fx 0 0..1, for the gauges and meters
seed aura-fx 0 Varies the random layout
color color2 color3 aura-fx white / blue / pink Hex palette, highlight then two accents
paused aura-fx Freeze on the current frame

React

React 19 renders custom elements directly, so no wrapper is needed:

<aura-fx effect="liquid-orb" size="140" />

React 18 and older do not forward non-string props or call element methods:

import { AuraFX, AuraText } from 'aura-fx/react';

<AuraFX effect="voice-orb" size={140} progress={level} />
<AuraText effect="glitch">SYSTEM</AuraText>

The 30

Orbsplasma-orb neural-orb liquid-orb voice-orb

Backgroundsaurora starfield grid-tunnel volumetric-fog silk dot-wave

Surfacesliquid-metal glass-refract holo-foil beam-border caustics

Interactionmagnet-glow ripple shimmer gooey spotlight

Feedbackpulse-ring progress-orb wave-bars spark-line raymarch-cube particle-burst

Textshimmer scramble glitch wave (on <aura-text>)


How it works, and why you should care

One GL context for the whole page. Browsers cap live WebGL contexts at around 16 and silently kill the oldest one past that. A component library is exactly the thing that trips it: put 30 effects on a page and half of them go black. aura renders every instance through a single shared context and blits the result into each element's own 2D canvas. The demo page runs all 30 at once.

Off-screen means off. Each element watches itself with an IntersectionObserver and stops rendering when it scrolls away. Device pixel ratio is capped at 2.

It respects the system. prefers-reduced-motion freezes every effect on a composed still frame rather than removing it. Text effects stay real text: selectable, searchable and readable by a screen reader, because they are DOM, not a canvas. Without WebGL2, elements fall back to a CSS gradient instead of an empty box.

No dependencies. No three.js, no GSAP, no framework. 14 kB gzipped, all in.

Custom effects

Every effect is a fragment shader that ends in vec4 fx(vec2 uv, vec2 p). The runtime supplies the version header, the uniforms and a library of noise, SDF and palette helpers. Register your own before first paint:

import { effects } from 'aura-fx';

effects['my-thing'] = {
  title: 'My thing', group: 'Custom', blurb: '', defaults: { speed: 1 },
  glsl: `vec4 fx(vec2 uv, vec2 p){
    return vec4(u_c2 * smoothstep(0.5, 0.0, length(p) + 0.2*sin(u_t)), 1.0);
  }`,
};

Uniforms available in every shader: u_res u_t u_mouse u_hover u_prog u_amp u_seed u_c1 u_c2 u_c3. Helpers: rot hash11/21/22/31 noise fbm fbm2 fbm3 pal sdSphere sdBox sdTorus sdRoundBox sdRoundRect smin tone. PRELUDE and EPILOGUE are exported if you want to read them.

Development

npx playwright install chromium   # once
npm run build     # dist/aura.min.js (IIFE, window.Aura) + dist/aura.esm.min.js
npm test          # compiles all 30 in headless Chromium and reads the pixels back
node verify.mjs   # renders the site and reports what a visitor actually gets
node og.mjs       # re-renders site/og.png from the live components
node capture.mjs  # frame-stepped launch video, never a screen recording

Set CHROME_PATH=/path/to/chrome if you want to point the tests at a Chromium you already have instead of Playwright's own download.

npm test is not a unit test. It drives a real browser, compiles every shader on a real GL pipeline, asserts each one paints a non-trivial image, and asserts the frame loop is actually advancing. A GLSL typo is invisible to anything less.

Licence

MIT. Use it in anything, including commercial work.

Built by Bles Software.

Read the rest on GitHub

Scan report · 2026-09-18
  • Prohibited terms or links
  • Repository eligibility
  • slopscore.md paperwork
  • Content policy
  • Risk review

From the balcony · 1 of 1 clapped

  1. Princessclapped
    Live demo, clear integration instructions, zero dependencies, MIT license, declared working status, and actual WebGL effects that appear functional.

Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.

0 comments

log in to comment.

report this listinglog in to report