Public OSS copy (AGPL) via gitea_repo_migrate smoke
| docs/adr | ||
| legacy | ||
| scripts | ||
| src | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc | ||
| .yarnrc.yml | ||
| AGENTS.md | ||
| components.json | ||
| CONTEXT.md | ||
| index.html | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
| yarn.lock | ||
Bible Strong Avatar Lab
Standalone React/Vite studio for creating procedural 2D avatars, expressions and animations. The project was extracted from Bible Strong so it can evolve independently.
Start
Requirements: Node.js 22.12+ and Corepack/Yarn 4.
corepack enable
yarn install
yarn dev
Open http://localhost:5173/.
Validation
yarn typecheck
yarn test
yarn build
yarn check runs the generated-engine freshness check and the full validation suite.
Project map
src/App.tsx: Studio interface and orchestration.src/geometry.ts: framework-independent procedural projection.src/surfaces.ts: supported head surfaces and primitive definitions.src/renderedScene.ts: stable render layer backed by Motion values.src/playback.ts: expression and animation playback.src/studioDocument.ts: versioned project document and browser persistence.src/exporter.ts: React/TypeScript and standalone JavaScript exports.src/snapshotExporter.ts: static SVG and PNG photo-mode exports.src/defaultStudioDocument.json: bundled avatars, expressions and animations.scripts/generate-standalone-engine.mjs: embeds the procedural runtime used by exports.legacy/: the two self-contained HTML prototypes that preceded the React app.docs/adr/: accepted architecture decisions inherited from the prototype.
Product model
- An avatar owns its body and neutral eye appearance.
- The bundled behavior library supplies the initial expressions and animations.
- On the first behavior edit, an avatar receives its own independent copy of both.
- An animation references expressions from the same behavior library.
- The Studio document can be exported/imported as JSON for portability.
See CONTEXT.md for the domain language and architecture constraints.