Skip to content
Nachi3D Labs

ProjectsNachi3D Laser Studio

Nachi3D Laser Studio

Live

AI-assisted laser engraving design — generate and optimise artwork for LightBurn.

Source available on request

About this project

Overview

A desktop app that generates AI images optimized for laser engraving on wood and leather. The workflow I had before was janky — describe something to an AI image generator, get back a photo-realistic image full of gradients, then spend time in Photoshop making it engravable. This app builds the prompt engineering directly in, so what comes out is already high-contrast line art with no gradients, crosshatching for depth, and material-specific tuning.

The backend calls FLUX.1-schnell via HuggingFace's Inference API, then runs the result through a Sharp post-processing pipeline — grayscale, normalize, contrast boost, sharpen, threshold — to push the image toward something a laser cutter can actually use.

The whole thing ships as a Windows installer with Node.js bundled. Getting the CI/CD pipeline working on Windows runners was genuinely painful — NSIS has silent path-length failures that took several days to track down.

Key features

What it does

Prompt engine with per-material modifiers (wood vs leather) and per-category modifiers
FLUX.1-schnell image generation via HuggingFace with retry logic on cold starts
Sharp post-processing pipeline producing LightBurn-ready 1024x1024 PNG
Image upload mode — describe what you want inspired by a reference image
First-launch token setup screen saving HuggingFace API key to AppData
Automated test suite with 15 tests that opens GitHub issues on failure

Built with

The Stack

React
Vite
Electron
Express
FLUX.1
Sharp

What I'd do differently

In hindsight

I'd skip the Express server entirely and run image generation directly inside the Electron main process — the client/server split added packaging complexity for no real benefit in a single-user desktop app.

Want something like this built for you?

Tell me what you'd like to build and we'll see if it fits.