# cat2avatar
**Repository Path**: cat2bug/cat2avatar
## Basic Information
- **Project Name**: cat2avatar
- **Description**: JS前端脸谱系统
- **Primary Language**: TypeScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-14
- **Last Updated**: 2026-05-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Cat2Avatar
可组合的 2D 头像部件系统:用归一化 SVG 片段(`.c2a`)描述脸型、五官与配饰,经校验与合成后供 API 与前端消费。
## 项目简介
Cat2Avatar 将头像拆分为多个 **slot**(如 `headShape`、`eyes`、`ears`),每个部件一个 `.c2a` JSON 文件,内含 SVG 片段与锚点 / landmark 元数据。`@cat2avatar/c2a` 负责解析与校验;`@cat2avatar/core` 根据脸型 landmark 将成对部件(眼、耳、眉)变换到脸上;`@cat2avatar/api` 提供部件清单与合成 HTTP 服务;`@cat2avatar/studio` 为 MVP 矢量编辑与发布模拟工具。
## 目录结构
```
cat2avatar/
├── packages/
│ ├── c2a/ # .c2a 类型、parse、validate
│ ├── core/ # 合成、landmark 变换、配色
│ ├── api/ # Express 部件 API
│ ├── react/ # 组件
│ ├── studio/ # 部位矢量编辑 MVP
│ └── customizer/ # 用户选型与预览
├── docs/
│ └── c2a-examples/ # 格式示例
├── openspec/ # 变更提案与规格
└── README.md
```
## 快速开始
```bash
pnpm install
pnpm test
pnpm dev:api # 启动部件 API(默认端口见 packages/api)
pnpm dev:studio # Studio 部位编辑(默认 5173)
pnpm dev:customizer # 用户捏脸选型(默认 5174)
```
首次使用 Studio 前建议构建依赖包:
```bash
pnpm --filter @cat2avatar/c2a build
```
默认示例部位参考 [Avataaars Generator](https://getavataaars.com) 扁平插画风格,说明见 [docs/reference/avataaars-style.md](docs/reference/avataaars-style.md)。
## .c2a 格式简述
`.c2a` 为 **C2A v1** JSON 文档,主要字段:
| 字段 | 说明 |
|------|------|
| `version` | 固定为 `1` |
| `meta` | `id`、`slot`、`category`、`zIndex` 等 |
| `svg` | 无外层 `