Skip to content

Repository files navigation

VoxPaint

A browser-based voxel painting and modeling editor. Build low-poly models by painting voxels on a construction plane, let chamfers autotile into smooth ramps and corners, and export clean, optimized meshes to GLTF/GLB.

Try the Live Demo.

Features

  • Voxel painting in a 2D construction-plane view and a live 3D preview, up to a 64×64×64 grid.
  • Baked chamfer autotiling — a 3-piece system (ramp / convex / concave) resolves smooth edges from neighboring voxels at paint time and freezes the result.
  • Indexed palette — a 28-slot palette plus a library of curated themed palettes.
  • GLTF / GLB export with mesh optimization (coplanar merging) and material maps.
  • Local persistence — automatic autosave to the browser plus JSON project import/export.
  • Dark-mode UI built on Radix primitives.

Quick start

Requires Node 20+ (.nvmrc provided).

npm install
npm run dev       # dev server with HMR
npm run build     # tsc -b && vite build → dist/
npm run preview   # preview the production build
npm run lint      # oxlint
npm run test      # vitest

Tech stack

React 19 · three.js + React Three Fiber · Zustand + Immer · Tailwind CSS v4 · Vite · Vitest · oxlint · TypeScript.

Project layout

  • src/engine/ — pure logic, no React: grid, chamfer, plane math, instancing, persistence, export.
  • src/store/ — Zustand + Immer root store, typed slices (@/ path alias = src/).
  • src/components/ — thin React components that read the store and forward to the engine.

Documentation

Desktop app

Native desktop packaging via Tauri is planned — the app is a pure client-side SPA with no backend, so it runs unchanged inside a Tauri shell.

Contributing

Contributions are welcome — see CONTRIBUTING.md.

License

MIT © Geoff Gaudreault

About

A voxel modeler with a simple 2d drawing interface

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages