paper-cranes: Cursor rule for Cursor

.cursorrules

cursorrules is a cursor rule for Cursor from loqwai/paper-cranes. It costs 2,210 tokens per session, scanned A, original, BSD-3-Clause.

A set of coding rules for writing WebGL fragment shaders that turn music into changing visuals for LED lights. It focuses on detailed patterns, clear depth, and avoiding large blank areas.

In plain words
What is it for?
It is for creating and refining real-time music visualizations, including fractal patterns, ripples, waves, lighting effects, and screen-based LED output.
Why use it?
It gives the coding agent clear goals for making music-reactive visuals look active and intentional instead of flat or empty.

Cursor rule for Cursor

Written for Cursor: installed under .cursor/.

This is loqwai/paper-cranes's own configuration. It tells Cursor how to work on paper-cranes itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything paper-cranes configures →

Reuse

Borrowing it

Nothing to install: this file belongs to loqwai/paper-cranes. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/loqwai/paper-cranes/main/.cursorrules
Clone the repo
git clone --depth 1 https://github.com/loqwai/paper-cranes

Made for: Cursor.

Wrote 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.

agentmods badge for cursorrules

README.md
[![agentmods](https://agentmods.dev/badge/rules/loqwai/paper-cranes/cursorrules/github.svg)](https://agentmods.dev/rules/loqwai/paper-cranes/cursorrules)
Your own site
<a href="https://agentmods.dev/rules/loqwai/paper-cranes/cursorrules"><img src="https://agentmods.dev/badge/rules/loqwai/paper-cranes/cursorrules/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.

agentmods 80×15 button for cursorrules

Your own site · 80×15
<a href="https://agentmods.dev/rules/loqwai/paper-cranes/cursorrules"><img src="https://agentmods.dev/badge/rules/loqwai/paper-cranes/cursorrules.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 2,210 This file is loaded in full into every session.
When invoked 2,210 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.02210 $0.02210
Opus 5.5 $0.00884 $0.00884
Sonnet 5.5 $0.00442 $0.00442
Haiku 4.5 $0.00221 $0.00221

Measured 11d ago against content hash b0432bd63cc7, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

cursorrules 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.

.cursorrules · 279 lines

How it starts

The opening of the file, as written. The whole thing — 279 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Music Visualization Shader Requirements

Overview

These shaders are used to create real-time music visualizations that control LED lights through screen scraping. The goal is to create engaging, psychedelic patterns that react meaningfully to music while avoiding too many visual dead zones (solid black or white areas).

Core Requirements

Visual Quality

  • Create intricate, evolving fractal-like patterns
  • Maintain constant visual interest across the entire screen
  • Avoid large areas of solid black or white
  • Make the movement aesthetic and artistic, like something you'd see in an interactive art museum
  • Must maintain clear foreground/background separation
  • Can use SDF functions for depth and dimensionality
  • Can have clear visual hierarchy with rim lighting or edge effects
  • Can incorporate ripple and wave effects that dissipate naturally.
    • You can use getLastFrameColor() function to get the color of a given pixel of the last frame to do ripple effects and others.

Audio Reactivity

You use webgl shaders to create the visuals. There are a variety of them in the shaders folder. These shaders are snippets of a glsl fragment shader that have the initialization and uniform declarations added before rendering. The uniforms have a large amount of audio features and other utility functions. After the compilation, the first part of the shader looks like this:

#version 300 es
precision mediump float;
out vec4 fragColor;
uniform vec4 iMouse;
uniform float iTime;
uniform vec3 iResolution;
uniform sampler2D iChannel0;
uniform sampler2D iChannel1;
uniform sampler2D iChannel2;
uniform sampler2D iChannel3;
uniform int iFrame;

uniform float spectralCentroidNormalized;
uniform float spectralCentroidMean;
uniform float spectralCentroidMedian;
uniform float spectralCentroidStandardDeviation;
uniform float spectralCentroidZScore;
uniform float spectralCentroidMin;
uniform float spectralCentroidMax;
uniform float spectralCentroid;
uniform float spectralFluxNormalized;
uniform float spectralFluxMean;
uniform float spectralFluxMedian;
uniform float spectralFluxStandardDeviation;
uniform float spectralFluxZScore;
uniform float spectralFluxMin;
uniform float spectralFluxMax;
uniform float spectralFlux;
uniform float spectralSpreadNormalized;
uniform float spectralSpreadMean;
uniform float spectralSpreadMedian;
uniform float spectralSpreadStandardDeviation;
uniform float spectralSpreadZScore;
uniform float spectralSpreadMin;
uniform float spectralSpreadMax;
uniform float spectralSpread;
uniform float spectralRolloffNormalized;
uniform float spectralRolloffMean;
uniform float spectralRolloffMedian;
uniform float spectralRolloffStandardDeviation;
uniform float spectralRolloffZScore;
uniform float spectralRolloffMin;
uniform float spectralRolloffMax;
uniform float spectralRolloff;
uniform float spectralRoughnessNormalized;
uniform float spectralRoughnessMean;
uniform float spectralRoughnessMedian;
uniform float spectralRoughnessStandardDeviation;
uniform float spectralRoughnessZScore;
uniform float spectralRoughnessMin;
uniform float spectralRoughnessMax;
uniform float spectralRoughness;
uniform float spectralKurtosisNormalized;
uniform float spectralKurtosisMean;
uniform float spectralKurtosisMedian;
uniform float spectralKurtosisStandardDeviation;
uniform float spectralKurtosisZScore;
uniform float spectralKurtosisMin;
uniform float spectralKurtosisMax;
uniform float spectralKurtosis;
uniform float energyNormalized;
uniform float energyMean;
uniform float energyMedian;
uniform float energyStandardDeviation;
uniform float energyZScore;
uniform float energyMin;
uniform float energyMax;
uniform float energy;
uniform float spectralEntropyNormalized;
uniform float spectralEntropyMean;
uniform float spectralEntropyMedian;
uniform float spectralEntropyStandardDeviation;
uniform float spectralEntropyZScore;
uniform float spectralEntropyMin;
uniform float spectralEntropyMax;
uniform float spectralEntropy;
uniform float spectralCrestNormalized;
uniform float spectralCrestMean;
uniform float spectralCrestMedian;
uniform float spectralCrestStandardDeviation;
uniform float spectralCrestZScore;
uniform float spectralCrestMin;
uniform float spectralCrestMax;
uniform float spectralCrest;
uniform float spectralSkewNormalized;
uniform float spectralSkewMean;
uniform float spectralSkewMedian;
uniform float spectralSkewStandardDeviation;
uniform float spectralSkewZScore;
uniform float spectralSkewMin;
uniform float spectralSkewMax;
uniform float spectralSkew;
uniform float pitchClassNormalized;
uniform float pitchClassMean;
uniform float pitchClassMedian;
uniform float pitchClassStandardDeviation;
uniform float pitchClassZScore;
uniform float pitchClassMin;
uniform float pitchClassMax;
uniform float pitchClass;
uniform float bassNormalized;
uniform float bassMean;
uniform float bassMedian;
uniform float bassStandardDeviation;
uniform float bassZScore;
uniform float bassMin;
uniform float bassMax;
uniform float bass;
uniform float midsNormalized;
uniform float midsMean;
uniform float midsMedian;
uniform float midsStandardDeviation;
uniform float midsZScore;
uniform float midsMin;
uniform float midsMax;
uniform float mids;
uniform float trebleNormalized;
uniform float trebleMean;
uniform float trebleMedian;
uniform float trebleStandardDeviation;
uniform float trebleZScore;
uniform float trebleMin;
uniform float trebleMax;
uniform float treble;
uniform bool beat;

Read the full file on GitHub · 279 lines

Changes

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.

  1. 11d ago First seen · 279 lines · 2,210 tokens per session scan A b0432bd63cc7

Subscribe to this mod's changes

cursorrules is a cursor rule published in the GitHub repository loqwai/paper-cranes (7 stars, last pushed 3d ago), licensed BSD-3-Clause. It adds 2,210 tokens to every session, about $0.0088 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-02.