by HRuiCcc
全息闪卡通用 Agent Skill:多模态模型都能用,不挑宿主——一句话生成可拖转、会流光、带层次景深的 3D 闪卡网页,附可编辑 Blender 工程
# Add to your Claude Code skills
git clone https://github.com/HRuiCcc/RuiC-card-skillGuides for using ai agents skills like RuiC-card-skill.
See how RuiC-card-skill compares with popular alternatives.
RuiC-card-skill is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by HRuiCcc. 全息闪卡通用 Agent Skill:多模态模型都能用,不挑宿主——一句话生成可拖转、会流光、带层次景深的 3D 闪卡网页,附可编辑 Blender 工程. It has 341 GitHub stars.
RuiC-card-skill's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/HRuiCcc/RuiC-card-skill" and add it to your Claude Code skills directory (see the Installation section above). RuiC-card-skill ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
RuiC-card-skill is primarily written in JavaScript. It is open-source under HRuiCcc on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh RuiC-card-skill against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
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.
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.
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.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.<project>/card-config.json from 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.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.node <project>/web/server.mjs, keep it alive, and open the URL it prints. Read 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..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.视差效果 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.(p − 0.5)·s + 0.5 + uView.xy / max(|uView.z|, 0.35) · d · 0.14.web_front, web_edge, web_back, web_gold (relief mode adds web_subject, web_effects, web_text), and the page composites the image layers with UV formulas that match the Blender graph.uView in the canonical card root frame rather than the converted front mesh's frame, and restore the exported V coordinate exactly once. Test both turn directions: one direction will smear the UVs or invert the parallax if the frame is wrong.window.__holo (ready, config, renderer, root, uniforms, reset, flip, getState) for testing, and falls back to a CSS-3D card when WebGL is unavailable. Use the hook for scripted checks; a page that renders does not prove the shaders compiled.scripts/run_pipeline.py: one command from prepared assets to a served card — validate, Blender build, render, GLB export, viewer assembly, dependency install.scripts/ensure_blender.py: official-release discovery, SHA-256 validation, project-local extraction. If the release index is unreachable but a verified package already sits in <project>/tools/, extracting it there is enough — the script returns as soon as it finds tools/blender*/blender.exe.scripts/build_card.py, scripts/export_web.py: the editable Blender scene (parallax groups, foil, ink glints, stars, glow) and the geometry/material-role export.scripts/validate_assets.py, scripts/generate_typography.py: layer validation (including the optional effects layer) and accurate transparent typography.scripts/verify_web.mjs: end-to-end browser verification over the DevTools Protocol — locates a Chromium-family browser (an explicit --browser/RUIC_BROWSER wins, then the usual install locations, PATH, and Playwright's own downloads; on Linux it passes --no-sandbox --disable-dev-shm-usage so root and container runs work), starts the viewer on a free port, exercises every control in a desktop and a 390 px pass, compares captured frames, and writes <project>/verification/report.json plus screenshots. Node only, no dependencies.scripts/checkerboard_to_alpha.py, scripts/test_checkerboard.py: deterministic conversion of checkerboard-painted fake transparency, with regression tests.assets/web-template/: the responsive Three.js viewer: drag, wheel zoom, flip to the back, auto-play, four finishes, and sliders for 镭射 and the layer depths (画面比例 / 画面景深 / 特效景深 / 底纹景深). It ships as a single bundled file so per-module URLs cannot be blocked; rebuild it with assets/web-template/bundle.sh (bun, or esbuild when bun is absent) after editing app.js.scripts/package_skill.py: text-only allowlist, content checks and ZIP verification for sharing the skill itself.一个通用 Agent Skill:不挑宿主,多模态模型都能用——把小时候文具店门口那种会闪的全息卡复刻到浏览器里。 说一句话,就得到一张会随视角流光、带层次景深的 3D 闪卡网页,外加一个可以随便改的 Blender 工程。
小时候买不起的闪卡,现在你想印谁就印谁。这是你的私人卡牌工坊。
它是一台全自动闪卡生产线:你给一句话或一张参考图,剩下全交给模型——
card.blend 源工程 + 四层透明 PNG + card-config.json 配置 + 渲染图技术栈就三样:Blender(官方便携版自动安装,不碰系统环境)+ Three.js(按同一套 UV 公式重建材质)+ Python 流水线(画完图之后一步到位)。skill 本体只有代码和文字,装上就能用;你生成的画作、工程、模型全部待在你自己的项目目录里。
初版层距:主体、特效、文字隔得较开,转动时明显"散开":

演示效果由 DeepSeek V4.1 Flash 实现。
调整后:各层收近一档,卡片整体更紧凑,仍保留层次景深——这是当前出厂默认效果:

