Skip to content

Releases: SJLS27/openburn

0.9.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 20:24

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. Usa webUtils.getPathForFile
    y cae a leer el File en 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: HistoryBuffer limita 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_DIR para 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

Choose a tag to compare

@github-actions github-actions released this 01 Nov 20:03
v0.8.1

OpenBurn v0.8.1

OpenBurn 0.8.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 00:22

[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) con latest*.yml para 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 con image/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 crea C00, 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 con xvfb), workflow de release por tag y
    política de testing en AGENTS.md.
  • Documentación actualizada: README, docs/USAGE.md, docs/ARCHITECTURE.md,
    docs/DEVELOPMENT.md, TODO.md y 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-svg se 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 estado disabled con
    explicación en lugar de un error.

Cambiado

  • Flatpak repineado al tag v0.8.0.
  • Node.js 22.22+ requerido (lo exige jsdom 30); 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

Choose a tag to compare

@SJLS27 SJLS27 released this 25 Oct 17:11

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.
  • appId y nombre de escritorio alineados con io.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.AppImage

SHA-256: ea454af8b9d5b12027f7b682ab95fa82168d4e411bfe98710b7aa4b40b3d98a7

OpenBurn 0.7.0

Choose a tag to compare

@SJLS27 SJLS27 released this 25 Oct 16:36

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.AppImage

SHA-256: 3af83c758c68827f977561cfe4a91e8d5903e7103d839a320df4e62863354f67

OpenBurn 0.6.1 — sublayers y Kerf Test

Choose a tag to compare

@SJLS27 SJLS27 released this 25 Oct 00:02

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 S50 y 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/.lbrn2 conservando velocidad y potencia de cada celda (un CutSetting por 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 NOTES que 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 CutSetting por 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:electron

Enlaces

OpenBurn 0.6.0 — Focus Test, kerf y biblioteca de materiales

Choose a tag to compare

@SJLS27 SJLS27 released this 24 Oct 23:50

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 mm en una capa NOTES que no se graba.
  • Cada línea lleva su propio zOffset; el GCode emite G1 Z… antes de cada grupo y vuelve a Z0 al 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, crossHatch y scanOffset en .lbrn/.lbrn2.
  • Los .obrn antiguos 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 … Z2 y retorno a Z0; aviso claro si el eje Z está desactivado.
  • Kerf: un cuadrado de 20 mm con kerf 1 mm produce 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 build y typecheck de Electron en verde.

Instalación

git clone https://github.com/SJLS27/openburn.git
cd openburn
npm install
npm run dev:electron

Enlaces

OpenBurn 0.5.2 — portapapeles y menús contextuales

Choose a tag to compare

@SJLS27 SJLS27 released this 24 Oct 23:32

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 Textbox en el centro de la vista,
    • SVG (texto o HTML con <svg>) → se importa como vectores,
    • imágenes PNG/JPG → se importan como raster.
  • 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+V prioriza las formas copiadas dentro de OpenBurn; usa Ctrl+Shift+V o el menú contextual para pegar contenido del sistema.
  • En navegador, el pegado del sistema usa el evento paste estándar (texto/SVG/imágenes).

Instalación

git clone https://github.com/SJLS27/openburn.git
cd openburn
npm install
npm run dev:electron

Enlaces

OpenBurn 0.5.1 — formato nativo .obrn

Choose a tag to compare

@SJLS27 SJLS27 released this 24 Oct 23:03

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 .ovbrn existentes se siguen abriendo. Al guardar, se convierten a .obrn.
  • Diálogos y filtros: Open acepta .obrn y .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:electron

Notas

  • .ovbrn queda 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

Choose a tag to compare

@SJLS27 SJLS27 released this 24 Oct 22:57

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 NOTES que 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 .lbrn y .lbrn2: Rect, Ellipse, Polygon, Path con Bézier, grupos, texto con backup path, bitmaps y CutSetting.
  • Exporta .lbrn (legado) y .lbrn2 (compacto) con geometría, texto en contornos, bitmaps y capas.
  • Soporta VertList compacto, <V>/<P> legado y plantillas VertID/PrimID.

📦 Instalación

git clone https://github.com/SJLS27/openburn.git
cd openburn
npm install
npm run dev:electron

Build de producción:

npm run build
npm run build:app   # AppImage / NSIS / DMG

Esta 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 .lbrn2 exportado 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.