High-Performance Spine Viewer
A tool for previewing, managing, and batch-importing Spine assets.
Built for efficiency with Go, Wails, and Svelte.
Features • Roadmap • Tech Stack • Download • Development
- Layer Eye-Dropper: Select any part of an animation directly in the viewport to instantly identify its corresponding layer name.
- Smart Detection: Detects tampered/fake headers or junk data in
.skeland removes them. Automatically identifies if a.skelfile is actually formatted as JSON. - Layer Filtering: Find exactly what you need with multiple search terms using the
||(OR) operator (e.g.,sky || background). - Bulk Layer Visibility: Quickly hide or show all filtered results with a single click.
Screen.Recording.2026-02-22.at.11.49.13.webm
Quickly find what's blocking your view with the Layer Eye-Dropper.
- Source Sharing: Import and export remote storage configurations via shareable codes for quick imports.
- Metadata Caching: When a repository is loaded, the app caches all asset paths locally. This index istypically ** 1MB**, for instant browsing without re-scanning the repo.
- Hybrid Fetching (Rate-Limit Friendly):
- GitHub API: Used only for initial directory indexing.
- jsDelivr CDN: All actual asset downloads (textures, skel, atlas) are routed through jsDelivr. This bypasses GitHub's API rate limits.
- On-Demand Refresh: Data is persistent. Use the manual refresh button to sync with the latest repository changes.
- Persistent Local Storage: Fetched assets are cached locally for performance, and downloaded assets remain in local storage permanently until manually deleted.
To import a source, copy the code below and paste it into the "Import Code" field in the App:
M2D:eyJuIjoiQnJvd24gRHVzdCAyIiwicCI6Im8wTm9tYXIwby9Ccm93bi1EdXN0LTItQXNzZXQvbWFzdGVyIiwibSI6MCwiZiI6W10sInUiOiJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbzBOb21hcjBvL0Jyb3duLUR1c3QtMi1Bc3NldC9tYXN0ZXIvQ2hhckluZm8uanNvbiJ9
- Version Expansion: Add support for Spine 3.7 and the latest 4.2 runtimes.
- Image Correction: Implement auto-cropping for texture images to match
.atlasdimensions, fixing weird meshes and errors. - Live2D Integration: Implement a Live2D Cubism viewer for .moc3 assets
- AssetStudioMod CLI Bridge: Offload heavy asset extraction to a dedicated CLI bridge. This allows for safe extraction from massive game bundles without overloading the application's memory.
- Support for Google Drive, OneDrive, and other cloud storages.
| Layer | Technology |
|---|---|
| Framework | Wails v2 |
| Backend | Go |
| Frontend | Svelte & TypeScript |
| Animation Libs | Spine Runtimes (Esoteric Software) |
| Platform | Status |
|---|---|
| macOS | Download Latest Release |
| Windows | Download Latest Release |
Prerequisites: Go 1.21+, Node.js, Wails CLI.
# Clone the repo
git clone https://github.com/o0Nomar0o/Motiv2D.git
cd Motiv2d
# Start development mode
wails devMotiv2D/
├── frontend/ # Svelte + TypeScript
│ ├── src/
│ │ ├── components/ # Components
│ │ ├── lib/ # Spine Runtime Libraries
│ │ └── stores/ # App state (appStore.ts)
│ └── wailsjs/ # Auto-generated Go-to-TS bindings
├── macos/ # macOS specifics
├── pkg/ # Core Go Backend
│ ├── spine-services/ # Spine Logic
│ │ ├── detector/ # Version & File type detection
│ │ └── remote/ # Crawler & Cache Handlers
│ ├── monitors/ # System & Performance monitoring
│ ├── services/ # App-level backend services
│ ├── theme/ # Theme
│ └── update/ # Update logic
└── main.go # App entry point & Wails configuration
MIT License — see LICENSE for details.
Built with ❤️ for the Spine Community.




