内容
# Photonic
一款使用Rust构建的矢量图形编辑器,具有原生GPU加速的GUI和集成MCP服务器,通过Claude提供AI辅助设计。
## 功能特点
- **原生GUI**,使用egui和wgpu(GPU加速,跨平台)
- **MCP服务器** — Claude可以通过JSON-RPC API创建和编辑矢量艺术
- **完整的矢量工具集** — 形状,贝塞尔曲线,布尔运算,渐变,变换
- **撤销/重做历史记录**,带有命名检查点,用于时间旅行
- **SVG / PNG / JPEG导出**
- **Lua脚本**,用于自动化
## 快速入门
### 构建
```sh
cargo build --release
```
### 运行(GUI模式)
```sh
cargo run --release
# 或打开已保存的文档:
cargo run --release -- path/to/file.photonic
```
### 运行MCP服务器(无头模式)
```sh
cargo run --release -- mcp --port 7842
```
MCP服务器监听 `http://localhost:7842`,并接受JSON-RPC 2.0请求。
### Lua REPL
```sh
cargo run --release -- repl
```
## 项目布局
```
photonic/
├── crates/
│ ├── photonic-core/ # 数据结构和业务逻辑
│ ├── photonic-render/ # GPU渲染(wgpu + lyon)
│ ├── photonic-gui/ # egui GUI
│ ├── photonic-mcp/ # MCP服务器和JSON-RPC处理器
│ └── photonic-app/ # 二进制入口点
├── docs/
│ ├── architecture.md # crate设计和内部实现
│ ├── mcp-api.md # MCP工具参考
│ └── file-format.md # .photonic文件格式
└── ROADMAP.md # 计划中的功能
```
## 文档
| 文档 | 内容 |
|---|---|
| [docs/architecture.md](docs/architecture.md) | crate分解,数据模型,并发模型 |
| [docs/mcp-api.md](docs/mcp-api.md) | 每个MCP工具,带有参数和示例 |
| [docs/file-format.md](docs/file-format.md) | `.photonic` JSON模式参考 |
## crates概览
| crate | 角色 |
|---|---|
| `photonic-core` | `Document`,`SceneNode`,`Transform`,`Fill`,`CommandHistory` |
| `photonic-render` | `PhotonicRenderer`(wgpu),`HeadlessRenderer`,tessellator |
| `photonic-gui` | `PhotonicApp`,面板,工具实现 |
| `photonic-mcp` | JSON-RPC服务器,20+个处理器函数 |
| `photonic-app` | `main()`,日志记录,模式调度 |
## 关键技术
| 领域 | 库 |
|---|---|
| GPU渲染 | wgpu |
| 路径细分 | lyon |
| 贝塞尔几何 | kurbo |
| GUI | egui + egui-wgpu |
| 异步运行时/HTTP | tokio + axum |
| 布尔路径运算 | geo |
| 序列化 | serde_json |
| 脚本 | mlua(Lua 5.4) |
## 贡献
欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 以了解如何设置,编码约定和拉取请求工作流程。同时,请阅读我们的 [行为准则](CODE_OF_CONDUCT.md)。如果要报告安全问题,请参阅 [SECURITY.md](SECURITY.md)。
## License
Photonic 遵循 [MIT License](LICENSE) 许可。
它捆绑了第三方开源组件,遵循其自身的许可协议;其通知在 [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md) 中复制。