RuiC Card Skill

A skill that turns one sentence or a reference image into a 3D holographic card web page and an editable Blender project

  • 595 ★ on the repository
  • Last commit
Skill

Extended access

Why this level

  • The pipeline runs Python and Node.js scripts and installs the viewer's dependencies through npm
  • On first run it downloads a portable Blender from the internet into the project folder
  • It starts a local server and a headless browser to verify the page
All reasons and checks

hruiccc/ruic-card-skill

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/ruic-card-skill

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The pipeline runs Python and Node.js scripts and installs the viewer's dependencies through npm
  • On first run it downloads a portable Blender from the internet into the project folder
  • It starts a local server and a headless browser to verify the page

This is third-party code. Review the repository files before installing.

What it does

RuiC Card Skill walks an agent from a description to a finished collectible card with a holographic foil effect. You write a phrase like "an ink-wash koi card with calligraphy lettering, number 001" or hand over a reference image. The agent paints four layers on one canvas: the subject, the background, line art and text. An optional fifth effects layer goes between the hero and the text. A Python pipeline takes over. It validates the layers and, when needed, downloads a portable Blender into the project folder, checking its SHA-256 hash. The pipeline then builds a scene with a separate depth per layer and bundles a Three.js viewer into a single file. The rainbow sheen follows the viewing angle, so the card shimmers as you turn it. You receive a local page where the card can be dragged, flipped and tuned with sliders. There are four finishes, switched right on the page. Next to it sit the card.blend source, transparent PNG layers, the card config and renders.

Who it is for. For designers, game developers and content authors who want to produce an interactive collectible card fast and refine it in Blender.

Good fit when

  • You need a collectible card for an indie game hero: describe the character and the agent assembles a page you can spin and flip
  • A pet photo or a team portrait becomes a keepsake card with a gold frame and a rarity
  • You want a card for a product reveal and a link guests can spin on their phones
  • You want study material on shaders: in the Blender project the holographic foil and line glints are separate nodes

Not a fit when

  • The host runs a text-only model without image generation and viewing: the skill draws the layers and checks the frames itself
  • You need a flat postcard or banner where depth and holography would be overkill
  • You need an identical image in Blender and in the browser: the browser materials are rebuilt in GLSL and match Blender only approximately

Example request

Make a holographic card called Trail Fox in an engraving style with a gold finish and number 007, and give me the page link and the card.blend file

Limitations

  • A multimodal model that draws images and looks at frames is required. A text-only model cannot do it, and the skill must not silently swap in a paid API.
  • Python 3.9 or newer with Pillow and Node.js with npm are required. The first run needs the internet to download Blender. If the official source is unreachable, a mirror address is set with the RUIC_BLENDER_BASE variable.
  • Verification needs a Chromium-based browser: Chrome, Edge or Chromium. The RUIC_BROWSER variable sets its path.
  • The Blender node graph does not travel through glTF, so the page recreates materials in GLSL and looks close to the render but not identical.
  • The documentation is written in Chinese, and an English version sits in README.en.md.

How to disable. Delete the skill folder from the host's skills directory. Finished cards live in your own projects: delete those folders together with the tools subfolder that holds the downloaded Blender.

FAQ

How do I make a holographic card for a website with an agent?

Install the skill and ask the agent: "Make a holographic watercolor-style card, number 001". The skill confirms or infers the spec, paints the layers, runs the pipeline and serves the page on a local port.

Do I need to install Blender beforehand?

No. The ensure_blender.py script downloads the official portable build into the project's tools folder, verifies SHA-256 and leaves system settings alone. If the site is unreachable, point the RUIC_BLENDER_BASE variable to a mirror, for example a Blender 4.5 mirror directory.

Which finishes does the holographic card support?

Four: gold foil, silver foil, pearl and original art. You switch them on the page, next to sliders for sheen, depth and frame ratio and a flip to the back side.

How does the skill check that the page works?

`node scripts/verify_web.mjs` launches headless Chromium and its own copy of the page. The script drags and flips the card and moves every slider. It then tests the keyboard, a 390 pixel window and reduced motion and compares real frames. The report and screenshots land in the verification folder.

