Skip to content
Conduit

skill

fun-skills

Generative SVG interior scenes & hand-inked sketchnotes via deterministic physics evals, metric arithmetic & self-improving agent loops

surendranb/fun-skillscommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/surendranb/fun-skills itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 23, 2026

Fun Skills: Spatial & Doodle Architects

Generative SVG architectural interiors and hand-inked sketchnotes engineered through deterministic physics evals, metric perspective arithmetic, kinematic motor curves, and self-improving feedback loops.


Table of Contents


The Core Innovation: Deterministic Evals > Vague Prompting

LLMs struggle with spatial reasoning, perspective foreshortening, and authentic motor kinematics when prompted naively. They generate floating clip-art, impossible lighting angles, and sterile geometric boxes.

Fun Skills solves this by pairing generative skills with deterministic evaluation engines:

  1. Mathematical Grounding: Every scene begins with declared metric scales (288px = 1m), floor datum planes (y = 720), and standing camera heights ($H_{\text{cam}} = 1.65\text{m}$).
  2. Deterministic AST Evals: The evaluation script parses the raw SVG DOM to enforce 31 non-negotiable physical laws (emitter-to-pool optics, span closures, contact shadows, collision prevention).
  3. Pixel-Tier Luminance Histograms: Headless Chrome renders the output and verifies that shadows reach deep tones, highlights pop, and zero pure black (#000000) is used.
  4. Self-Improving Loops: The agent runs the eval, receives structured programmatic error diffs, and corrects the SVG code until it reaches 0 errors.

The Showcase: One Brief, Two Architects

We asked both skills to render the exact same real-world scene:

"Kyoto Kissaten: Gion district morning drip coffee counter with Shoji window looking out to bamboo, Hinoki bar slab, copper gooseneck kettle, triple brass V60 drip station, calligraphy menu slats, and shop cat."


1. Spatial Architect: Kyoto Kissaten

8-Shot Progression & Physics Eval Loop

ShotVisual StateWhat the Eval Pointed OutHow We Fixed It
01FAIL (3 errors):• datum_declared: Missing floor datum• scale_declared: No metric scale• camera_height: Ungrounded floating coordinatesStated Stage 0 metric brief: declared <!-- SCALE: 288px = 1m --> and <!-- DATUM y=720 --> reference plane.
02FAIL (2 errors):• room_declared: Missing 3D room boundary• envelope_closes: No foreshortened floor planksDeclared <!-- ROOM: 5.00w x 6.00d x 3.12h -->. Built Phase 1 envelope: plaster back wall (y=0..720), foreshortened hinoki floor (y=720..900), and cedar baseboard.
03WARN:• wall_collisions: Fixtures colliding with aperture frame• Missing garden depth cueOrdered Phase 2 Apertures before Phase 3 Fixtures. Added shoji window frame with misty bamboo silhouettes and cedar menu slats.
04ERROR pool_shape_mismatch:• Window aperture projected to a round ellipse pool instead of a quadrilateral.Replaced ellipse with Law F3 floor-projected quadrilateral polygon: <polygon id="sun-pool" points="380,720 900,720 1020,900 260,900" /> aligned to 34° morning sunbeam.
05ERROR object_scale:• Counter height eyeballed rather than derived from metric scale.Derived exact 0.80m bar height ($230\text{px}$) from $288\text{px} = 1\text{m}$. Added data-real="2.64x0.72" to solid hinoki counter casework in Phase 5.
06WARN density:• Flat prop surfaces lacking Gibsonian physical affordancesAdded Phase 6 artisanal pour-over gear: copper gooseneck kettle, triple brass V60 station, ceramic cones, amber bean jars, matcha chawan, and cup on saucer.
07ERROR no_pure_black & floor_contact:• Pure #000000 black shadows• Missing contact occlusion at datumReplaced black with warm indigo #2c1d11 and cedar #5c4033 contact shadows beneath counter slab, along baseboard, and under props at datum y=720.
08PASS (0 errors, 0 warnings):• Pixel-tier histogram verified• All 31 physical rules satisfiedGrounded bentwood stools on datum y=720 (data-real="0.24x0.45"), added curling steam wisps, and applied zero-JS GPU architectural paper grain shader.

2. Doodle Architect: Kyoto Kissaten

8-Shot Progression & Kinematic Inking Loop

ShotVisual StateWhat the Eval Pointed OutHow We Fixed It
01FAIL (4 violations):• Rigid <rect> & <line> primitives• Monotone #000000 black strokes• Zero motor kinematics or human hand variationRejected rigid primitives. Established freehand composition with organic coordinate spacing.
02WARN:• Unbalanced focal hierarchyFormulated the visual blueprint: Shoji window left, counter slab center, equipment band, and foreground stools.
03FAIL motor_kinematics:• Straight polygon segmentsApplied Wood et al. quadratic Bézier wrist bowing (Q curves with $d/L \in [0.01, 0.04]$ chord normal deflection) and corner vertex overshoots.
04FAIL stroke_hierarchy:• Monotone stroke weightsEnforced 3-tier hierarchy: 4.0px hero contours (shoji/counter), 2.5px props, 1.2px fine interior wood grain and texture hatching.
05FAIL phases_ordered:• Washes painted over ink strokesStructured DOM into strict phases: Phase 2 watercolor washes rendered underneath ink lines with 3–5px deliberate misregistration.
06WARN storytelling_density:• Missing atmospheric lifeAdded curling coffee steam wisps, falling drip droplets, Kanji calligraphy slats (珈琲, 深煎, 抹茶), and sleeping cat mascot.
07WARN typography_human:• System sans-serif labelsReplaced with organic hand lettering, title banner with coral accent underline, and callout annotations.
08PASS (0 violations):• AST schema validated• Archival paper shader renderedAdded zero-JS GPU archival cotton-rag paper texture and micro-scale stroke inking friction shader (scale=0.8).

How to Install & Use with Your AI Agent

Google Antigravity & Gemini CLI

Clone this repository into your agent skills directory or symlink directly:

# Clone the skills library
git clone https://github.com/surendranb/fun-skills.git ~/skills/fun-skills

# Symlink into your Antigravity / Gemini skills folder
ln -s ~/skills/fun-skills/skills/spatial-architect ~/.gemini/antigravity/skills/spatial-architect
ln -s ~/skills/fun-skills/skills/doodle-architect ~/.gemini/antigravity/skills/doodle-architect

Claude Code & Claude Desktop

Add the skills to your project root or Claude config:

# Copy into your active workspace .claude/skills directory
mkdir -p .claude/skills
cp -r ~/skills/fun-skills/skills/* .claude/skills/

Cursor, Windsurf, or Any LLM Harness

Simply instruct your coding assistant to follow the prompt rules in skills/spatial-architect/SKILL.md or skills/doodle-architect/SKILL.md.

Prompting Example:

"Using the Spatial Architect skill, generate a 1440x900 SVG interior scene for a 1970s Tokyo jazz kissa at 11:00 PM. Follow the 6-phase pipeline, declare datum at y=720, derive all casework from scale 288px=1m, and evaluate the scene with eval_scene.py."


Running the Deterministic Evaluation Suites

# 1. Evaluate Spatial SVG Scene (31 Physical AST & Pixel-Tier Checks)
python3 skills/spatial-architect/scripts/eval_scene.py examples/spatial/01-kyoto-kissaten/kyoto-kissaten.html --render

# 2. Run the 31-Rule Physics Test Suite
python3 skills/spatial-architect/scripts/test_rules.py

# 3. Evaluate Doodle SVG Sketchnote (Kinematic AST & Palette Compliance)
python3 skills/doodle-architect/scripts/eval_doodle.py examples/doodle/01-kyoto-kissaten/kyoto-kissaten-doodle.svg

Repository Structure

fun-skills/
├── README.md                                # 8-Shot progression grids & eval loop documentation
├── LICENSE
├── plugin.json
├── pyproject.toml
│
├── skills/
│   ├── spatial-architect/                   # Realistic 2.5D interior scenes engine
│   │   ├── SKILL.md                         # 6-stage physical pipeline prompt
│   │   ├── references/                      # Mathematical laws (F1–F8, L1–L10) & rubric
│   │   └── scripts/                         # 52KB eval_scene.py + 31-rule test suite
│   │
│   └── doodle-architect/                    # Hand-inked sketchnotes engine
│       ├── SKILL.md                         # Motor kinematics & wrist bowing prompt
│       ├── references/                      # Kinematic formulas & watercolor shaders
│       └── scripts/                         # eval_doodle.py AST evaluator
│
└── examples/
    ├── spatial/
    │   └── 01-kyoto-kissaten/               # Master Spatial scene, 8 shots, grid & PDF
    │
    └── doodle/
        └── 01-kyoto-kissaten/               # Master Doodle scene, 8 shots, grid & PDF

License

MIT © 2026 Surendran Balachandran

↑↓ navigate openesc close