bluerskill

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

bluerskill — anti-slop 3D for Blender

bluerskill — 面向Blender的反AI流水线感3D工具

taste
stops web pages from looking AI-generated. bluerskill does the same for 3D.
A Blender scene reads as "AI made this" for the same reason a landing page does: every decision was left at its default, everything is perfect, and nothing has a history. Primitive soup, razor edges, 0.8-gray plastic, one white point light, the camera that shipped with the startup file. This skill replaces defaults with decisions, and perfection with plausible imperfection.
Files in this skill (paths relative to this SKILL.md):
FileUse
reference/ai-tells.md
Full catalog of 3D AI tells, with the fix for each. Read before starting any non-trivial scene.
reference/materials.md
Physically plausible albedo/roughness table and breakup recipes.
reference/light-camera.md
Lighting rigs, color temperature, lens and composition rules.
scripts/humanize.py
Importable helper library: bevel, ground, jitter, physical materials, wear, light rigs, camera, color management.
scripts/audit.py
Scores a scene 0–100 for AI tells and prints fixes. Run it, don't eyeball it.
scripts/preview.py
Renders clay / beauty / wire check images so you can look at the result.
examples/mug_still_life.py
Worked example: same brief built the AI-default way (
--slop
, audit 0) and the bluerskill way (audit 100). Copy its structure.

taste
能避免网页看起来像AI生成的。bluerskill 则为3D领域实现同样的效果。
Blender场景之所以会给人“AI做的”感觉,原因和落地页一样:所有设置都停留在默认值,一切都完美无缺,没有任何使用痕迹。原始几何体堆砌、锐利硬边、0.8灰度塑料材质、一盏白色点光源、启动文件自带的相机。本工具用主动决策取代默认设置,用合理的不完美取代绝对完美。
本技能包含的文件(路径相对于本SKILL.md):
文件用途
reference/ai-tells.md
3D AI痕迹完整清单,包含每项问题的修复方案。在开始制作任何非简单场景前阅读。
reference/materials.md
物理合理的反照率/粗糙度对照表与纹理拆分配方。
reference/light-camera.md
打光方案、色温、镜头与构图规则。
scripts/humanize.py
可导入的辅助库:倒角、接地、位置抖动、物理材质、磨损效果、灯光组、相机、色彩管理。
scripts/audit.py
对场景进行0-100分的AI痕迹评分并输出修复建议。直接运行,无需肉眼判断。
scripts/preview.py
渲染黏土模式/成品模式/线框模式的检查图,方便直观查看效果。
examples/mug_still_life.py
实战示例:用AI默认方式(
--slop
,评分0)和bluerskill方式(评分100)制作同一个需求的场景。可参考其结构。

0. How you drive Blender

0. 如何操作Blender

Prefer, in order:
  1. blender-mcp (if an MCP server exposing
    execute_blender_code
    or similar is connected): run code live in the user's open session.
    exec(open("<skill>/scripts/humanize.py").read())
    or add
    scripts/
    to
    sys.path
    and
    import humanize
    .
  2. Headless CLI (always available if
    blender
    is on PATH):
    bash
    blender -b scene.blend --python build.py            # build / modify
    blender -b scene.blend --python <skill>/scripts/audit.py            # score
    blender -b scene.blend --python <skill>/scripts/preview.py -- --out ./renders   # look
    In
    build.py
    , put
    sys.path.insert(0, "<skill>/scripts")
    then
    import humanize as hz
    . Save with
    bpy.ops.wm.save_as_mainfile(filepath=...)
    .
Target Blender 4.2+ / 5.x API (Principled v2 socket names like
Specular IOR Level
,
Coat Weight
,
Emission Color
; no
use_auto_smooth
;
Material.use_nodes
is deprecated and always on). Check
bpy.app.version
before using anything version-specific.
优先使用以下方式,按顺序排列:
  1. blender-mcp(如果已连接暴露
    execute_blender_code
    等接口的MCP服务器):在用户打开的Blender会话中实时运行代码。可执行
    exec(open("<skill>/scripts/humanize.py").read())
    ,或将
    scripts/
    目录添加到
    sys.path
    后执行
    import humanize
    。
  2. 无头CLI(只要PATH中有
    blender
    即可使用):
    bash
    blender -b scene.blend --python build.py            # build / modify
    blender -b scene.blend --python <skill>/scripts/audit.py            # score
    blender -b scene.blend --python <skill>/scripts/preview.py -- --out ./renders   # look
    在
    build.py
    中,先添加
    sys.path.insert(0, "<skill>/scripts")
    ,再执行
    import humanize as hz
    。使用
    bpy.ops.wm.save_as_mainfile(filepath=...)
    保存文件。
