πŸŽ‹ 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. πŸ€–πŸͺš

Made with AI React 19 TypeScript Vite 7

✨ 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:

  1. 🎨 Design – Draw patterns on an interactive grid with intuitive click-and-drag
  2. βš™οΈ Process – Automatically detect unique strips, calculate notches, and track intersections
  3. πŸ“ Layout – Group strips and arrange them for efficient CNC cutting
  4. πŸ“¦ 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

WhatWhy
React 19Because we like living on the edge
TanStack StartFile-based routing that just worksβ„’
TypeScriptTypes make the robots happy
Vite 7Fast builds go brrr
Tailwind CSS 4Utility-first styling for the win
BiomeLinting and formatting without the drama
VitestUnit testing at Vite speed
PlaywrightE2E tests that actually work
d3-zoom/d3-selectionSmooth 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