Borrowing it
Nothing to install: this file belongs to Kenyi001/oraculo-radiohead. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Kenyi001/oraculo-radiohead/master/.cursor/skills/genjutsu/threejs-r3f/SKILL.mdgit clone --depth 1 https://github.com/Kenyi001/oraculo-radioheadWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kenyi001/oraculo-radiohead/threejs-r3f)<a href="https://agentmods.dev/skills/kenyi001/oraculo-radiohead/threejs-r3f"><img src="https://agentmods.dev/badge/skills/kenyi001/oraculo-radiohead/threejs-r3f/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kenyi001/oraculo-radiohead/threejs-r3f"><img src="https://agentmods.dev/badge/skills/kenyi001/oraculo-radiohead/threejs-r3f.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00026 | $0.01848 |
| Opus 5 | $0.00013 | $0.00924 |
| Sonnet 5 | $0.00005 | $0.00370 |
| Haiku 4.5 | $0.00003 | $0.00185 |
Grade A, and why
threejs-r3f scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to threejs-r3f — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 244 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Three.js & React Three Fiber
3D on the web. Three.js is the engine, R3F is the React renderer. Concise rules here. Deep-dive in
references/.
When to Use What
| Need | Tool | Why |
|---|---|---|
| Full 3D scene (models, lights, physics) | R3F + drei | Declarative, React-friendly, ecosystem |
| Vanilla 3D (no React) | Three.js direct | Lighter, no React overhead |
| Simple 3D transforms on UI | CSS transform3d |
GPU-composited, no WebGL context |
| 2D particles / generative | Canvas 2D | Simpler API, less GPU overhead |
| Shader-only visuals (no scene graph) | Raw WebGL / ShaderMaterial | Maximum control, minimal abstraction |
Scene Setup Patterns
import { Canvas } from '@react-three/fiber'
import { Environment, OrbitControls } from '@react-three/drei'
import { Suspense } from 'react'
<Canvas camera={{ position: [0, 2, 5], fov: 45 }} dpr={[1, 2]} gl={{ antialias: true }}>
<Suspense fallback={null}>
<Environment preset="studio" />
<OrbitControls makeDefault />
<Scene />
</Suspense>
</Canvas>
Rules:
- Always wrap scene content in
<Suspense>-- loaders (GLTF, textures, HDRI) need it - Set
dpr={[1, 2]}to clamp pixel ratio (Retina without melting GPUs) - Keep the Canvas parent component minimal -- re-renders propagate into the scene
R3F Hooks
| Hook | Purpose | Gotcha |
|---|---|---|
useFrame((state, delta) => {}) |
Per-frame logic (animation, physics) | Never setState inside |
useThree() |
Access gl, scene, camera, size, viewport, pointer | Destructure only what you need |
useLoader(TextureLoader, url) |
Load any Three.js resource | Wrap parent in Suspense |
useGraph(scene) |
Extract nodes/materials from loaded scene | Useful after useGLTF |
useFrame Tips
useFrame((state, delta) => {
// Use delta for framerate-independent animation
meshRef.current.rotation.y += delta * 0.5
// Access clock for time-based effects
material.uniforms.uTime.value = state.clock.elapsedTime
})
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 244 lines · 26 tokens per session scan A aeee54f83cd7
threejs-r3f is a skill published in the GitHub repository Kenyi001/oraculo-radiohead (0 stars, last pushed 14d ago), licensed MIT. It adds 26 tokens to every session and 1,848 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to threejs-r3f, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
p5js
Use when users request: p5.js sketches, creative coding, generative art, interactive visualizations, canvas animations, browser-based visual art, data viz, shader effects, or any p5.js project.
webgl-liquid-metal
A real-time liquid-metal shader — a domain-warped noise field shaded as molten chrome, with a sweeping specular highlight over an iridescent thin-film (cosine-palette) sheen. No textures. Rendered as a single self-contained index.html. Use when the brief asks for "liquid metal", "molten chrome", "iridescent"…
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 glVertexID), so the whole cloud draws in one call. Rendered as a single self-contained index.html. Use when the brief asks for a "particle field"…
webgl-horizontal-parallax
A horizontal-scroll WebGL gallery (Three.js): frames glide sideways with lerp smoothing and each image parallaxes its texture (UV shift) by its position in the viewport.
webgl-aurora-veil
A self-contained WebGL2 hero: layered aurora light curtains warped over a night sky scattered with stars; move the cursor to sway the veil.
remotion-to-hyperframes
Port an existing Remotion (React) composition's source to HyperFrames HTML. Use ONLY on an explicit ask to port/convert/migrate/translate a Remotion source — one-way, Remotion-only. A passing Remotion mention, reference-only code, or "make something like my Remotion video" is a fresh build (/general-video). Unclear →…