目标版本为Blender 4.2+ / 5.x API(Principled v2节点的接口名称如
Specular IOR Level
、
Coat Weight
、
Emission Color
;无
use_auto_smooth
;
Material.use_nodes
已弃用且默认开启)。使用任何版本相关的功能前请先检查
bpy.app.version
。

1. Output header

1. 输出头部信息

Post this before writing any bpy code:
text
READ:     <subject> for <purpose>, <style family>, <mood>
REFS:     <2-3 concrete real-world references: object, era, place, material>
DIALS:    WEAR <0-10> / STYLIZATION <0-10> / CLUTTER <0-10>
SCALE:    metric, hero object ≈ <real size>
ENGINE:   CYCLES | EEVEE, AgX <look>
REFS
is mandatory. "A coffee mug" is a prompt; "a 1990s diner mug, thick ironstone, chipped glaze at the rim, coffee ring inside" is a reference. Every downstream decision comes from the reference, not from Blender defaults.
在编写任何bpy代码前,先输出以下内容:
text
READ:     <subject> for <purpose>, <style family>, <mood>
REFS:     <2-3 concrete real-world references: object, era, place, material>
DIALS:    WEAR <0-10> / STYLIZATION <0-10> / CLUTTER <0-10>
SCALE:    metric, hero object ≈ <real size>
ENGINE:   CYCLES | EEVEE, AgX <look>
REFS
是必填项。“一个咖啡杯”是提示词;“一个1990年代餐厅用的马克杯,厚质炻器材质,杯口釉面有缺口,内部有咖啡渍圈”才是参考。所有后续决策都基于参考,而非Blender默认值。

Dials

调节参数

  • WEAR — 0 new-in-box, 3 lightly used (default), 6 daily-use years, 9 derelict. Drives bevel softness, edge wear, grime, roughness breakup, jitter.
  • STYLIZATION — 0 photoreal, 4 "Pixar-real" (default for stylized asks), 8 toon/flat. Stylized ≠ lazy: stylized work still has deliberate shape language, edge softness, and value design.
  • CLUTTER — 0 isolated product, 3 hero + 2–4 supporting props (default), 7 lived-in environment.
Baselines: product shot
2/1/1
· stylized prop
3/5/2
· interior archviz
3/0/5
· game-ready prop
4/3/0
· narrative environment
6/2/7
.
  • WEAR — 0为全新未拆封,3为轻微使用(默认值),6为多年日常使用,9为破旧废弃。决定倒角柔和度、边缘磨损、污渍、粗糙度变化、位置抖动程度。
  • STYLIZATION — 0为照片级真实,4为“皮克斯写实风”(风格化需求的默认值),8为卡通/平涂风格。风格化不等于敷衍:风格化作品同样需要刻意的形状语言、边缘柔和度和明暗设计。
  • CLUTTER — 0为孤立产品展示,3为主体+2-4个辅助道具(默认值),7为充满生活气息的环境。
参考基线:产品渲染图
2/1/1
· 风格化道具
3/5/2
· 室内建筑可视化
3/0/5
· 游戏可用道具
4/3/0
· 叙事性环境
6/2/7
。

2. Hard rules (never ship these)

