A desktop node-based VFX builder for creating ultra-small, perfectly looping particle effects for Spine animations in slot games.
- 🎨 Node-Based Editor: Intuitive visual programming interface using Rete.js
- 🔄 Perfect Loops: Seamless animation loops with customizable duration (0.25 – 10s)
- 📦 Size Optimized: Exports within strict size limits (≤2MB PNG, ≤2 sprite sheets, ≤5KB JSON)
- 🦴 Spine Compatible: Full support for bones, slots, attachments, and transforms
- 🎮 Slot-Game Ready: Optimized for slot game requirements and performance
- Desktop Shell: Electron + Vite
- Node Graph: Rete.js v2
- Preview: PixiJS v8 + pixi-particles + @pixi-spine
- Asset Packing: maxrects-pali
- Node.js ≥20
- pnpm (recommended) or npm
# Clone the repository
git clone https://github.com/yourusername/sparcle.git
cd sparcle
# Install dependencies
pnpm install
# Start in development mode
pnpm dev
# Run Electron app in dev mode
pnpm electron:dev
# Run tests
pnpm test
# Build for production
pnpm build
# Package Electron app
pnpm package
/sparcle
├─ /src
│ ├─ main/ # Electron main process
│ ├─ renderer/
│ │ ├─ graph/ # Rete nodes & controls
│ │ └─ preview/ # Pixi canvas + runtime
│ ├─ core/
│ │ ├─ ir.ts # IR types & helpers
│ │ ├─ compiler.ts # IR → Spine JSON
│ │ ├─ loop.ts # looping utils
│ │ └─ optimiser.ts # key decimation
│ └─ cli/
└─ /examples
This project is licensed under the MIT License - see the LICENSE file for details.
- Rete.js - Node graph system
- PixiJS - 2D rendering engine
- pixi-spine - Spine runtime
- maxrects-pali - Texture packing