Basic Cohub abilities. Most agents already have these mounted; listed here for reference.
Platform Published by the Neta team.
Official Made by the Neta team.
Verified Reviewed by the Neta team.
Community Shared by a Cohub user. Not reviewed — read SKILL.md before you use it.
side-sprite-creatures
Officialneta-search/side-sprite-creatures
Use it in Cohub
Paste this into your agent's chat — it fetches the skill and follows it.
Use the skill: side-sprite-creatures. Run `npx -y @neta-art/neta-search-cli@latest skills use neta-search/side-sprite-creatures --via site` and follow what it prints. Read its complete output, redirecting it to a temporary file first if necessary, and resolve relative paths from the skill directory it prints.
npx -y @neta-art/neta-search-cli@latest skills use neta-search/side-sprite-creatures
Summary
Turn one creature into a playable, animated sprite set from a single generated image.
Works for four-legged creatures, flying creatures, and fish or water creatures, each with five matching actions.
You get a playable page: walkers run and jump, flyers and swimmers roam freely, and it idles as a desk pet when untouched.
You also get a ready-to-use sprite pack with transparent strips, single frames, and GIFs for dropping into a game.
Works best with a creature that already has a clear look: body shape, coat or feather or scale details, and colouring.
Comes with ground, sky, or water backdrops (grass, sand, snow, dusk, night, sea, pond) to match the page's mood.
SKILL.md
# Side sprite creatures
One creature, five matching actions from **one** generated sheet (≈30–60 s, one image), 8 frames each, one
shared scale. The body decides the actions and how the page plays:
| `--body` | for | actions (rows) | page `--mode` | `--ground` |
|---|---|---|---|---|
| `quadruped` | dog, cat, fox, wolf, horse, deer, lion, hippogriff, a walking dragon | idle walk run jump hit | `ground` — walks a side-view ground | `grass` (default) `stone` `sand` `snow` `wood` `night` |
| `flying` | bird, owl, phoenix, flying dragon, bat, moth / butterfly-like | hover fly glide takeoff landing | `fly` — roams a sky | `sky` (default) `dusk` `night` |
| `aquatic` | fish, koi, goldfish, shark, dolphin, eel-like | swim dive idle dash rise | `swim` — roams a water tank | `sea` (default) `pond` `night` |
1. **A playable page (web Work)** — the hand-over card. Walkers: ← → (Shift runs), ↑ jumps. Flyers / swimmers
move freely with the arrow keys (Shift = glide / dash) and pick the right action from the motion (rising,
diving, dashing); left alone they wander like a desk pet; tapping them startles them, tapping elsewhere
sends them there. The action bar / number keys play any action.
2. **The sprite pack** (`assets.zip`, also on the page): `spritesheet.png` (one row per action) + `actions.json`,
`<action>.png` strips, single frames, GIFs, `README.txt`. Flyers / swimmers animate in place (the game moves them).
## 0. Settle the creature (no generation before this)
- **Which creature** — one named or described creature. One in this world counts: `node /mods/neta/neta atom
list --query <name>` (creatures may be `creature`, `character` or `object` atoms; try the user's wording and
the original name), then `atom get <id>`. Cover = first `media` entry, relative to the atom file:
`world/creature/X.md` + `../media/studio/creature/X.jpeg` → `world/media/studio/creature/X.jpeg`.
Not named → **stop and ask** in one short round (a few of this world's creatures + a write-in). Never pick it.
- **Which body** — from the creature: four legs on the ground → `quadruped`; lives in the air → `flying` (a winged
horse or griffin people ride → `quadruped`, unless the user wants it flying); lives in water → `aquatic`.
Not one of these (a person or other two-legged character → `side-sprite-actions`; a snake, jellyfish, octopus,
insect swarm) — say this skill draws four-legged, winged and fish-like creatures; don't force it.
- **Defaults, no question** — side view facing right; the user's style, else the world's `visualStyle`
(`neta config get`); all five actions. "Pixel art / 像素" → `--pixel`. "桌宠 / desk pet / 鱼缸" just means the
page; nothing extra to do.
## 1. Three commands
```bash
SK=<skill-dir> # the folder this SKILL.md is in (what `skills use` printed) — never /mods/… or .agents/skills/…
cd /workspace
node /mods/neta/neta work init web works/web/<creature-slug>-actions --title "<creature> · 动作图鉴"
REF=<data.workDir it printed> # may be normalized to works/webs/…
bash "$SK/scripts/creature.sh" "$REF" --body <quadruped|flying|aquatic> \
--who "<one concrete sentence: species, build, head, coat / feathers / scales, markings, colours>" \
--style "<one sentence>" [--cover <workspace path from step 0>] [--pixel]
bash "$SK/scripts/make-page.sh" "$REF" --title "<creature> · 动作图鉴" \
--subtitle "<style · side view · 5 actions>" --lang zh --mode <ground|fly|swim> --ground <see table> [--pixel]
node /mods/neta/neta work publish web "$REF" --thumbnail-wait 4000
```
- `creature.sh` must end with `[creature] ok`: it generates the sheet (retries once if the model returns
nothing), slices it and writes `$REF/actions/<5 ids>/`. **Don't open frames or sheets to check them.** Only if
it printed a `note: … touched the panel edge` line, look once at the strip it names and run `creature.sh` again
(same arguments) only if the creature is visibly cut off. Never more than one regeneration.
- Pink / magenta creature → add `--isnet` (slower: the first use in a world installs a model, 4–9 min).
- `make-page.sh`: title / subtitle in the user's language; `--lang` = that language (zh en ja es pt ru);
`--mode` from the table (quadruped → `ground`, flying → `fly`, aquatic → `swim`); `--ground` where it lives.
Must print `[page] ok`. Don't edit `index.html`; leave `meta.json` to the CLI.
- `world_slug_required` on publish → follow the printed hint (slug from the world's name), retry once.
## 2. Hand over
Reply in the user's language via the `interaction-components` skill, each card a full `<interaction-json>` link
block on its own line:
1. The page: `{"type": "work", "workId": "<preview.workId from $REF/meta.json>"}` — never a made-up id, never a
`studio-route` with a world id from `.neta/runtime.json`.
2. The pack: `{"type": "world-file", "path": "$REF/assets.zip"}`.
In two or three lines: the creature, the five actions (8 frames each), how to play with the page, transparent
PNGs, `spritesheet.png` = one row per action (`actions.json` / `README.txt`). The generated sheet also stays in
the world as an image Work (source material).
## Don't
- Pick the creature, or generate before it is settled.
- Generate per action — one sheet holds all five.
- Write your own prompt, slicing, scaling or packing script — `creature.sh` and `make-page.sh` are the pipeline.
- Use another image model, or run generation from inside `/tmp` or a sub-folder.