2. 硬性规则(绝对不能出现)

  1. No razor edges. Every hard-surface mesh gets a bevel (modifier or modeled). Width ≈ 0.5–2 % of the object's smallest dimension at WEAR 0–3, larger with wear/stylization.
    hz.bevel(obj)
    .
  2. Real-world scale, applied. 1 BU = 1 m. Mug ≈ 0.095 m tall, door 2.03 m, table 0.74 m. Scale applied (
    hz.apply_scale
    ). Wrong scale breaks DOF, SSS, bevels, lighting falloff.
  3. Nothing floats, nothing clips. Objects rest on something (
    hz.ground
    ). Contact is where realism lives.
  4. No default material. No 0.8 gray / 0.5 roughness. Every material has a real-world reference, albedo inside 0.03–0.85 (non-metals), metallic exactly 0 or 1.
  5. No constant roughness on a hero surface. Roughness gets breakup (
    hz.add_breakup
    ). Real surfaces are never uniform.
  6. No startup camera, no startup light. Delete or move them. Never ship 50 mm from (7.36, -6.93, 4.96).
  7. AgX (or Filmic), never Standard. Standard clips highlights into flat CG white.
  8. No clone armies. Repeated objects get per-instance variation in rotation, scale, and ideally material (
    hz.jitter
    ).
  9. Verify by looking. Run
    audit.py
    (target ≥ 85) and
    preview.py
    , then open the PNGs with the Read tool before claiming done. Don't report a score you didn't run.
  1. 无锐利硬边。 所有硬表面模型都要有倒角(修改器或手动建模)。磨损度为0-3时,倒角宽度约为物体最小尺寸的0.5-2%,磨损度/风格化程度越高,倒角越大。对应函数
    hz.bevel(obj)
    。
  2. 采用真实世界比例并应用缩放。 1 BU = 1米。马克杯高度约0.095米,门高2.03米,桌高0.74米。必须应用缩放(
    hz.apply_scale
    )。比例错误会破坏景深(DOF)、次表面散射(SSS)、倒角和灯光衰减效果。
  3. 无悬浮物体,无穿模。 物体都要放置在某个表面上(
    hz.ground
    )。接触感是真实感的来源。
  4. 无默认材质。 不能用0.8灰度/0.5粗糙度的默认材质。每个材质都要有真实世界参考,非金属材质的反照率在0.03-0.85之间,金属度只能是0或1。
  5. 主体表面无恒定粗糙度。 粗糙度要有变化(
    hz.add_breakup
    )。真实表面绝不是均匀一致的。
  6. 无默认相机,无默认灯光。 删除或移动它们。绝对不能用默认的(7.36, -6.93, 4.96)位置和50mm镜头。
  7. 使用AgX(或Filmic)色彩管理,绝对不用Standard。 Standard会把高光裁剪成扁平的CG白。
  8. 无克隆大军。 重复物体的每个实例都要有旋转、缩放的变化,最好还有材质变化(
    hz.jitter
    )。
  9. 通过查看验证效果。 运行
    audit.py
    (目标得分≥85)和
    preview.py
    ,然后用阅读工具查看生成的PNG图片,再宣布完成。不要谎报没运行过的评分。

3. Default bans (override only when the user asks)

3. 默认禁用项(仅在用户要求时可破例)

These are the 3D equivalent of purple gradients and glassmorphism — instant "AI made this" signals:
  • Neon purple/teal or pink/cyan lighting on a dark void.
  • Glossy chrome or iridescent blobs/torus/spheres floating on a gradient backdrop.
  • Pastel clay "isometric tiny room" with every object the same softness and saturation.
  • Hero object dead-center on an infinite seamless backdrop with a single soft shadow.
  • Everything brand new, symmetrical, axis-aligned, and placed on round-number coordinates.
  • Emission used as lighting instead of lights; bloom as a style instead of a consequence.
  • Huge f/1.2 bokeh on a scene that isn't macro, or zero DOF on a close-up.
  • UV sphere / 32-vertex cylinder with visible faceting on a silhouette.
这些就相当于网页设计里的紫色渐变和玻璃拟态——是一眼就能看出“AI生成”的3D标志:
  • 深色虚空背景上的霓虹紫/青或粉/青灯光。
  • 渐变背景上漂浮的亮面铬黄或虹彩色块/圆环/球体。
  • 淡彩黏土质感的“等距小房间”,所有物体的柔和度和饱和度都一样。
  • 主体物体在无限无缝背景的正中央,只有一个柔和阴影。
  • 所有东西都是全新的、对称的、轴对齐的,且坐标都是整数。
  • 用自发光作为照明而非灯光;用bloom效果作为风格而非自然结果。
  • 非微距场景却用f/1.2的大光圈虚化,或者特写场景却完全没有景深。
  • 轮廓上能看到棱面的UV球体/32顶点圆柱体。

4. Workflow