Can I edit the card after generation?

Yes. Layers sit as transparent PNGs in the assets folder, name, number and rarity live in card-config.json, and in card.blend the foil, line glints and stars are separate nodes. Swap a layer and rerun the pipeline.

Discussion

No questions or reviews yet.

Skills

Claude Design Card

claude-design-card

A skill creating cards in 14 formats, including covers, on Claude design tokens. The README is in Chinese, no license

SkillMinimal access472Repository stars

A set of skills for Claude Code and Codex that assemble detailed image prompts from an element library and composition schemes

SkillExtended access1.5KRepository stars

A skill that draws interactive isometric illustrations in SVG, with WebGL shaders and React output, explaining an idea as a working machine

SkillExtended access22.4KRepository stars

A skill that turns your photo or description into a hand-drawn character and uses it for diagrams, knowledge cards and slides

SkillExtended access263Repository stars

Twelve skills that make an agent build single-file HTML animations: slides, protocol diagrams, architecture diagrams and demos for screen recording

SkillExtended access1.7KRepository stars

A Codex skill that redraws your photo as a watercolor illustration on white paper, with wide margins and a handwritten caption

SkillMinimal access601Repository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialAuthenticationRepository starsMain difference
RuiC Card Skill (this entry)no595
Three.js Skillsno3,830Three.js reference skills without a ready card pipeline
Blender MCPnonot required32,717an MCP server through which an agent drives an open Blender

README in short

The README, written in Chinese, describes the skill's features, a quick start and the pipeline diagram. It also lists tunable parameters such as parallax strength and foil stripe density, along with the skill's folder layout.

README badge

Original SKILL.md

---
name: RuiC-card-skill
description: Generate interactive 3D holographic collectible-card websites from a user description or reference image, using layered artwork, Blender and Three.js. Includes project-local Blender installation, reusable parallax materials and browser verification. Host-agnostic — any harness that runs a multimodal model can use it, since the model draws the layer artwork and inspects the rendered frames. Use when the user asks for 全息闪卡, 镭射卡, 3D 卡牌网页, a holographic collectible card site, or an editable card.blend.
---

# RuiC Card Skill

Turn the user's description or uploaded reference into a finished, editable Blender card and an interactive Three.js page. Preserve the requested subject, style, typography and destination. This skill contains code and text only; generated artwork belongs in the user's output project. It is host-agnostic — nothing in it is specific to one harness or one vendor's model — and it needs a multimodal model: you produce the layer artwork and you look at the rendered frames, so the host has to be able to generate and inspect images.

## The layer stack

All layers share one canvas, normally 1024×1536 portrait. Each layer has one job and one depth, and the depth differences are what make the card read as stacked planes instead of one flat picture.

| layer | file | job | depth |
|---|---|---|---|
| subject | `assets/subject.png` | the character or hero object, real alpha, composited over the background | `subjectDepth` (0.4) |
| effects | `assets/effects.png` (optional) | a pre-cut decorative overlay — petals, sparks, thorn work — that floats **between** the subject and the typography | `effectsDepth` (0.5 forward, or negative to sink it) |
| background | `assets/background.png` | the opaque environment behind everything | `backgroundDepth` (−0.25) |
| lineart | `assets/lineart.png` | dark contours on white; drives the glowing ink glints that appear inside the subject's silhouette | follows the subject |
| text | `assets/text.png` | typography and card furniture. The viewer samples this layer **without parallax**, so a border or frame painted here stays nailed to the card edge | 0 |

Give the layers clearly different depths. Two layers at the same depth fuse into one plane and the parallax stops reading as depth; that is the single most common way a card ends up looking flat.

## Working sequence

