Skip to content

sebastian73m/laminador-bambu

v0.1.3

Lamina proyectos 3MF con Bambu Studio local y explora trayectorias, capas, tiempos y filamento en 3D.

Laminador Bambu para ChatGPT

AGPL-3.0

Plugin MCP con un visor 3D de trayectorias de impresión. Lamina proyectos 3MF usando Bambu Studio local y muestra capas, extrusión, desplazamientos, tiempos estimados y consumo de filamento. El visor permite rotación, zoom, desplazamiento y selección de capas.

Primera versión de prueba para Windows y Linux. La navegación es una simulación propia; las trayectorias y estadísticas de un laminado real proceden de Bambu Studio.

Los cordones tienen sección redondeada para distinguir líneas adyacentes en superficies horizontales. Mostrar costuras marca en blanco los cierres detectados de paredes exteriores y respeta la selección de capas y los filtros. Se infieren de los contornos del G-code: no se garantiza una réplica de costuras scarf ni de la ventana nativa.

La versión 0.1.3 incluye las correcciones de actualización y recuperación del visor, la eliminación de la barra de recorrido y los paneles colapsables. Las capturas y el funcionamiento descrito a continuación corresponden a esta versión; consulta el estado de verificación.

Interfaz actual con un laminado real y sin barra inferior de recorrido

Explorar el laminado

El modelo aparece completo al terminar la carga, sin animación de reproducción ni barra de recorrido. El visor pide hasta cuatro bloques de 4.000 trayectorias en paralelo y construye la geometría una vez. Esto acelera la vista previa; no cambia el tiempo que necesita Bambu Studio para laminar.

  • Arrastra para rotar, usa la rueda para acercar/alejar y el botón derecho para desplazar.
  • Encuadrar recupera la vista general; Vista superior facilita revisar rellenos y paredes.
  • Selecciona la placa, el intervalo de capas o Solo la capa seleccionada. Se muestran todas las trayectorias del intervalo elegido.
  • Colorea por tipo de trayectoria, filamento/herramienta o velocidad. Puedes ocultar tipos, preparación, desplazamientos y costuras.

Para ver líneas paralelas, selecciona la capa superior, activa Solo la capa seleccionada, pulsa Vista superior y acerca con la rueda. Cada cordón se distingue por su sección redondeada y el sombreado entre líneas, conservando su anchura y posición del G-code.

Detalle con zoom de los cordones paralelos de una capa superior real

Los botones Proyecto ▴/▾ y Datos ▸/◂, situados en la barra del visor, permiten plegar y desplegar los paneles independientemente. Proyecto oculta la cabecera y los controles del archivo; Datos oculta estadísticas y filtros (en móvil, ese panel está debajo del 3D). Los botones quedan visibles para restaurarlos y admiten Enter o Espacio. El estado se mantiene mientras esa página siga abierta; una página nueva comienza con ambos paneles desplegados. Plegarlos conserva el laminado, el zoom, la posición de la cámara y los filtros; el área 3D usa el espacio liberado.

Visor actual con los paneles superior y lateral colapsados

La interfaz ocupa el ancho y alto disponibles. El inspector tiene desplazamiento propio; en ventanas estrechas los controles se organizan debajo del visor. Dentro del plugin, el tamaño máximo lo concede el host. Ampliar vista solicita pantalla completa; en el navegador el botón se llama Pantalla completa.

Al recibir otro resultado en el mismo visor, se reemplaza la geometría y las estadísticas; las respuestas tardías de trabajos anteriores se descartan. La escena se conserva cuando el navegador guarda temporalmente la página y se redibuja al recuperar visibilidad o restaurar WebGL. Las correcciones se probaron en Chromium y en un iframe MCP; falta repetirlas en el navegador lateral real del usuario.

Probar el visor ahora

Requiere Node.js 22.12 o posterior. Desde la carpeta del proyecto:

npm ci
npm run build
npm start

Abre http://127.0.0.1:4319. Probar demostración muestra un jarrón sintético sin estadísticas inventadas. Elegir archivo permite importar examples/cubo-p2s-laminado.3mf; pulsa Abrir laminado para ver un resultado real incluido, sin instalar Bambu Studio.

El ejemplo tiene 50 capas, 2,11 g, 694,76 mm de filamento, 4 min 51 s del modelo y 11 min 50 s totales. Incluye perfiles P2S y PLA de prueba.

Laminar tus proyectos

También puedes instalar el motor y el servicio juntos con Docker en Windows/Linux, sin instalar Bambu Studio en el host. Consulta instalación y diagnóstico Docker. El instalador genera un marketplace portable separado y mantiene la variante nativa.

Instala Bambu Studio o compílalo desde su código fuente fijado. Configura una ruta absoluta al ejecutable CLI y una carpeta de proyectos.

Windows — PowerShell

.\scripts\start.ps1 -BambuStudioPath 'C:\Program Files\Bambu Studio\bambu-studio.exe' -ProjectsDir 'C:\Impresion\Proyectos'

La ruta es un ejemplo: usa la de tu instalación. Si tu compilación proporciona bambu-studio-console.exe, úsalo. El script instala dependencias npm si faltan y compila el plugin.

Linux — Bash

