๐Ÿ“ Project

Design Explorer

A small, zero-dependency local web app that scans a folder of purchased laser-cut design packs and turns it into a filterable gallery. It detects each design's material thicknesses, kerf variants, file formats, and build instructions โ€” then auto-classifies it, works out how many boards it takes to cut, and tells you exactly what you can make from the wood you already own.

defaults to 6mm + has build instructions your stated focus โ€” fully adjustable
Design Explorer gallery โ€” filterable cards with material-thickness badges, board-needed math, and the 6mm thickness filter active

What it does

Indexes every pack

Scans your purchases directory and detects each design's preview image, material thicknesses (3/4/4.5/5/6mmโ€ฆ), kerf variants, file formats (SVG, PDF, DXF, AI, CDR, EPS), build instructions, readme dimensions, and YouTube build-video links.

Auto-classification

Sorts each design into Wood, Leather, or Inscription by combining name signals with file structure โ€” kerf folders and several thicknesses are a decisive wood signal; thin-only or art SVG/PNG bundles fall to leather / inscription.

Thickness filter bar

A chip per thickness found in your collection. Select one or several โ€” designs that support any selected width show. 6mm is pre-selected and has build instructions is on by default, both fully adjustable.

Boards needed

Every measurable design shows how many 12ร—12โ€ณ and 12ร—16โ€ณ boards it takes to cut โ€” read from the SVG cut-layout size and judged by the largest individual piece, not the whole layout.

๐Ÿชต My wood inventory

Enter the sheets you own (thickness ร— size ร— qty, saved in your browser). Each design is then tagged โœ… can cut now, ๐ŸŸง need more sheets, โ›” too big, or "needs Xmm" โ€” and an "I can make this" filter narrows the gallery to exactly what your stock covers.

Detail drawer

Per design: an image carousel (arrow keys, click to open full size), a copy-path location block, build-instruction images/PDF, the readme (dimensions), the build-video link, and a file browser grouped by thickness with the selected width starred.

Open / Reveal on disk

Every file and folder has buttons to open it with its default macOS app or reveal it in Finder โ€” so you can send a 6mm SVG straight to your laser software.

Live search & sort

Instant search across names, plus Category and Format filters and sort by name, date (newest/oldest), most files, or thickest. No build step, no spinner โ€” it's all in one page.

Three categories, detected automatically

๐Ÿชต Wood

Boxes, chests, drawers, organizers โ€” multiple material thicknesses and kerf folders are the tell.

๐Ÿ‘œ Leather

Wallets, holsters, sheaths โ€” thin-material-only bundles with leatherworking name signals.

โœ’๏ธ Inscription

Engraving & print art โ€” mandalas, tumbler wraps, line-art SVG / PNG with no cut layout.

Screenshots

Detail drawer for a 9mm box โ€” image carousel, boards-needed breakdown per thickness, location with copy/reveal, and cut files grouped by thickness
Detail drawer โ€” carousel, boards-needed per thickness, copy-path location, and cut files grouped by width.
My wood inventory modal โ€” add sheets by thickness, size, and quantity
๐Ÿชต My wood โ€” log the sheets you own; the app then flags which designs you can cut now.
Full collection with filters cleared โ€” 353 designs across Wood, Leather, and Inscription categories
Full collection โ€” clear the filters to see all 353 packs, auto-sorted into Wood / Leather / Inscription.

Stack

Backend
Node.js โ‰ฅ18 (ESM)
Dependencies
Zero โ€” stdlib only
Frontend
Vanilla JS, no framework
Indexing
Filesystem scan + filename parsing
Board math
SVG cut-layout dimensions
Wood inventory
Browser localStorage
Disk actions
macOS open / reveal in Finder
Runs at
localhost:8787

Run it locally

# point it at your design packs (optional โ€” has a sensible default)
export DESIGNS_DIR=/path/to/your/laser-cut-designs

# start the server โ€” no install step, zero dependencies
npm start          # or: node server.js

# then open
http://localhost:8787
laser cuttingNode.jszero-dependencyvanilla JS local-firstSVGwoodworkingglowforge / xTool