npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@sprite-foundry/fantasy-villains-hd

v1.0.1

Published

Fantasy Villains HD | 16 villain archetypes × 8 directions × 4 layers | high-fidelity 2.5D de-lit sprite pack (512px, engine-relightable)

Downloads

410

Readme

16 high-fidelity 2.5D fantasy villains — de-lit, engine-relightable, 8-direction. The HD companion to @sprite-foundry/fantasy-villains-48: the same rogues' gallery and the same export contract, rebuilt at illustration fidelity for games that light their sprites at runtime (HD-2D / 2.5D). A full antagonist roster — dark mirrors of the heroes, plus mid-bosses and monsters.

Fantasy Villains HD lineup

Why de-lit?

These sprites carry form and material; your engine supplies the light. That is the HD-2D contract (Octopath Traveler, Sea of Stars): a placed light casts real shadows, the normal map turns a flat billboard into volume, the mask's ambient-occlusion deepens the folds and its roughness lets blackened steel catch a highlight the robe doesn't. The same villain reads correctly at noon, at dusk, and in a torch-lit throne room — from one pack.

What's Included

16 villain archetypes, each with 8 directional views × 4 map layers at 512×512, foot-anchored (pivot [0.5, 1.0]):

| Variant | Role | Identity cue | |---------|------|--------------| | Blackguard | Elite tank | Blackened plate, horned helm, halberd | | Dread Ranger | Ranged hunter | Black hooded cloak, recurve bow, red emblem | | Necromancer | Summoner / caster | Dark cloak, hollow-eyed stare, skull-topped staff | | Assassin | Flanker | Green-black leather, hood, twin curved daggers | | Cult Priest | Support / debuffer | Deep-red ritual robes, horned headdress | | Reaver | Heavy damage | Bare scarred chest, massive cleaver | | Warlord | Commander | Red-and-gold armor, plumed helm, cape | | Dark Monk | Fast specialist | Bald, black-grey martial robes, red sash | | Vampire Lord | Aristocratic undead | Ornate black-and-crimson robes, dark crown, high collar | | Gorgon | Petrifying monster | Snake hair, green scales, bronze Greek armor | | Mind Tyrant | Psychic overlord | Tentacled face, psychic crown, purple robes | | Corrupted Paladin | Fallen holy warrior | Cracked holy armor, dark broken halo | | Witch | Forest curse weaver | Dark green robes, tall crooked hat | | Bandit King | Outlaw warlord | Fur cloak, crown of thorns, twin swords | | Dark Elf Matriarch | Spider-themed ruler | White hair, dark-purple robes, spider motif | | Plague Doctor | Pestilence bringer | Bird-beak mask, dark waxed coat, censer |

The four layers

| Layer | What it is | Use it for | |---|---|---| | albedo | de-lit base colour — no baked light, shadow, or AO | the sprite; your engine lights it | | normal | view-space surface normals — OpenGL-style (Y up), blue ≈ toward camera (flip green for DirectX) | real-time directional lighting | | mask | R = ambient occlusion · G = roughness · B = emissive | contact shadows, material sheen, self-glow | | depth | linear camera-distance (white = near) | parallax / tooling (not 2D lighting) |

Every layer is pixel-aligned across the 8 directions; each villain ships a manifest.json (schema_version 2.0.0) with a per-file SHA-256, the pivot, the mask channel map, and per-engine notes.

Install

npm install @sprite-foundry/fantasy-villains-hd

Folder Structure

assets/
  blackguard/
    albedo/    8 directional PNGs (front, front_left, left, back_left, back, back_right, right, front_right)
    normal/    8 matching view-space normal maps
    mask/      8 matching AO/roughness/emissive masks
    depth/     8 matching depth maps
    manifest.json
  ...15 more

Engine Compatibility

Plain PNG + JSON — load them anywhere, then wire the layers into your lighting pipeline:

  • Godot 4albedo on a Sprite2D, normal via CanvasTexture.normal_texture, a PointLight2D; sample mask.g for specular, mask.r to modulate ambient.
  • Unity URP (2D)albedo_BaseMap, normal_NormalMap, mask_MaskMap (R=AO, G=roughness).
  • Phaser / PixiJS / customalbedo + normal into the 2D lighting pipeline; mask / depth are tooling-side.

manifest.json carries the per-engine notes in engineNotes. No engine-specific format, no runtime dependency.

The -hd line vs the 48 line

fantasy-villains-48 (retro 48px pixel-art) and fantasy-villains-hd are parallel tiers, not a breaking upgrade. Same 16 villains, same direction order, same foot-anchored framing — ship the 48px pack for a pixel game, ship -hd for a high-fidelity 2.5D game. Pick the tier your renderer wants.

Specs

  • Variants: 16 villain archetypes
  • Tile size: 512 × 512 px
  • Directions: 8
  • Layers: albedo + normal + mask (AO/roughness/emissive) + depth
  • Total sprites: 512 (16 × 8 × 4)
  • Format: transparent PNG + manifest.json (schema 2.0.0)
  • Pivot: [0.5, 1.0] (foot-anchored)

How it's made (and why it's commercial-clean)

Each villain starts as a fresh high-fidelity concept in a house-trained painterly style (Qwen-Image, Apache-2.0). The 8 directional views are generated without a 3D meshQwen-Image-Edit-2511 (Apache-2.0) rotates the camera around the character while holding identity, so the face and detail survive every angle. Each view is then decomposed into its 2.5D layers by single-image estimators: a de-lit albedo + roughness from Marigold-IID (Apache-2.0 code, OpenRAIL weights — commercial-OK), real surface normals from Marigold-Normals, depth from Depth-Anything-V2-Base (Apache-2.0), a clean alpha matte from BiRefNet (MIT), and ambient occlusion derived from the depth — then packed to the contract above. The original fantasy-villains-48 silhouette, palette, and signature prop are preserved per villain. Identity stays in the image model — no InsightFace / InstantID / face-adapter weights (which carry non-commercial licenses) touch this pack. Every component is Apache-2.0 / MIT / commercial-OpenRAIL; the assets are yours to ship.

Security

This package contains only static PNG images and JSON metadata — no executable code, no install hooks, no network access, no telemetry. See SECURITY.md.

License

MIT — use in commercial and non-commercial projects.

Credits

Built by MCP Tool Shop with the Sprite Foundry no-mesh 2.5D pipeline (Qwen-Image + Qwen-Image-Edit + Marigold + Depth-Anything-V2).