export BAMBU_STUDIO_PATH='/ruta/absoluta/BambuStudio.AppImage'
export PROJECTS_DIR="$HOME/Impresion/Proyectos"
bash scripts/start.sh

En Linux sin pantalla gráfica consulta el adaptador Xvfb en docs/engine.md.

En el visor, selecciona el archivo con Elegir archivo o escribe una ruta relativa de PROJECTS_DIR. Laminar proyecto usa los perfiles incorporados y permite elegir una placa o todas. Consulta el progreso y cancela cuando haga falta. Al terminar se abre el visor y puedes descargar el 3MF laminado.

Los perfiles JSON completos opcionales se pueden proporcionar mediante la herramienta slice_project (machine, process, filaments), con rutas relativas a la misma carpeta. No se reemplazan perfiles automáticamente por otros de distinta impresora.

Dentro de ChatGPT

El visor está empaquetado como MCP App. La conexión usa el servidor local y requiere un host compatible y un mecanismo admitido de acceso local/túnel. localhost por sí solo no es accesible desde un servicio remoto de ChatGPT.

Sigue docs/chatgpt.md para instalar el plugin local o conectarlo mediante Secure MCP Tunnel. La entrega incluye plugin.json, mcp.json, una habilidad y el servidor stdio real. No está instalado en tu ChatGPT ni conectado automáticamente a tu cuenta.

node dist/server.js --stdio

La variante HTTP ofrece Streamable HTTP en http://127.0.0.1:4319/mcp; solo escucha en el equipo local. No está preparada para exposición pública sin autenticación adicional.

Herramientas

HerramientaFunción
engine_statusComprueba CLI y configuración del motor
list_projects / inspect_projectEncuentra e inspecciona proyectos locales
slice_projectInicia laminado y devuelve un trabajo
job_status / cancel_jobConsulta o cancela el proceso
open_previewAbre un trabajo terminado o un 3MF laminado
open_demoPrueba el visor con datos sintéticos
get_toolpath_chunk / get_result_chunkGeometría y descarga por bloques desde la interfaz
begin_import / append_importImportación del archivo seleccionado en la interfaz

Configuración y conservación de archivos

VariableValor por defecto
BAMBU_STUDIO_PATHSin configurar; se pueden abrir laminados existentes
PROJECTS_DIR./projects
JOBS_DIR./.jobs
PORT4319
HTTP_BIND_HOST127.0.0.1; 0.0.0.0 solo dentro del contenedor con publicación loopback
SLICE_TIMEOUT_MS1800000 (30 minutos)
MAX_CONCURRENT_JOBS1
MAX_JOBS20 por ejecución del servicio
MAX_FILE_BYTES268435456 (256 MiB)
MAX_EXPANDED_BYTES536870912 (512 MiB)
MAX_SEGMENTS2000000 por placa

Las rutas de proyectos deben permanecer dentro de la carpeta autorizada. Se rechazan escapes mediante enlaces, ZIP cifrados y archivos que excedan los límites. La importación guarda una copia con nombre UUID dentro de PROJECTS_DIR. Cada laminado conserva una copia de entrada y un resultado en JOBS_DIR; el original permanece intacto.

Los trabajos viven en memoria: al reiniciar, sus identificadores dejan de estar disponibles; los archivos permanecen. Copia los resultados que quieras conservar a PROJECTS_DIR para volver a abrirlos. Limpia JOBS_DIR manualmente con el servicio detenido. Las importaciones incompletas caducan a los 10 minutos al iniciar otra importación; restos de ejecuciones anteriores se pueden limpiar igual. No se eliminan automáticamente los proyectos del usuario.

Pruebas y empaquetado

npm run check
npm test
npm run build
npx playwright install chromium
npm run test:ui
npm run package

Para incluir el motor real en las pruebas configura BAMBU_STUDIO_PATH antes de npm test. Sin esa variable solo se omite la prueba que requiere el binario; la lectura del ejemplo real sigue comprobándose.

Estado de verificación: se probó un laminado real en Linux, el protocolo MCP y el visor en Chromium. Docker/MCP y el parser del plugin se comprobaron en Linux; el informe de instalación Windows está documentado por separado. La compilación C++ completa y la vista embebida real de ChatGPT Desktop siguen pendientes; GitHub Actions verifica el servidor y el visor en Windows y Linux.

Licencia AGPL-3.0-only. Atribuciones y código correspondiente: THIRD_PARTY.md.

Contribuciones

Proyecto open source bajo AGPL-3.0-only. Consulta CONTRIBUTING.md para desarrollar, informar errores o enviar mejoras. El historial público comienza con una versión inicial de prueba; las limitaciones verificadas están en docs/testing.md.

GitHub Actions

El workflow .github/workflows/ci.yml se ejecuta en cada push y pull request sobre Windows y Linux con Node.js 22. Comprueba TypeScript, ejecuta las pruebas, compila el servidor y el visor, verifica la interfaz con Chromium y genera un ZIP descargable por sistema. Un job adicional en Linux construye el contenedor, ejecuta la suite con motor real como usuario sin privilegios y comprueba MCP stdio/HTTP y laminado. La integración con el app-server Codex se comprueba con el diagnóstico local opcional; la vista embebida real de ChatGPT Desktop sigue requiriendo prueba en ese host.