Shugar86/additive-light

GitHub: Shugar86/additive-light

Additive Light 是一个结合 AI 与几何分析的研发平台,支持从文本提示生成 3D 模型以及从 3D 扫描数据逆向重建参数化 CAD 模型。

Stars: 0 | Forks: 0

# 加色光 · GDI [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Tests: pytest](https://img.shields.io/badge/tests-pytest-blue.svg)](https://docs.pytest.org/) [![CAD: OpenSCAD](https://img.shields.io/badge/CAD-OpenSCAD-orange.svg)](https://openscad.org/) [![AI: OpenRouter](https://img.shields.io/badge/AI-OpenRouter-8A2BE2.svg)](https://openrouter.ai/) **Additive Light** 是一个用于生成式 3D 建模和扫描数据逆向工程的研发平台。它结合了两条主线: - **ADDITIVE_LAB** — 客户端 Web 应用:文本 prompt → AI → SolidPython2 → OpenSCAD WASM → 直接在浏览器中生成 STL。 - **GDI (Generative Design Intelligence)** — Python pipeline:STL 扫描 → 传感器 → RANSAC 拟合 → LLM → Judge → 参数化 CAD 模型 → G-code。 本项目处于研究阶段:代码可运行,但部分方案仍为 MVP。如需深入了解,请参阅 [`ARCHITECTURE.md`](./ARCHITECTURE.md)、[`DEPLOY.md`](./DEPLOY.md) 和 [`ROADMAP.md`](./ROADMAP.md)。 ## ✨ 功能 ### ADDITIVE_LAB Web 应用 - 🧠 通过 **OpenRouter**(Gemini、Claude、Grok 及其他 coder 模型),根据文本 prompt 生成 **SolidPython2** 代码。 - 🔒 **三级验证** AI 代码:括号检查、Pyodide 中的 `compile()`、OpenSCAD 完整渲染。 - 🖥️ 在 Web Worker 中进行 **OpenSCAD WASM 渲染** — 面对复杂几何体时界面也不会卡顿。 - 🎨 基于 Three.js 的 **3D 查看器**,具备轨道相机、自动居中和 bounding box 功能。 - 💾 一键 **下载** `.scad` 和 `.stl`。 - 🏠 **Local-first**:重型文件在本地处理,仅在 AI 生成时需要网络。 ### 桌面端及 GDI pipeline - 📐 通过 Trimesh + Shapely 实现 STL 的 **多轴切片**。 - 📊 **RANSAC 区域拟合**,提供可靠的 confidence 评估。 - 🤖 用于几何决策的 **LLM 编排器**。 - ⚖️ **两阶段 Judge**:语法校验 → IoU。 - 🛠️ CAD 代码的 **参数化与格式美化**。 - 📁 传感器与 LLM 之间的 **YAML 契约 v1.0**。 - 🖨️ 通过 FreeCAD Path **导出 G-code**。 ## 🚀 快速开始 ### 1. 克隆仓库 ``` git clone git@github.com:Shugar86/additive-light.git cd additive-light ``` ### 2. Web 版本(推荐初学者使用) ``` # Python 3.11+ python server.py ``` 在浏览器中打开:**http://localhost:8001** ### 3. OpenSCAD AI 桌面版 ``` pip install -r requirements.txt python launch_gui.py # 或者 python -m gdi_app.gui.main_window ``` ### 4. GDI pipeline (CLI) ``` pip install -r requirements.txt python -m gdi_app.cli.main process benchmark_kit/ideal/ideal_cylinder.stl \ --output output/ \ --axis Z \ --step 0.1 \ --confidence 0.7 ``` 可用命令: ``` python -m gdi_app.cli.main --help python -m gdi_app.cli.main info python -m gdi_app.cli.main validate output/ideal_cylinder_telemetry.yaml python -m gdi_app.cli.main batch benchmark_kit/ideal/ --output output/ ``` ## 🏗️ 架构 / 技术栈 | 领域 | 技术 | 用途 | |---------|------------|------------| | Web 前端 | Vanilla JS, HTML5/CSS3, CodeMirror, Three.js | UI、代码编辑器、3D 查看器 | | 浏览器 Python | Pyodide (WebAssembly), SolidPython2 (`solid2`) | 在浏览器中执行 AI 代码 | | CAD 内核 (Web) | OpenSCAD WASM | CSG 渲染与 STL 导出 | | AI 网关 | OpenRouter API | 接入 coder 模型 | | 桌面端 / pipeline | Python 3.11+, Trimesh, Shapely, Pydantic, LangGraph, Typer, PyQt6 | 扫描 → CAD pipeline | | Web 后端 | FastAPI, Celery, Redis, S3 (Phase 2) | 可扩展的 API | | 测试 | pytest, black, mypy | 质量与一致性保证 | 详细的架构、数据流及核心决策请见 [`ARCHITECTURE.md`](./ARCHITECTURE.md)。 ## 📁 项目结构 ``` additive-light/ ├── index.html # Главная страница веб-приложения ├── script.js # UI, Pyodide, AI, Three.js, OpenSCADManager ├── worker.js # Web Worker для OpenSCAD WASM ├── style.css / style_new.css # Стили ├── server.py # Локальный dev-сервер с заголовками COOP/COEP ├── openscad.min.js # JS-обёртка OpenSCAD WASM ├── requirements.txt # Python-зависимости │ ├── OpenSCAD_AI/ # Десктопный GUI-ассистент ├── gdi_core/ # Ядро пайплайна GDI │ ├── api.py # Публичный API │ ├── sensors/ # Слайсинг и выравнивание │ ├── approximator/ # Детекция зон и confidence │ ├── synthesis/ # Генерация кода через LLM │ ├── judge/ # Валидация и IoU │ ├── optimizer/ # Оптимизация CAD-кода │ ├── sandbox/ # Песочница исполнения │ └── models/ # YAML-контракт и Pydantic-модели ├── gdi_app/ # CLI и GUI для GDI │ ├── cli/main.py # Typer CLI │ └── gui/ # PyQt6 GUI ├── web/ # Web backend/frontend (Phase 2) │ ├── backend/ # FastAPI + Celery │ ├── frontend/ # Frontend-артефакты │ └── sandbox/ # Песочница для backend ├── benchmark_kit/ # Тестовые STL: ideal / noise / corrupt / real_scans ├── tests/ # Юнит- и интеграционные тесты │ ├── ARCHITECTURE.md # Архитектура и data flow ├── DEPLOY.md # Инструкция по деплою ├── ROADMAP.md # Планы и UX-долги ├── CHANGELOG.md # История изменений ├── CONTRIBUTING.md # Как участвовать ├── AGENTS.md # Контракт для агента-разработчика └── LICENSE # MIT ``` ## 📝 示例 ### Web:从文本生成花瓶 1. 打开 **http://localhost:8001**。 2. 在输入框中填写:`具有螺旋几何形状的花瓶,高度 100 mm`。 3. 点击 **生成**,然后点击 **编译**。 4. 当模型在 3D 查看器中显示后,即可下载 `.scad` 或 `.stl`。 ### GDI:在 Python 中分析扫描数据 ``` from gdi_core import GDIAPI api = GDIAPI(slice_step=0.1, confidence_threshold=0.7) manifest = api.run_pipeline( stl_file="benchmark_kit/real_scans/кольцо.stl", base_axis="Z" ) print(manifest.status) print(manifest.approximation_result.global_confidence) ``` ### CLI:批处理 ``` python -m gdi_app.cli.main batch benchmark_kit/ideal/ \ --output output/ \ --pattern "*.stl" \ --confidence 0.7 ``` ## 🛠️ 开发 ``` # 安装依赖 pip install -r requirements.txt # 运行测试 pytest tests/ -v # 格式化 black gdi_core/ gdi_app/ web/ # 类型检查 mypy gdi_core/ # 本地 web 服务器 python server.py ``` ## 🗺️ 路线图与历史 - 后续计划详见 [`ROADMAP.md`](./ROADMAP.md)。 - 更新日志详见 [`CHANGELOG.md`](./CHANGELOG.md)。 ## 🎭 项目基调 **基调:** `precise & honest` — 研发平台的工程严谨与诚实。 1. **对成熟度保持诚实。** 凡是 MVP 方案均如实标注;confidence 评估绝不夸大。 2. **验证优先于结果。** AI 生成的代码必须通过三级检查和 Judge 测试 — 绝不交付无法渲染的内容。 3. **Local-first。** 重型文件保留在本地机器上;仅在 AI 生成时需要联网。 ## 📄 许可证 [MIT](./LICENSE) © 2026 Shugar86.
标签:3D建模, CAD, OpenSCAD, Python, 云资产清单, 安全规则引擎, 搜索引擎查询, 数据可视化, 无后门, 生成式AI, 索引, 逆向工具, 逆向工程