Install any skill in seconds. Free to start, no credit card required.
Get Started Free →nexu-io/webgl-particle-galaxy
A real-time particle galaxy — tens of thousands of additive-blended GPU points spiraling around a bright core, their orbits solved entirely in the vertex shader (from gl_VertexID), so the whole cloud draws in one call. Rendered as a single self-contained `index.html`.
Passed 6 of 23 test cases with the skill, and 9 of 23 without it.
2 fixed4 passed either way12 still failing5 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 2 test cases the skill fixed. Same model, same prompt, with and without the skill.
I am developing a WebGL2 simulation that requires physics collisions between particles. I want to use WebGL2 Transform Feedback with double-buffered Vertex Buffer Objects (VBOs) so the GPU writes updated positions back into attribute buffers every frame. Provide an HTML page demonstrating WebGL2 Transform Feedback.
| Checked | Without skill | With skill |
|---|---|---|
| Creates Transform Feedback objects using gl.createTransformFeedback. | Missed | Passed |
| Uses Vertex Buffer Objects to store particle state across frames. | Missed | Passed |
The instructions your model reads when the skill loads.
Produce a single self-contained index.html that renders a real-time particle system full-screen, with a clean typographic overlay on top. The signature move: compute each particle's position on the GPU so the CPU never loops over particles.
OpenDesign detects getContext('webgl2') and renders this file in powered preview — a cross-origin-isolated iframe with allow-same-origin. The full GPU pipeline is available; you do not need to work around the opaque sandbox.
webgl-particle-galaxy/
├── SKILL.md ← you're reading this
└── example.html ← a working 50,000-point WebGL2 galaxy (READ FIRST)
Read example.html end to end. Note the shape: no vertex buffer — the vertex shader reads gl_VertexID, hashes it into a stable per-particle seed, and derives a log-spiral orbit with an inner-fast rotation curve. Points are drawn with gl.drawArrays(gl.POINTS, 0, N) in one call, additive-blended (blendFunc(ONE, ONE) with premultiplied color) so overlapping points glow.
Choose a field the vertex shader can express cheaply from gl_VertexID + uTime:
speed ≈ k / (r + ε), thin disk.index.htmlgl_PointSize), clamped and DPR-aware; soft round sprites via gl_PointCoord + a gaussian falloff in the fragment shader.blendFunc(ONE, ONE) reads as glow, not double-exposure.getShaderInfoLog / getProgramInfoLog) so a typo fails loudly.#63fe13 for the arms and a white-blue core).test cases passed, vs 9 / 23 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.