4. 工作流程

  1. Header (§1). Pick dials. Name references.
  2. Units & scale: metric, scale 1.0. Block out at real dimensions.
  3. Silhouette first: judge the blockout in clay from the final camera. Shapes need a big/medium/small rhythm; avoid everything being the same size. Break perfect symmetry on anything that has been used or handmade.
  4. Edges: bevel pass on all hard surfaces; subdivision with support loops for organic/molded parts; shade smooth + harden normals.
  5. Materials: start from
    hz.physical_material(preset)
    , then
    hz.add_breakup
    and, for WEAR ≥ 3,
    hz.add_wear
    . Colors come from reference, desaturated a notch from what feels right.
  6. Placement:
    hz.ground
    ,
    hz.jitter
    ; nothing on round coordinates; objects relate to each other (touching, leaning, overlapping in depth).
  7. Light: motivated sources only (window, lamp, sun, practical). Warm/cool contrast via color temperature.
    hz.light_rig("window" | "overcast" | "golden_hour" | "studio" | "night_practical")
    .
  8. Camera: chosen lens (35 mm environment, 50–85 mm product, 100 mm macro), eye height that a person would actually stand at, rule-of-thirds subject, foreground element when CLUTTER ≥ 3.
    hz.camera_rig
    .
  9. Color & render:
    hz.color_management
    ,
    hz.render_settings
    .
  10. Audit → preview → look → fix, loop until audit ≥ 85 and the renders hold up at thumbnail size.
Read
reference/ai-tells.md
for the full tell → fix catalog and
reference/materials.md
/
reference/light-camera.md
when doing that stage.
  1. 头部信息(第1节)。设定调节参数。确定参考对象。
  2. 单位与比例:公制,缩放1.0。按真实尺寸搭建基础模型。
  3. 优先轮廓:从最终相机角度用黏土模式查看基础模型。形状要有大/中/小的节奏变化;避免所有物体尺寸相近。所有用过的或手工制作的物体都要打破完美对称。
  4. 边缘处理:所有硬表面都做一遍倒角;有机/注塑部件用细分曲面加支撑环;平滑着色+硬化法线。
  5. 材质:从
    hz.physical_material(preset)
    开始,然后添加
    hz.add_breakup
    ,如果磨损度≥3,再加
    hz.add_wear
    。颜色来自参考,比直觉上的饱和度稍低一点。
  6. 摆放:用
    hz.ground
    接地,
    hz.jitter
    添加随机变化;不要放在整数坐标上;物体之间要有联系(接触、倚靠、前后重叠)。
  7. 灯光:只用有合理来源的光(窗户、台灯、太阳、实用灯)。通过色温营造冷暖对比。可用
    hz.light_rig("window" | "overcast" | "golden_hour" | "studio" | "night_practical")
    。
  8. 相机:选择合适的镜头(环境用35mm,产品用50-85mm,微距用100mm),视高符合人实际站立的高度,主体放在三分线位置,杂乱度≥3时添加前景元素。可用
    hz.camera_rig
    。
  9. 色彩与渲染:用
    hz.color_management
    和
    hz.render_settings
    。
  10. 审计→预览→查看→修复,循环往复,直到评分≥85且渲染图在缩略图尺寸下效果都过关。
完整的AI痕迹→修复方案请查看
reference/ai-tells.md
,制作对应阶段时可参考
reference/materials.md
和
reference/light-camera.md
。

5. Pre-flight (answer each before saying done)

5. 交付前检查(宣布完成前请逐一确认)

  • Header posted; references are concrete.
  • audit.py
    run; score ≥ 85; every remaining FAIL justified in one line.
  • Clay render: silhouette reads; shapes have size rhythm; no faceting.
  • Beauty render viewed with Read: edges catch highlights; contact shadows exist; no clipped whites.
  • At least one sign of history (wear, use, dust, asymmetry) proportional to WEAR.
  • Nothing in §3 present unless the user asked for it.
Report: final audit score, render paths, and any deliberate deviations.
  • 已输出头部信息;参考对象具体明确。
  • 已运行
    audit.py
    ;得分≥85;所有剩余未通过项都有一行说明理由。
  • 黏土渲染:轮廓清晰;形状有大小节奏;无棱面。
  • 已用阅读工具查看成品渲染:边缘有高光;有接触阴影;无高光裁切(死白)。
  • 至少有一处符合磨损度的使用痕迹(磨损、使用痕迹、灰尘、不对称)。
  • 第3节中的禁用项都没有出现,除非用户明确要求。
交付报告:最终审计评分、渲染图路径,以及所有刻意的偏差调整。