演示效果由 DeepSeek V4.1 Flash 实现。
SKILL.md 的宿主都能跑通node scripts/verify_web.mjs <项目> 自己拉起无头浏览器和本地服务,把拖拽、翻面、缩放、键盘、五个滑块、四种质感、截图下载、390px 窄屏、减动效逐项跑完,并且比对真实画面帧(不是只看滑杆读数变没变),报告和截图落进 verification/。macOS / Windows / Linux 都能跑,无 GUI 的容器与 root 环境同样直接可用card.blend 真工程 + 透明分层 PNG + card-config.json,想改哪层改哪层skill 本体就是 SKILL.md + Markdown + 纯 Python/Node 脚本,不绑定任何宿主,也不绑定任何一家模型——只要宿主能读 SKILL.md、并且跑的是多模态模型(能生成图像、能看图),把它放进宿主的 skills 目录就能用(目录名即 skill 名;通用约定是 ~/.agents/skills/,别的宿主换成自己的 skills 目录即可)。
ensure_blender.py 用了 Path.is_relative_to,3.6 / 3.8 上会直接报错)<project>/tools/,校验 SHA-256。官方源在你的网络里被墙时,用 RUIC_BLENDER_BASE 指向镜像即可(例:RUIC_BLENDER_BASE=https://mirrors.aliyun.com/blender/Blender4.5/);校验值取自同一个源,所以镜像要自己信得过RUIC_BROWSER 或 --browser 指定路径。无 GUI 的 Linux(含 root / 容器)可以直接跑:脚本在 Linux 上自动补 --no-sandbox --disable-dev-shm-usage"用 RuiC-card-skill 给我做一张水墨风的锦鲤闪卡,文字用书法体,编号 No.001"
或者上传参考图:
"照这张图做一张闪卡,保留人物和构图,背景换成星空"
它会先把卡片规格说给你听,然后开工:画四层图 → 生成文字层 → 写配置 → 跑流水线 → 起本地服务 → 打开页面实测拖拽、翻面、滑块和手机布局 → 交付。
| 东西 | 用来干嘛 |
|---|---|
本地网页链接(127.0.0.1:4173) |
拖、转、翻、拉滑块 |
card.blend |
在 Blender 里继续调材质、换灯光、出渲染 |
assets/ 分层图 |
想换哪层换哪层,重跑流水线即可 |
card-config.json |
改名字、编号、稀有度 |
| 渲染图 | 直接发 |
verification/ |
自动化验收报告 + 各视角截图,证明这卡真的能拖能翻 |
card.blend 里镭射、星光、线稿发光都是独立可调节点,想学怎么"闪"就打开它一句话进去,一张会闪的卡出来,中间是一条全自动流水线:
flowchart LR
A[一句话 / 参考图] -->|"分层提示词<br>art-direction"| B[四层图<br>subject·background·lineart·text]
B --> C[card-config.json<br>卡片规格]
C --> D[run_pipeline.py<br>一键流水线]
D -->|"validate_assets<br>透明/对齐体检"| E{体检通过?}
E -->|"否,重新生成"| B
E -->|是| F[Blender 便携版<br>自动安装 + SHA-256 校验]
F --> G[card.blend<br>可编辑视差场景]
G --> H[card.glb<br>几何 + 材质名契约]
H --> I[web-template<br>Three.js 查看器单文件打包]
I --> J[本地网页 4173<br>拖转/翻面/滑块/手机布局]
核心链路要点:
<project>/tools/,项目自带环境、互不干扰流水线出厂就是一套顺手的参数,也都留了口子:
assets/effects.png 可选,独立景深(effectsDepth,网页里就是「特效景深」滑块),叠在人物之上、文字之下,适合花瓣/火星/藤刺这类装饰text.png。网页对文字层不做视差,所以边框会稳稳钉在卡边RuiC-card-skill/
├── SKILL.md # 宿主读的"操作手册"
├── references/
│ ├── art-direction.md # 分层画图的提示词写法、参考图处理
│ ├── config.example.json # 卡片配置示例
│ └── verification.md # 交付前的验收清单
├── scripts/
│ ├── ensure_blender.py # 自动获取官方 Blender 便携版
│ ├── build_card.py # 生成可编辑的 Blender 场景
│ ├── export_web.py # 导出卡片几何
│ ├── generate_typography.py # 精确的透明文字层
│ ├── validate_assets.py # 四层图体检(棋盘格假透明图自动转真 alpha)
│ ├── checkerboard_to_alpha.py # 棋盘格底确定性抠透明(附回归测试)
│ ├── run_pipeline.py # 一键流水线
│ └── package_skill.py # 纯文本打包成可分享的 ZIP
└── assets/
└── web-template/ # 响应式 Three.js 查看器
skill 本体只有代码和文字,轻得很。你生成的画作、.blend、模型都待在你自己的输出项目里。
想发给朋友或放进仓库:
python scripts/package_skill.py RuiC-card-skill --out ~/Desktop/RuiC-card-skill.zip
按白名单只打包文本文件,打出来的 ZIP 干干净净,拿走就能用。