1. Establish the output project and a compact card specification: subject, title, subtitle, technique or tagline, edition, palette, medium, destination. Infer harmless missing details and state them. Read [references/art-direction.md](references/art-direction.md) for the per-layer quality bars and reference handling. Do not assume every card is anime, Japanese, or a copy of the example that inspired this skill.
2. Produce the layers. For an uploaded reference, inspect it first and preserve the requested identity and composition; use the available image tool and never silently substitute an API that needs a key or a paid service. Subject and text (and the optional effects overlay) must be genuinely transparent RGBA; the background must be fully opaque. Save them under the output project's `assets/` as `subject.png`, `background.png`, `lineart.png`, `text.png`, plus `effects.png` when used. Keep every layer on the same canvas. Never package generated artwork into this skill.
3. Derive `lineart.png` from the same source as the subject — the same draw calls, or an edge/threshold pass over the finished subject — so the contours register exactly. Never ask for a fresh line drawing from a text description: a regenerated pose drifts and produces glowing outlines in the wrong place.
4. Write `<project>/card-config.json` from [references/config.example.json](references/config.example.json): metadata, the asset paths, and one depth per layer. Then run `scripts/validate_assets.py <project>` and inspect the result by eye as well as numerically — equal canvases, real transparency where it is required, dark contours on white for the line art, and no empty layers. A painted checkerboard is not transparency: `validate_assets.py` converts a painted board to a true alpha channel through `scripts/checkerboard_to_alpha.py` (logged in `asset-validation.json`), but asking the tool for a genuine RGBA PNG is still the better outcome.
5. Run `scripts/run_pipeline.py --project <project>`. It validates, locates Blender and installs an official portable copy into `<project>/tools/` when absent, builds the editable scene, renders the preview, exports the geometry, copies the viewer from `assets/web-template/`, and installs the viewer's dependencies. Python with Pillow, Node.js with npm, and network access for the first Blender download are required. Read the errors instead of retrying the same blocker.
6. Start the site with `node <project>/web/server.mjs`, keep it alive, and open the URL it prints. Read [references/verification.md](references/verification.md), then run `node scripts/verify_web.mjs <project>`: it launches its own headless Chromium and its own copy of the viewer, drives drag, flip, reset, zoom, the keyboard, every slider (including 特效景深), the finish options, the screenshot download, a ~390 px viewport and the reduced-motion setting, compares real captured frames, writes `<project>/verification/report.json` plus screenshots, and exits non-zero on any failure. It needs no GUI and runs as root, so a container or CI session is not a reason to skip it. A green report is evidence about controls, not about looks: still open the page and look at the render, both tilts and the layers yourself. A `ready` flag proves none of that.
7. Deliver the working URL, the source project, the editable `.blend` and the renders. Say plainly that the Blender node graph is rebuilt in GLSL for the browser — glTF carries geometry and material roles only — so the two are close but not pixel-identical. Publish a website or repository only when that is asked for. For a requested skill ZIP, run `scripts/package_skill.py`: it enforces a text-only allowlist, and output projects, artwork, models with embedded images, credentials, dependencies and caches never belong in it.

## Non-obvious invariants

- All image planes are created in XY with object rotation X=90 degrees. Keep that rotation unapplied; faking it in the mesh breaks the local axes the parallax maths depends on.
- The shared group is `视差效果` with inputs `缩放` and `深度` and one output. Defaults: subject scale 1.25 and subject depth 0.4, background depth −0.25, text scale 1 and depth 0. A fixed layout safety mapping (`safeArea`) can hold room for typography; keep it separate from the user's parallax controls.
- UV centring plus a normal transform is not enough for view-dependent parallax. Transform the viewing direction into the card plane, divide by a bounded normal component, and apply it as a signed depth offset — the same expression on both sides: `(p − 0.5)·s + 0.5 + uView.xy / max(|uView.z|, 0.35) · d · 0.14`.
- The face mixes the background and subject BSDF by the subject's alpha. Keep metallic=1 and roughness=1 where the design asks for it, keep the subject BSDF emission black, and never bury a bad material under extreme emission.
- Foil is a material, not a painting: mapped bands (wave scale ≈0.55, distortion 7, mapping Y ≈32°) with their own pattern-image mapping, Multiply/Add, a pink→yellow→blue→white ramp and Overlay. The spectrum phase has to follow the viewing angle — a phase driven only by time looks like a looping video, not like foil.

Report a problem

Foxx AIRuiC Card Skill
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.