站点按 bloub 三栏做自定义、动画时间线和设置,支持序列导出。 形体只留常见几种并配中文名;动画页右栏拉满时间线旁空位,滚动条隐藏。 机芯补 GROK.create / <grok-bot>,以及暂停冻结。
3.2 KiB
grok-icon-study
Unofficial study of a spring-driven character engine.
非官方学习项目,与 xAI / Grok 无关。本仓库只开源机芯,不含角色几何、商标或第三方应用源码。
The site follows bloub’s presentation: a left rail, one character in the middle, Customise / Animations / Settings. The motion is ours — springs, 39 states, polygon eyes, overlays, login wrap. Not bloub’s measured 14-state engine.
Running it
pnpm install
pnpm dev
Then open http://localhost:5191.
Clone the repo and the chrome still loads. Without replica/geometry-data.js the character stays off; the layout does not fall over. Put a file that matches replica/geometry.schema.md at replica/geometry-data.js (gitignored) to see the bot.
The original lab is still there:
replica/index.html— playground + HUDreplica/showcase.html— recording layoutsreplica/embed.html—<grok-bot>
Do not commit extracted geometry, icons, or a third-party app bundle.
What's on the site
The rail switches three views. Customise is 18 body shapes, 11 inks and the rest-face playlist. Animations is bloub’s timeline editor on our 39 states: drag to reorder, pull a card to set duration, save named cycles in localStorage. The right-hand tiles append a block. Settings is language (French, English, Chinese) and credits. GIF/MP4 export is not in this tree.
The centre avatar is always GrokCharacter in hold mode. Tiles paint one frame and stop. Nothing from bloub’s src/bot/ is in this tree.
What the engine does
- 39 mood / lifecycle states, each with an eye playlist, blink cadence, gaze
- Springs on move, squash, spin, blink, shape change
- Eyes are polygon morphs, not sprites
- Some states switch overlays (thinking / orbit / writing / loading / …)
- Login wrap carries
pose.scale, pointer follow, onboarding
Login-disk defaults: sizePx: 64, color: "black", shape: "blob".
Layout
| Path | What |
|---|---|
src/ |
Vue site (bloub-like chrome) |
replica/index.html |
playground |
replica/geometry.schema.md |
window.GROK_GEO contract, no data |
replica/src/math.js |
springs, lerp, polygons |
replica/src/tables.js |
states, playlists, spring constants |
replica/src/pose.js |
pose / gaze |
replica/src/tricks.js |
spin, hop |
replica/src/fx.js |
overlays and particles |
replica/src/eyes.js |
blink, wink, eye paint |
replica/src/character.js |
GrokCharacter |
replica/src/api.js |
GROK.create / <grok-bot> |
This repo deliberately does not contain:
- character geometry (
geometry-data.js) - official icons / iconset
- unpacked app slices
- unpack scripts
License
MIT covers the original engine, site and docs in this repository.
It does not grant rights to third-party character art, trademarks or application source; those are not in this repository.
Site chrome is arranged after bloub’s three-column scene. bloub is MIT; “Grok” and “x.ai” belong to their owners. Not affiliated with either.