Skip to content

About

Turn your favorite picture into a cute, plump, slow-rising 3D squishy. An open-source AI Skill with Blender + a quiet white playground.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

🫠 Squishy · 把万物捏到不太对劲

English

把一切变得黏糊糊、Q 弹,且不太体面。

上传一张图,让 AI 把它做成可以按、揉、往外扯的 3D 捏捏。按下去一块,拉出来一截,松手以后晃晃悠悠地恢复——也可能在中途出现一种难以解释的表情。

你可以把朋友的形象做成老鼠干捏捏,把自己的头像拉成一条,把老板画成的饼真的捏扁。它的目标不是让万物端庄,是让你忍不住再扯一下。

先拿塔塔试试 → · 奶龙也逃不掉 → · 原图与模型对照

局部按压、拉长、松手,恢复一点体面

一些不太正经的用途

🐀 把朋友做成老鼠干捏捏

上传一张朋友同意拿来玩的形象图:

把他做成一个老鼠干捏捏。脸尽量认得出来,身体可以离谱一点。我要抓住脸往外扯,松手以后黏糊糊地弹回去。

做人有点累,先当一会儿可以拉长的老鼠干。这里的“老鼠干”是造型梗,不是每次都会自动变成同一种老鼠;想要哪种离谱,请直接告诉 AI。

🫓 把自己的头像揉成工伤现场

头像平时负责体面,捏捏负责替你变形。开会前还是圆的,开会后已经可以当书签了。松手再给它一点恢复时间。

🍮 让食物失去结构上的尊严

蛋糕、布丁、泡芙,甚至一颗土豆。看起来应该能吃,拉起来又明显不对。数字食品,不计热量,也不建议认真研究它的口感。

🦖 让角色暂时退出正常形态

给原创 IP、吉祥物、小怪兽做一个黏弹分身。正常的时候还是它,一上手,事情就开始抽象。

怎么开捏

这是给 AI 助手用的开源 Skill,不是需要注册的新应用。

git clone https://github.com/EverettFish/squishy-skill.git ~/.codex/skills/squishy

Codex 用户放到 ~/.codex/skills/squishy 后重新打开会话。其他支持 Skills 的助手放到对应目录,例如 ~/.claude/skills/squishy;也可以让有代码执行能力的助手直接读取 SKILL.md。

然后上传图片,说:

用 $squishy 把这张图变得黏糊糊、特别 Q 弹。可以局部按下去,也可以抓住一点往外拉。脸和衣服尽量保留,形变幅度可以不讲体面。网页纯白、干净,别写一堆原理。

想要老鼠干、糯米团子或者别的抽象造型,就在这句话里说明。不指定改造时,仍然优先保留原图身份;抽象的是手感,不是随便换一张脸。

AI 会做什么

  1. 认一下受害对象。 提取脸、颜色、衣服、花纹和不能丢的特征。
  2. 补一下没拍到的地方。 用环境里可调用的生图工具补充三视图。原图已经是 3D 形象,就保留它;没有生图工具,也能直接参考原图继续。
  3. 给它一个可以变形的身体。 用 Blender 制作有体积的模型和贴图。没安装 Blender 时,先查找已有安装,再按环境权限下载、校验官方便携版。
  4. 开始不太礼貌的物理互动。 打开白色网页,按压、拉扯、松手。设置藏起来,别让参数比被捏的东西还抢戏。

做好后会有 Blender 工程、建模脚本、GLB、实际渲染和一个能玩的网页。生图可用时还会有三视图。运行网页不需要在线生图 API;发布链接或公开原始素材由你决定。

它为什么会这么黏

给想改手感、换角色或者贡献代码的人留一点实现说明。

部分 实现
图片与参考 使用环境里实际可用的 imagegen 等工具;没有就回退原图。不会假装调用一个不存在的 3D 服务。
Blender 建模 根据主体编写 Python 脚本,制作体积、UV/投射贴图和材质。已有 3D 角色优先保留原图细节,不用通用圆脸代替。
局部按压 射线拾取表面,映射回静止姿态;有限半径的平滑权重控制凹陷和周围鼓起,远处顶点不跟着缩放。
向外拉扯 鼠标抓取平面位移加上向外的法线分量。眼睛、字样和衣服贴图跟着同一片表面变形。
Q 弹与拖尾 阻尼振子负责快速跟手、松手后晃动;缓慢衰减的记忆项负责不情不愿地恢复。
材质 普通模型用泡棉/硅胶风格 Physical Material;原图贴图模式保留已有颜色,再用法线变化增强凹陷明暗。
网页 Three.js 静态页面,依赖本地打包。无 Logo、无技术面板,按压/拉扯/转一转就够了。

Blender 时间轴里也有局部按压、拉扯和回弹的示范动画。网页交互实时计算;时间轴是可编辑的演示,不是 Blender 软体求解缓存。

先说好,抽象不是高精度仿真

这是为手感设计的简化黏弹模型,不是有限元、流体、自碰撞或严格体积守恒求解器。猛拉时可能折叠、穿插,形变有时会很怪——所以这份 README 也不再假装每一只成品都精致可爱。

图片变模型同样需要按主体调整,不是一键扫描。塔塔示例使用原图贴图保留正面外观,侧背体积和纹理由参考补建;侧看仍可能有投射拉伸,不能保证所有角度都和单张原图“一模一样”。我们会检查相似度,也会把这种限制写清楚。

想要脸不变,就明确说“保留脸和比例”;想要老鼠干,就明确说“大胆改身体”。可读、可改、能玩,比假装什么都能完美还原更实在。

想把它再拧坏一点?

python scripts/ensure_blender.py --search-root /your/workspace
python scripts/init_project.py /your/new-toy --name "某位朋友的临时形态"
# 把模型放到 /your/new-toy/web/assets/toy.glb
python scripts/serve.py /your/new-toy/web --port 4173

web/toy.json 可设置名字、模型路径、语言、主题色、material: "gel" 或 "foam"。referenceTexture: true 用于已带光照的参考贴图。外观和形变可以分别调整。

node --test tests/physics.test.mjs tests/gel.test.mjs
python -m unittest discover -s tests

欢迎带着奇怪的图、离谱的效果和有用的修复来提 Issue。代码与说明采用 MIT;角色、商标及素材的权利仍归原权利人,见 素材说明。

先拉一下。体面等会儿再恢复。

About

Turn your favorite picture into a cute, plump, slow-rising 3D squishy. An open-source AI Skill with Blender + a quiet white playground.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages