Repository navigation
Releases: SJLS27/openburn
Release list
0.9.0
Esta versión se centra en los fundamentos de app de escritorio: no perder
trabajo, retomar proyectos rápido y que la ventana y el lienzo se comporten como
en un programa nativo.
Añadido
- Autoguardado y recuperación. Mientras hay cambios sin guardar se escribe
un borrador en el perfil de la app (debounce de 2 s, flush máximo cada 30 s;
al guardar o cerrar limpio se elimina). Si la app termina de golpe, el
siguiente arranque ofrece Recover Unsaved Work. - Archivos recientes y pantalla de bienvenida. Hasta 10 rutas en
File → Open Recent (con Clear Recent Files) y un diálogo de inicio con
New Design, Open Project y la lista de recientes. - Drag & drop de
.obrn,.lbrn2, SVG, DXF e imágenes sobre el lienzo. Los
proyectos sustituyen el documento (con confirmación si hay cambios) y el
artwork se importa en el punto donde se suelta. UsawebUtils.getPathForFile
y cae a leer elFileen el navegador. - Ventana persistente: tamaño, posición y estado maximizado se restauran
validándolos contra los monitores actuales (si el monitor desapareció, la
ventana vuelve a un tamaño centrado seguro). - Historial acotado por memoria:
HistoryBufferlimita undo/redo a 64 MB y
100 entradas, descartando los snapshots más antiguos. Importante con imágenes
embebidas como data URLs. - Confirmación Guardar / Descartar / Cancelar al crear, abrir, reabrir un
reciente o soltar un proyecto si hay cambios sin guardar. OPENBURN_USER_DATA_DIRpara aislar el perfil (usado por los e2e).
Cambiado
- El título del documento al abrir un proyecto ahora es el nombre del archivo.
- Guardar y abrir proyectos actualiza la lista de recientes.
- Los e2e arrancan con un perfil temporal y ya no escriben en la configuración
real del desarrollador.
Pendiente
- Varios documentos (pestañas/ventanas) queda como P6b: requiere rediseñar
el store y el controlador a multi-documento.
0.8.1
OpenBurn 0.8.0
[0.8.0] — 2026-10-28
Esta versión se centra en el flujo diario: actualizaciones automáticas,
compatibilidad real con el portapapeles de Inkscape, imágenes que se graban sin
configuración manual y una base sólida de tests y CI.
Añadido
- Actualizaciones automáticas con
electron-updater: comprobación en segundo
plano al arrancar (5 s), comprobación manual desde Help → Check for
Updates…, descarga con progreso, banner en la app y Restart & install.
Los builds empaquetados se publican en GitHub Releases mediante el workflow
release.yml(AppImage, NSIS y DMG/ZIP) conlatest*.ymlpara el updater. - Pegado de vectores de Inkscape como paths editables. La lectura del
portapapeles en Electron 45 se hace por contenido, no por nombre de
formato, así que funciona conimage/svg+xml,
image/x-inkscape-compressed-svg, el envoltorio
electron application/osclipboard;format="…"y los formatos de macOS/Windows.
Se decodifica UTF-8, UTF-16LE, BOM, gzip, zlib, deflate raw y data URIs SVG. - Capa de imagen automática: al pegar o importar una imagen se asigna a una
capa en modo Image (reutiliza una existente o creaC00,C01…), como
LightBurn. Así aparece en la Preview y se graba sin cambiar la capa a mano. - Paneo arrastrando con el botón central del ratón, además de
Espacio+
arrastrar y la herramienta Pan. - Infraestructura de tests y CI: Vitest + Testing Library para unidad y
componentes, Playwright (_electron) para end-to-end, workflow de CI
(typecheck + unit + build + e2e conxvfb), workflow de release por tag y
política de testing enAGENTS.md. - Documentación actualizada:
README,docs/USAGE.md,docs/ARCHITECTURE.md,
docs/DEVELOPMENT.md,TODO.mdy este changelog.
Corregido
- Pegado desde los menús:
Edit → Paste,Edit → Paste in Place, el menú
contextual del lienzo y el botón de la barra ahora usan la misma lógica que
Ctrl+V: pegan el portapapeles interno y, si está vacío, leen el del
sistema. Se añadióEdit → Paste from Clipboard. - El formato
image/x-inkscape-compressed-svgse detecta correctamente tras la
migración del portapapeles de Electron 45. - La app ya no intenta actualizarse en builds no empaquetados, Flatpak o
instalaciones Linux que no sean AppImage: muestra un estadodisabledcon
explicación en lugar de un error.
Cambiado
- Flatpak repineado al tag
v0.8.0. - Node.js 22.22+ requerido (lo exige
jsdom30); CI y release usan Node 22. - Las builds de escritorio ya no recompilan la dependencia nativa opcional
canvas
de Fabric (npmRebuild: false), que no se usa en Electron.
Limitaciones conocidas
- Sin firma de código (Windows/macOS): el sistema puede mostrar avisos y la
actualización automática en macOS no está operativa en producción hasta
configurar la notarización. - En Linux, la actualización automática requiere el build AppImage; Flatpak
y los paquetes de distro se actualizan por su propia tienda. - La firma de código está pendiente: Windows puede mostrar SmartScreen y macOS
no puede autoactualizarse hasta configurar la notarización.
OpenBurn 0.7.1
OpenBurn 0.7.1 — Electron 45 y empaquetado Flatpak
Cambios
- Electron 45 (y electron-builder 26) con la API de portapapeles asíncrona adaptada.
- Empaquetado Flatpak preparado en
flatpak/:
manifiesto, lanzador zypak, fuentes npm/Electron offline, metadatos AppStream,
.desktop, iconos y reglas de permisos para puerto serie GRBL. appIdy nombre de escritorio alineados conio.github.SJLS27.OpenBurn
(requisito de Flathub).- La publicación en Flathub queda pendiente de revisión; el manifiesto es una
copia de preparación y debe revisarse y enviarse manualmente.
Descarga
- Linux x64:
OpenBurn-0.7.1.AppImage
chmod +x OpenBurn-0.7.1.AppImage
./OpenBurn-0.7.1.AppImageSHA-256: ea454af8b9d5b12027f7b682ab95fa82168d4e411bfe98710b7aa4b40b3d98a7
OpenBurn 0.7.0
OpenBurn 0.7.0 — planificador de corte tipo LightBurn y preview de recorrido
Algoritmos de corte
- Planificador por items con Order by Layer / Group / Priority.
- Cut inner shapes first, Cut in direction order y Reduce travel moves (vecino más cercano + Or-opt).
- Choose best starting point, Choose corners, Choose best direction y Reduce direction changes.
- Remove overlapping lines con tolerancia configurable.
- Nuevas opciones: Min Power, perforación (Cut/Skip), overcut, pausas inicio/fin + Cut Through, Lead-In / Lead-Out, Z step por pasada, air assist (M7/M8), ramp y flood fill.
- Modos de imagen completos: Threshold, Ordered, Atkinson, Dither, Stucki, Jarvis, Newsprint, Halftone, Sketch y Grayscale.
Preview
- Se dibuja el recorrido completo de la máquina entre cortes.
- La cabeza recorre también los viajes durante la animación, con tiempos por segmento.
Cuts / Layers y Cut Settings
- Tabla estilo LightBurn con Mode, Spd/Pwr, Output, Show y Air editables.
- Reordenar capas, Sort Cuts Last, Copy/Paste de ajustes y menús contextuales de cabecera y capa.
- Campos rápidos: Passes, Speed, Power Max, Power Min e Interval.
- Cut Settings Editor con pestañas Common / Advanced, Constant Power (M3) y Default Layer Settings persistentes.
Descarga
- Linux x64:
OpenBurn-0.7.0.AppImage
chmod +x OpenBurn-0.7.0.AppImage
./OpenBurn-0.7.0.AppImageSHA-256: 3af83c758c68827f977561cfe4a91e8d5903e7103d839a320df4e62863354f67
OpenBurn 0.6.1 — sublayers y Kerf Test
OpenBurn 0.6.1 — Material Test con sublayers y Kerf Test
Cierra el bloque de calibración: tests de material con capas reales y medición de kerf guiada.
Nuevo
Material Test con sublayers
- Nueva opción Create one sublayer per cell en Tools → Material Test….
- Cada celda del grid se crea en su propia capa, con nombre
C00 P40 S50y sus ajustes reales de velocidad, potencia, pasadas, intervalo, ángulo y cross-hatch. - Ventajas:
- editar cualquier celda desde Cuts / Layers como una capa normal,
- exportar a
.lbrn/.lbrn2conservando velocidad y potencia de cada celda (unCutSettingpor celda), - sin overrides por objeto ni avisos de exportación.
- La capa original queda activa al terminar.
Kerf Test
- Nuevo Tools → Kerf Test… con dos métodos:
- Slot: ranura rectangular de ancho nominal; mides el ancho real.
- Line span: N líneas separadas una distancia fija; mides de borde exterior a borde exterior (más preciso).
- El patrón se genera con kerf 0 y etiquetas en una capa
NOTESque no se envía al láser. - Calculadora integrada:
- Slot: offset = (nominal − medido) / 2.
- Line span: full kerf = medido − span nominal; offset ± full kerf / 2 según compenses piezas exteriores o agujeros.
- Apply to active layer y, opcionalmente, actualiza el kerf del material seleccionado en la biblioteca.
- Para capas con agujeros y piezas exteriores, la guía recomienda duplicar la capa y usar offsets opuestos.
Biblioteca de materiales
- Extraída a un módulo compartido (
src/core/materials.ts) con carga/guardado y evento de actualización. - El Kerf Test puede escribir el offset medido directamente en un material.
- Persistencia verificada también en Electron (
file://) además del navegador.
Verificación
- Sublayers 3 × 2: 6 capas reales, 6 celdas, cada una en su capa, sin overrides y con
CutSettingpor celda al exportar. ✅ - Kerf span: 10 líneas × 5 mm → span 45 mm y sin compensación aplicada al patrón. ✅
- Kerf slot: ranura de 1 × 20 mm con kerf 0. ✅
- Cálculo: medido 1.20 / nominal 1.00 → full kerf 0.20, offset −0.10; aplicado a capa y material. ✅
- Kerf negativo: cuadrado de 20 mm → 19.8 mm. ✅
npm run build, typecheck de Electron y CI en verde. ✅
Instalación
git clone https://github.com/SJLS27/openburn.git
cd openburn
npm install
npm run dev:electronEnlaces
OpenBurn 0.6.0 — Focus Test, kerf y biblioteca de materiales
OpenBurn 0.6.0 — calibración fina: Focus Test, kerf y materiales
Este bloque cubre la calibración y el corte repetible: foco con eje Z, compensación de kerf, control de scan y una biblioteca de materiales que puedes editar y guardar.
Nuevo
Focus Test con eje Z
- Tools → Focus Test… crea una rampa de líneas paralelas, cada grupo a una altura Z distinta.
- Etiquetas
Z -2.00 mm … Z +2.00 mmen una capa NOTES que no se graba. - Cada línea lleva su propio
zOffset; el GCode emiteG1 Z…antes de cada grupo y vuelve aZ0al terminar. - Settings → Machine: casilla Z axis installed y Z feed (mm/min).
- Shape Properties → Z offset para fijar la altura de cualquier objeto.
Kerf y scan
- Kerf por capa: expande (+mm) o contrae (−mm) los contornos cerrados en modo Line.
- Angle: dirección del relleno en Fill/Image (0° horizontal, 45° diagonal…).
- Cross-hatch: segunda pasada a
angle + 90°. - Scan offset: compensa el retardo del láser desplazando cada línea de scan.
Biblioteca de materiales editable
- Edita nombre, espesor, velocidad, potencia, pasadas, modo y kerf.
- Apply to layer aplica todo a la capa activa; Save layer guarda la capa actual como material; Delete elimina.
- Persistencia automática en el equipo (
localStorage).
Compatibilidad
- Import/export de
kerf,angle,crossHatchyscanOffseten.lbrn/.lbrn2. - Los
.obrnantiguos migran sus ajustes de corte con valores por defecto. - Los contornos abiertos ya no se cierran al planificar (mejor para líneas y paths abiertos).
Verificación
- Focus Test: 5 alturas Z generan
G1 Z-2 … Z2y retorno aZ0; aviso claro si el eje Z está desactivado. - Kerf: un cuadrado de 20 mm con kerf
1 mmproduce un contorno de 22 × 22 mm. - Angle 45°: pendiente 1; cross-hatch duplica los segmentos (14 → 28).
- Scan offset: desplazamiento exacto de 0.5 mm en las líneas de relleno.
- Biblioteca: creación/edición y persistencia comprobadas.
npm run buildy typecheck de Electron en verde.
Instalación
git clone https://github.com/SJLS27/openburn.git
cd openburn
npm install
npm run dev:electronEnlaces
OpenBurn 0.5.2 — portapapeles y menús contextuales
OpenBurn 0.5.2 — portapapeles del sistema y menús contextuales
Corrige el pegado desde otros programas y añade menús de edición nativos.
Arreglos
- Pegar desde otros programas ahora funciona en Linux (y macOS/Windows):
- texto → se crea un
Textboxen el centro de la vista, - SVG (texto o HTML con
<svg>) → se importa como vectores, - imágenes PNG/JPG → se importan como raster.
- texto → se crea un
- Menú de edición nativo de Electron con Undo/Redo/Cut/Copy/Paste/Select All: los atajos estándar funcionan dentro de inputs, consola y edición de texto.
- Clic derecho en campos de texto: menú nativo con Cortar/Copiar/Pegar/Seleccionar todo.
Nuevo
- Menú contextual en el lienzo (clic derecho): Cut, Copy, Paste, Paste from clipboard, Duplicate, Delete, Select all.
Ctrl+Shift+V: fuerza el pegado desde el portapapeles del sistema cuando hay formas en el portapapeles interno.- Acceso al portapapeles por IPC (
window.openburn.readClipboard) en la app empaquetada.
Notas
Ctrl+Vprioriza las formas copiadas dentro de OpenBurn; usaCtrl+Shift+Vo el menú contextual para pegar contenido del sistema.- En navegador, el pegado del sistema usa el evento
pasteestándar (texto/SVG/imágenes).
Instalación
git clone https://github.com/SJLS27/openburn.git
cd openburn
npm install
npm run dev:electronEnlaces
OpenBurn 0.5.1 — formato nativo .obrn
OpenBurn 0.5.1 — formato nativo .obrn
Parche de formato: OpenBurn pasa a usar .obrn como extensión canónica de sus proyectos.
Cambios
- Nuevo formato nativo: los proyectos se guardan como
.obrn(JSON versionado, misma estructura interna). - Compatibilidad hacia atrás: los archivos
.ovbrnexistentes se siguen abriendo. Al guardar, se convierten a.obrn. - Diálogos y filtros: Open acepta
.obrny.ovbrn; Save usa.obrn. - Fix navegador: los archivos de proyecto (
.obrn,.ovbrn,.json,.lbrn,.lbrn2) ahora se leen como texto al abrirlos desde el navegador. - Documentación, capturas y badges actualizados a 0.5.1.
Instalación
git clone https://github.com/SJLS27/openburn.git
cd openburn
npm install
npm run dev:electronNotas
.ovbrnqueda como formato legado de solo lectura; se recomienda guardar como.obrn.- Sin binarios adjuntos: se compila desde el código fuente.
Docs: Guía de uso · Formatos · README
OpenBurn 0.5.0 — diseño láser + interoperabilidad LightBurn
OpenBurn 0.5.0 — diseño láser + interoperabilidad LightBurn
Primera release pública de OpenBurn, una aplicación open-source (MIT) para diseñar, previsualizar y controlar máquinas de corte/grabado láser. Interfaz y flujo de trabajo inspirados en LightBurn, con compatibilidad de archivos .lbrn / .lbrn2.
✨ Lo más destacado
Diseño vectorial
- Línea, rectángulo, rectángulo redondeado, elipse, polígono, texto y medida.
- Selección, escalado, rotación, alineación, distribución, agrupación y orden.
- Booleanos (unión/resta/intersección/exclusión), offset, arrays y edición de nodos.
- Texto a contornos con opentype.js (fuente Inter incluida).
- Tabs para dejar puentes en los contornos.
Capas y corte
- Paleta de colores tipo LightBurn (C00, C01, …); cada color es una capa.
- Modos Line / Fill / Offset Fill / Image con velocidad, potencia, pasadas, intervalo, overscan y dithering.
- Overrides de corte por objeto (Material Test).
- Capa
NOTESque nunca se envía al láser.
Preview y GCode
- Preview animado con scrub, velocidad, cabeza láser, tiempo y estadísticas.
- Generación de GCode GRBL (M3/M4, origen configurable, overscan, fill y raster).
- Optimización de recorridos por vecino más cercano.
- Exportación de GCode
.nc.
Control GRBL
- Web Serial o simulador integrado (sin hardware).
- Streaming con control de flujo, Frame, Start, Pause/Resume y Stop.
- Jog (
$J), homing ($H), unlock ($X), set origin (G10 L20). - Consola bidireccional, macros y estado en vivo (posición, feed, spindle, progreso).
Imágenes
- Adjust Image: brillo, contraste, gamma, umbral e invertir con previsualización.
- Trace Image: vectorización monochrome o color.
Compatibilidad LightBurn
- Importa
.lbrny.lbrn2: Rect, Ellipse, Polygon, Path con Bézier, grupos, texto con backup path, bitmaps yCutSetting. - Exporta
.lbrn(legado) y.lbrn2(compacto) con geometría, texto en contornos, bitmaps y capas. - Soporta
VertListcompacto,<V>/<P>legado y plantillasVertID/PrimID.
📦 Instalación
git clone https://github.com/SJLS27/openburn.git
cd openburn
npm install
npm run dev:electronBuild de producción:
npm run build
npm run build:app # AppImage / NSIS / DMGEsta release no incluye binarios precompilados; se compila desde el código fuente.
📚 Documentación
⚠️ Limitaciones conocidas
- La compatibilidad LightBurn se validó por round-trip con archivos reales; aún no se probó abriendo un
.lbrn2exportado en LightBurn 2.x en una máquina con LightBurn instalado. - Los colores de capa en LightBurn dependen del índice de paleta.
- Los grupos se aplanan al exportar; los overrides por objeto se convierten en ajustes de capa.
- Las imágenes rotadas se exportan sin rotación.
- Focus Test (eje Z), rotary, cámaras, Ruida/DSP y galvo están pendientes.
- El raster de GCode se limita a 360 muestras por eje; el trace a 700 px de lado mayor.
🔒 Aviso
OpenBurn no está afiliado a LightBurn Software Inc. La compatibilidad de archivos se implementó a partir del formato XML y ejemplos públicos, sin utilizar el código fuente de LightBurn.
🧡 Licencia
MIT. Fuente Inter bajo SIL OFL 1.1.