Sprite multitool
- TypeScript 53.1%
- Svelte 24.3%
- Rust 22.2%
- JavaScript 0.2%
Design for extracting batch processing into shared library crate and creating standalone CLI binary separate from Tauri app. Key decisions: - Cargo workspace with marcoline-core, marcoline-cli, src-tauri - Progress callback pattern instead of Tauri AppHandle - CLI uses clap instead of tauri-plugin-cli - Tauri app reverts to simple window configuration - 6 implementation phases Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| docs | ||
| plans | ||
| src | ||
| src-tauri | ||
| static | ||
| tests | ||
| .emdash.json | ||
| .gitignore | ||
| .npmrc | ||
| build_output.log | ||
| CLAUDE.md | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
| svelte.config.js | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
| vitest.integration.config.ts | ||
marcoline
A sprite sheet editor for game developers. Load sprite sheets, define tile grids or freeform regions, and export individual sprites.
Features
- Grid Mode: Configure uniform tile grids with customizable margins, spacing, and tile dimensions
- Freeform Mode: Draw arbitrary rectangular regions for non-uniform sprite sheets
- Region Naming: Assign custom names to tiles or regions for organized exports
- Multiple Numbering Schemes: Row-major, column-major, or coordinate-based tile addressing
- Live Preview: See grid overlays and tile labels update in real-time
Tech Stack
- Frontend: SvelteKit 2, Svelte 5, TypeScript
- Backend: Tauri v2, Rust
- Canvas: Konva (via svelte-konva)
- Styling: Tailwind v4, DaisyUI v5
Running
Prerequisites
- Node.js 18+
- Rust toolchain (for Tauri)
- Platform-specific Tauri dependencies (see Tauri prerequisites)
Development
# Install dependencies
npm install
# Run the desktop app
cargo tauri dev
Testing
# Unit tests
npm test
# Integration tests (requires app running with automation feature)
cargo tauri dev --features automation
npm run test:integration
Planned Features
| Feature | Description |
|---|---|
| Interactive Guides | Drag guides on canvas to adjust margins and spacing visually |
| Split Export | Export tiles/regions as separate image files with configurable naming |
| JSON Manifest | Save/load project files for continuing work later |
| Tiled TSX Export | Export in Tiled Map Editor format for game engine integration |
| Unsplit/Merge | Combine individual images into a sprite sheet |
| Templates | Save reusable configurations for processing multiple sprite sheets |
| Batch Mode | CLI for automated processing and CI/CD integration |
License
MIT