π Kumiko Designer
November 29, 2025 Β· View on GitHub
A client-side web app for designing traditional Japanese Kumiko lattice patterns and generating CNC-ready layouts. Crafted entirely by LLMsβbecause even robots appreciate the art of woodworking. π€πͺ
β¨ What is Kumiko?
Kumiko is a traditional Japanese woodworking technique where intricate geometric patterns are created by interlocking small wooden piecesβno nails, no glue, just pure satisfying geometry.
This app helps you:
- π¨ Design β Draw patterns on an interactive grid with intuitive click-and-drag
- βοΈ Process β Automatically detect unique strips, calculate notches, and track intersections
- π Layout β Group strips and arrange them for efficient CNC cutting
- π¦ Export β Generate SVG files ready for your CNC machine
π€ Wait, LLM Generated?
Yep! This entire codebase was generated through conversations with AI assistants. Every component, every hook, every pixel of that satisfying dark mode UIβall prompted into existence. The humans just provided the vision, the domain knowledge, and the occasional "no, that's still broken" feedback.
Is it perfect? No. Is it functional? Surprisingly yes! Is it a testament to the weird future we're living in? Absolutely.
Yes, even this README was written by an LLM. It's LLMs all the way down. π’
π Getting Started
# Install dependencies
pnpm install
# Start development server (port 3000)
pnpm dev
# Build for production
pnpm build
# Preview production build
pnpm serve
π§ͺ Testing
# Run unit tests
pnpm test
# Run E2E tests with Playwright
pnpm test:e2e
# Run E2E tests with interactive UI
pnpm test:e2e:ui
π οΈ Tech Stack
| What | Why |
|---|---|
| React 19 | Because we like living on the edge |
| TanStack Start | File-based routing that just worksβ’ |
| TypeScript | Types make the robots happy |
| Vite 7 | Fast builds go brrr |
| Tailwind CSS 4 | Utility-first styling for the win |
| Biome | Linting and formatting without the drama |
| Vitest | Unit testing at Vite speed |
| Playwright | E2E tests that actually work |
| d3-zoom/d3-selection | Smooth zoom and pan magic |
π Project Structure
src/
βββ components/ # React components
β βββ kumiko/ # Kumiko-specific components
β βββ ui/ # Generic UI components
βββ context/ # React Context providers
βββ hooks/ # Custom React hooks
βββ lib/
β βββ kumiko/ # Core domain logic
β βββ types.ts # Data structures
β βββ geometry.ts # Math stuff
β βββ kumiko-design-logic.ts # Design computations
β βββ kumiko-svg-export.ts # SVG generation
βββ routes/ # TanStack Router pages
βββ styles.css # Global styles
π― Key Concepts
- Grid & Lines β Your design canvas where the magic happens
- Intersections β Where two lines cross (with configurable over/under)
- Design Strips β Physical wood pieces with calculated notches
- Layout Groups β Organized strips ready for CNC cutting
π§ Development Commands
pnpm dev # Start dev server
pnpm build # Production build
pnpm test # Unit tests
pnpm test:e2e # E2E tests
pnpm check # Biome lint + format check
pnpm format # Auto-format code
pnpm lint # Lint only
π License
The Unlicense β This is free and unencumbered software released into the public domain. Do whatever you want with it. The robots don't mind.
Made with π€ + β + occasional human supervision