Tavotto
AI drew your research figure. Tavotto makes it publication-ready: edit matplotlib figures on a canvas, lay out in mm, check journal rules. Free, open source.
翻译准备中
尚未检测到更新。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) |