SUPRA-Tex
SUPRA-Tex: reference-aligned 3D texture generation from a single image, with relightable PBR materials for image-to-3D assets and existing meshes.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Digital-clay sculpting app for the kami stack: a WebGPU brush workspace over a
layered sculpt document, built in .cljc/.cljs and shipped as a single
static page.
This repo is the app — UI, keyboard interaction, project file format,
and the shadow-cljs build. The sculpting itself (mesh, brushes, layers,
remesh/repair, topology diagnostics) lives in
kotoba-lang/kami-engine-sculpt,
and the GPU mesh upload/draw path in
kotoba-lang/webgpu. Nothing here
re-implements geometry.
clean / dirty / saved).The header selects which editor's key layout applies. kami.sculpt.app
carries all three:
| profile | keys |
|---|---|
| ZBrush (default) | B,I inflate · B,S smooth · B,P pinch · M mask |
| Blender Sculpt | I · S · P · M · E erase mask |
| Mudbox | 1 sculpt · 2 smooth · 3 pinch · M mask · E erase mask |
ZBrush uses a two-key prefix buffer; the other two dispatch directly.
Ctrl+Shift+N adds a layer. Holding Shift temporarily switches to smooth
and restores the previous brush on release, so the selection in the panel
never changes.
kami.sculpt.project owns the on-disk shape, currently version 2:
{:kami/document :sculpt-project
:kami/version 2
:project/id "head" :project/name "Head"
:project/sculpt <sculpt document from kami-engine-sculpt>
:project/brush {:mode :inflate :radius 0.6 :strength 0.12 :spacing 0.12}
:project/symmetry [:x]
:project/interaction {:profile :zbrush}
:project/strokes 0}
open migrates then validates, and throws rather than returning a partly
formed project. Two inputs migrate: a v1 project (gains
:project/interaction and :project/strokes), and a bare sculpt document
from the engine (wrapped with defaults). Anything else is rejected.
| file | role |
|---|---|
src/kami/sculpt/project.cljk | project document, versioning, migration, validation |
src/kami/sculpt/ui.cljk | the page — hiccup via html.core, styles via css.core |
src/kami/sculpt/app.cljk | browser app: state atom, events, shortcuts, GPU upload |
ui.cljc and project.cljc are portable .cljc and carry no browser
dependency, so both are exercised by the JVM test run.
kbb -M:test # project round-trip / migration / rejection
kbb -M build.cljk # regenerate public/index.html from ui/page
npm run build # amu compile --target wasm32-browser -> public/js/app.js
public/index.html is generated from kami.sculpt.ui/page — edit the
hiccup, not the HTML. The build is idempotent, so
kbb -M build.cljk && git diff --exit-code public/index.html is a usable
check that the generator and the shipped page still agree; they had drifted
apart once, and regenerating from the stale generator would have deleted 22
controls that app.cljs binds handlers to. Serve public/ over http (WebGPU needs a secure
context; localhost counts) and open it in a WebGPU-capable browser. Without
WebGPU the viewport shows a status message instead of silently rendering
nothing.
#debug-state carries a JSON snapshot — vertex/triangle counts, masked
vertices, mode, symmetry, profile, layer names, remesh/repair/hole-fill
results and topology diagnostics — so an end-to-end test can read what the
app believes rather than screenshotting it.
Apache-2.0. See LICENSE.