vector-art

Vector art assets (characters, objects, scenes) sources for SVG/Canvas and how to animate them

16 stars

Best use case

vector-art is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Vector art assets (characters, objects, scenes) sources for SVG/Canvas and how to animate them

Teams using vector-art should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/vector-art/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/ai-agents/vector-art/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/vector-art/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How vector-art Compares

Feature / Agentvector-artStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Vector art assets (characters, objects, scenes) sources for SVG/Canvas and how to animate them

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# SKILL: Vector Art APIs

Follow the **Puppet Master architecture**: assign each asset category a dedicated source, then composite and animate in-browser.

---

## Architecture Overview

| Role          | Source                  | Access            | Notes                                      |
| ------------- | ----------------------- | ----------------- | ------------------------------------------ |
| **Actors**    | DiceBear (Open Peeps)   | HTTP API          | Deterministic characters with poses/moods  |
| **Scenes**    | unDraw                  | Static slug index | Background illustrations for contexts      |
| **Objects**   | Iconify                 | HTTP API + search | Searchable props, consistent per set       |
| **Clipart**   | Openverse / OpenClipart | HTTP API          | General SVG search, CC0/open license       |
| **Logos**     | Simple Icons            | CDN URL           | Brand assets, no auth                      |
| **Props**     | Lucide / Phosphor       | NPM import        | Small objects, animate as React components |
| **Animation** | GSAP or anime.js        | JS library        | Translate/morph entire SVG groups          |

---

## Source Reference

### 1. DiceBear — Actors (BEST FOR CHARACTERS)

Deterministic avatar generation. Same seed = same character across scenes.

```
Base: https://api.dicebear.com/9.x/
SVG:  GET https://api.dicebear.com/9.x/{style}/svg?seed={name}&{params}
```

Key styles for storytelling:

- `open-peeps` — hand-drawn humans, supports pose + face params (RECOMMENDED)
- `avataaars` — cartoon faces
- `micah` — minimal illustrated characters

Open Peeps params:

```
face=      scared | happy | sad | rage | explaining | ...
body=      standing | sitting | ...
seed=      any string — use character name for consistency
```

Example:

```
https://api.dicebear.com/9.x/open-peeps/svg?seed=Alice&face=happy&body=standing
```

Docs: https://www.dicebear.com/how-to-use/http-api/

---

### 2. Iconify — Objects & Props (BEST FOR SEARCHABLE ASSETS)

REST API, CORS-open, no auth. 200k+ SVGs across 100+ sets.

```
Search:    GET https://api.iconify.design/search?query={term}&limit=10
Fetch SVG: GET https://api.iconify.design/{prefix}/{name}.svg
List sets: GET https://api.iconify.design/collections
```

Search response fields: `icons[]` — each is `"{prefix}:{name}"`

Illustration-grade sets (use for visual consistency):

- `flat-color-icons` — colorful objects
- `noto-emoji` — expressive emoji-style
- `openmoji` — open emoji
- `twemoji` — Twitter emoji style

Example flow:

```js
const res = await fetch("https://api.iconify.design/search?query=tree&limit=5");
const { icons } = await res.json(); // e.g. ["flat-color-icons:tree"]
const [prefix, name] = icons[0].split(":");
const svg = await fetch(`https://api.iconify.design/${prefix}/${name}.svg`).then((r) => r.text());
```

---

### 3. unDraw — Scene Backgrounds

High-quality MIT-licensed scene illustrations (office, team, error states, etc.).

No live search API. Use a static slug index:

- Community slug list: https://github.com/sw-yx/undraw-urls
- NPM: `undraw-js` or `react-undraw-illustrations`

URL pattern (once you have a slug):

```
https://undraw.co/illustrations/{slug}   ← browse
SVG direct: not publicly CDN'd — use NPM package or embed via react-undraw
```

Agent strategy: maintain a curated keyword→slug map for your narrative's scene types
(e.g., `"office" → "working_late"`, `"error" → "fixing_bugs"`).

---

### 4. Openverse — General SVG Search

Searches across open-licensed media including SVGs from Wikimedia, Flickr, etc.

```
Search: GET https://api.openverse.org/v1/images/?q={query}&extension=svg
```

Response fields: `url`, `thumbnail`, `license`, `license_url`, `creator`, `source`

Notes:

- No auth for basic use; register for higher rate limits
- License accuracy not guaranteed — verify `license` field before use
- Filter: only use `cc0`, `pdm`, `by`, or `by-sa` licenses

---

### 5. OpenClipart — Public Domain SVGs

All CC0. Native SVG. Style is inconsistent but good for prototyping.

```
Search: GET https://openclipart.org/search/?query={term}&format=json
```

Docs: https://openclipart.org/developers

---

### 6. Wikimedia Commons — Mixed License SVGs

Large archive; must handle attribution carefully.

```
Search: GET https://commons.wikimedia.org/w/api.php
  ?action=query
  &generator=search
  &gsrsearch=filetype:svg {query}
  &gsrlimit=10
  &prop=imageinfo
  &iiprop=url|extmetadata
  &format=json
```

Key response fields: `imageinfo[].url`, `extmetadata.LicenseShortName`, `extmetadata.Artist`

Always store attribution. Prefer CC0/PD results.

---

### 7. Simple Icons — Brand Logos Only

```
Fetch: https://cdn.simpleicons.org/{slug}.svg
```

Slugs match lowercase brand names (e.g., `github`, `openai`, `typescript`).
No auth, no search needed.

---

### 8. Noun Project — Requires Auth

Large library (~5M icons), full search API.

```
Search: GET https://api.thenounproject.com/v2/icon?query={term}
Auth:   OAuth 1.0
Docs:   https://api.thenounproject.com/documentation.html
```

Free tier: public domain icons only. Returns attribution string — must display it.

---

## Asset Manifest (Required for All Downloaded Assets)

Before using any fetched SVG in rendering, freeze it locally with a manifest entry:

```json
{
  "id": "unique-local-id",
  "source": "iconify",
  "source_url": "https://api.iconify.design/flat-color-icons/tree.svg",
  "license": "MIT",
  "creator": "",
  "sha256": "...",
  "tags": ["tree", "nature", "plant"]
}
```

---

## Animation Stack

**GSAP** (industry standard, free for most uses):

```js
gsap.to("#character", { x: 400, duration: 2, ease: "power2.inOut" });
gsap.timeline().to("#actor", { y: -20, duration: 0.3 }).to("#actor", { y: 0, duration: 0.3 });
```

**anime.js** (lighter alternative, fully open source):

```js
anime({ targets: "#character", translateX: 400, duration: 2000, easing: "easeInOutQuad" });
```

**Key principle:** Animate entire SVG groups (`<g>` elements) via translate/scale rather than
trying to manipulate internal paths — external SVGs often have unpredictable internal structure.

---

## Decision Flow for Agents

```
Need a CHARACTER?    → DiceBear open-peeps (seed=name, set face/body params)
Need a SCENE/BG?    → unDraw (keyword→slug map) or Openverse (filter license=cc0)
Need an OBJECT/PROP?→ Iconify search → pick flat-color-icons set for consistency
Need a BRAND LOGO?  → Simple Icons CDN
Need ANYTHING ELSE? → Openverse search → verify license → freeze to manifest
Animating?          → GSAP timeline; target <g> wrappers; translate whole elements
Style consistency?  → Commit to ONE Iconify set for all non-character assets
```

---

## CORS & Practical Notes

- **CORS-open (no proxy needed):** Iconify, DiceBear, Simple Icons, Openverse
- **May need proxy:** Wikimedia, OpenClipart (test first)
- **Requires backend:** Noun Project (OAuth), Pixabay vectorURL field
- **Inline SVGs** into the DOM so GSAP/anime.js can target their elements directly;
  don't use `<img src=".svg">` if you need to animate internal parts

Related Skills

---name: aav-vector-design-agent

16
from diegosouzapw/awesome-omni-skill

description: AI-powered adeno-associated virus (AAV) vector design for gene therapy including capsid engineering, promoter selection, and tropism optimization.

langchain4j-vector-stores-configuration

16
from diegosouzapw/awesome-omni-skill

Configure LangChain4J vector stores for RAG applications. Use when building semantic search, integrating vector databases (PostgreSQL/pgvector, Pinecone, MongoDB, Milvus, Neo4j), implementing embedding storage/retrieval, setting up hybrid search, or optimizing vector database performance for production AI applications.

vector-index-tuning

16
from diegosouzapw/awesome-omni-skill

Optimize vector index performance for latency, recall, and memory. Use when tuning HNSW parameters, selecting quantization strategies, or scaling vector search infrastructure.

vector-database-engineer

16
from diegosouzapw/awesome-omni-skill

Expert in vector databases, embedding strategies, and semantic search implementation. Masters Pinecone, Weaviate, Qdrant, Milvus, and pgvector for RAG applications, recommendation systems, and similar

agentuity-cli-cloud-vector-upsert

16
from diegosouzapw/awesome-omni-skill

Add or update vectors in the vector storage. Requires authentication. Use for Agentuity cloud platform operations

agentuity-cli-cloud-vector-stats

16
from diegosouzapw/awesome-omni-skill

Get statistics for vector storage. Requires authentication. Use for Agentuity cloud platform operations

agentuity-cli-cloud-vector-search

16
from diegosouzapw/awesome-omni-skill

Search for vectors using semantic similarity. Requires authentication. Use for Agentuity cloud platform operations

agentuity-cli-cloud-vector-list-namespaces

16
from diegosouzapw/awesome-omni-skill

List all vector namespaces. Requires authentication. Use for Agentuity cloud platform operations

agentuity-cli-cloud-vector-get

16
from diegosouzapw/awesome-omni-skill

Get a specific vector entry by key. Requires authentication. Use for Agentuity cloud platform operations

agentuity-cli-cloud-vector-delete

16
from diegosouzapw/awesome-omni-skill

Delete one or more vectors by key. Requires authentication. Use for Agentuity cloud platform operations

agentuity-cli-cloud-vector-delete-namespace

16
from diegosouzapw/awesome-omni-skill

Delete a vector namespace and all its vectors. Requires authentication. Use for Agentuity cloud platform operations

AgentDB Vector Search

16
from diegosouzapw/awesome-omni-skill

Implement semantic vector search with AgentDB for intelligent document retrieval, similarity matching, and context-aware querying. Use when building RAG systems, semantic search engines, or intelligent knowledge bases.