mesh-avatar-studio
Turn one illustration into an animated 2D mesh avatar with a coding agent and a local editor
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Interfaz web de Render.IA, una plataforma que usa inteligencia artificial para convertir planos 2D en modelos estructurales 3D. Proyecto final de Patrones de Software. • Integrantes: Juan David Moreno, Felipe Cerón • Backend: renderia-backend (Java 21 + Spring Boot) • Base de datos: renderia-database (PostgreSQL en Neon)檢視完整 README ↗
Interfaz web de Render.IA, una plataforma que usa inteligencia artificial para convertir planos 2D en modelos estructurales 3D.
Proyecto final de Patrones de Software.
Demo en línea: https://renderia-frontend.vercel.app
src/analysis/analyzers/LocalVisionAnalyzer.ts lee el plano en el navegador, sin servidor:
Con el plano de ejemplo (public/samples/plano-casa.svg) detecta los 18 tramos de muro, 11 columnas, 6 puertas, 5 ventanas y 15 vigas en menos de medio segundo.
| Patrón | Dónde | Para qué |
|---|---|---|
| Singleton | AppConfig, ApiClient, Session, MockDatabase, CatalogService | Una sola instancia compartida de la configuración, el cliente HTTP, la sesión y los datos |
| Observer | EventBus, appEvents, ActivityLogger, AppShell | Avisar cambios de ruta, sesión y estado de análisis sin acoplar componentes; el log de actividad escucha eventos |
| Template Method | View, ElementMeshCreator.create() | Pasos fijos (render → afterRender; construir → etiquetar) con detalles en las subclases |
| Strategy | RolePolicy (AdminPolicy, EngineerPolicy, StudentPolicy) y PlanAnalyzer (LocalVisionAnalyzer, SampleResponseAnalyzer, BackendAnalyzer) | Permisos según el rol y forma de analizar según el modelo de IA, intercambiables |
| Abstract Factory | RepositoryFactory → MockRepositoryFactory / ApiRepositoryFactory | Familias de repositorios (en el navegador o contra el backend) sin cambiar las vistas |
| Factory Method | AnalyzerFactory, ElementMeshFactory + creadores de mallas | Crear el analizador según ai_models.provider y la pieza 3D según el tipo de elemento |
| Facade | AnalysisFacade | Una sola llamada (run) esconde todo el proceso: registro, estados, IA, guardado y modelo 3D |
| State | AnalysisState (PendingState, ProcessingState, CompletedState, FailedState) | Ciclo de vida de un análisis y transiciones válidas |
| Builder | StructuralSceneBuilder | Armar la escena 3D paso a paso (fondo, elementos, terreno, luces) |
npm install
npm run dev
Para correr las pruebas: npm test. En cada pull request, GitHub Actions revisa los tipos, corre las pruebas y hace el build (.github/workflows/ci.yml).
Abre http://localhost:5173 y entra con una de las cuentas de prueba:
| Rol | Correo | Contraseña |
|---|---|---|
| Administrador | [email protected] | Admin123* |
| Ingeniero | [email protected] | Ingeniero123* |
| Estudiante | [email protected] | Estudiante123* |
VITE_DATA_SOURCE | Qué hace |
|---|---|
mock (por defecto en localhost) | Todo se guarda en el navegador. Funciona sin backend. |
hybrid | Inicio de sesión, catálogos, proyectos y planos van al backend; el resto, al navegador. Sirvió durante la migración. |
api (por defecto en producción) | Todo va al backend en VITE_API_URL, y los análisis se hacen en el servicio de IA (renderia-ai). Los endpoints están en docs/API.md. |
Si VITE_API_URL está vacía, en producción se usa https://renderia-backend.onrender.com/api/v1.
En desarrollo, Vite redirige /api a http://localhost:8080, así que no hace falta configurar CORS para probar con el backend local.
| Comando | Qué hace |
|---|---|
npm run dev | Inicia el servidor de desarrollo |
npm run build | Revisa los tipos y genera la versión de producción en dist/ |
npm run preview | Sirve localmente la versión de producción |
Render-ia/renderia-frontend.vercel.json ya trae la configuración).VITE_DATA_SOURCE=mock para la demo, o VITE_DATA_SOURCE=api y VITE_API_URL=https://<backend>/api/v1 cuando el backend esté publicado.main se publica de nuevo automáticamente.src/
├── analysis/ IA: estados, fachada, fábrica de analizadores
│ ├── analyzers/ Detector de visión local, respuesta de ejemplo, backend
│ └── vision/ Imagen binaria, muros, columnas, puertas y vigas
├── auth/ Sesión, servicio de autenticación y políticas por rol
├── core/ Configuración, eventos, cliente HTTP, enrutador, almacenamiento
├── data/ Contratos de repositorios y sus dos familias (mock y api)
├── models/ Tipos que reflejan las tablas de schema.sql
├── services/ Reglas de negocio: proyectos, planos, análisis, catálogos, actividad
├── ui/ Marco de la app, diálogos, avisos, superposición del plano
├── viewer/ Visor 3D: constructor de escena y creadores de mallas
├── views/ Pantallas (todas heredan de View)
└── styles/ Tokens de diseño y estilos por sección
| Repository | data/repositories.ts | Separar el acceso a datos de la lógica de las pantallas |
| Command | EditElementCommand, RemoveElementCommand, CommandHistory (analysis/commands) | Cada corrección a los elementos es un objeto que sabe aplicarse y revertirse: deshacer y rehacer (Ctrl+Z / Ctrl+Shift+Z) |