https://github.com/gisketch/kitsune-cube
https://github.com/gisketch/kitsune-cube
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/gisketch/kitsune-cube
- Owner: gisketch
- License: mit
- Created: 2025-12-30T10:01:01.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-01-05T11:47:37.000Z (5 months ago)
- Last Synced: 2026-01-05T11:59:25.969Z (5 months ago)
- Language: TypeScript
- Size: 697 KB
- Stars: 1
- Watchers: 0
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
๐ฆ Kitsune Cube
A gamified smart cube companion for speedcubers who demand more.
Website โข
Discord โข
Support
---
## ๐ฏ Why Kitsune Cube?
As a software developer and speedcubing enthusiast, I've been inspired by amazing apps like Cubeast, Acubemy, and csTimer. Building on their ideas, I wanted to create something that combines the best of analytics, gamification, and replay features into one seamless experience. **Kitsune Cube** is the resultโa feature-rich training platform designed to make every solve count.
**Free to use.** Built by a cuber, for cubers.
---
## โจ Features
### ๐ฎ Gamification System
- **XP & Leveling** โ Earn experience points for every solve, with faster times giving bonus XP
- **50+ Unique Achievements** โ Unlock tiered achievements (Bronze โ Silver โ Gold โ Diamond โ Obsidian) across multiple categories:
- **Grind** โ Solve milestones (100, 1K, 10K, 100K solves)
- **Smart Cube** โ TPS records, efficient crosses, smooth F2L flow
- **CFOP Specific** โ OLL/PLL skips, God's Number solves, full-step mastery
- **Anomaly** โ Rare achievements for unusual solve patterns
- **Streak** โ Daily solve streak tracking
### ๐ Advanced Analytics
- **CFOP Phase Breakdown** โ Real-time analysis of Cross, F2L (each pair), OLL, and PLL phases
- **Move-by-Move Timing** โ See exactly where you're fast and where you can improve
- **TPS (Turns Per Second)** โ Track your execution speed
- **Phase Goals** โ Set personal targets for each CFOP phase
### ๐ฌ Full Replay System
- **Live Solve Playback** โ Watch any solve with move-by-move animation
- **Gyroscope Recording** โ Smart cubes with gyro capture real hand movements
- **Speed Controls** โ Adjust playback speed, pause, and step through moves
- **Share Replays** โ Share your best solves with a link
### ๐ Leaderboards
- **Global Rankings** โ Compete on average time, level, achievements, and single solve records
- **Public Solve Library** โ Browse and replay top solves from the community
### ๐ง Smart Cube Integration
- **Bluetooth Connection** โ Connect via Web Bluetooth API
- **Real-time Tracking** โ Every move synced instantly
- **Battery Monitoring** โ Keep track of your cube's battery level
- **Calibration System** โ Easy cube state synchronization
### ๐จ Customization
- **Multiple Themes** โ Choose from Kitsune, Dark, Light, Serika, and more
- **Custom Cube Colors** โ Match your physical cube's color scheme
- **Adjustable Animation Speed** โ Fine-tune the 3D cube visualization
- **Inspection Timer** โ WCA-compliant 15-second inspection option
### ๐ฑ Additional Features
- **WCA-Compliant Scrambles** โ Powered by cubing.js for official-quality scrambles
- **Cloud Sync** โ Create an account or sign in to sync solves across devices
- **Offline Support** โ Works without internet, syncs when back online
- **Manual Timer Mode** โ Use without a smart cube with keyboard/touch controls
- **Solve History** โ Track all your solves with filtering and statistics
- **Simulator Mode** โ Input scrambles and solutions to analyze any solve
- **Keyboard Shortcuts** โ Full command palette for power users
---
## ๐ง Supported Smart Cubes
### โ
GAN (Fully Supported)
| Cube | Gyro | Status |
|------|------|--------|
| GAN 12 ui FreePlay | โ
Yes | โ
Confirmed |
| GAN 356i 3 | โ
Yes | โ
Confirmed |
| GAN 356i Carry E | โ No | โ
Confirmed |
| GAN 356i Carry 2 | โ No | โ
Confirmed (no gyro hardware) |
| GAN 14 ui FreePlay | โ | ๐งช Needs testing |
| GAN 12 ui | โ
Yes | ๐งช Needs testing |
| GAN 12 ui Maglev | โ
Yes | ๐งช Needs testing |
| GAN 356i Carry S | โ
Yes | ๐งช Needs testing |
| GAN 356i Carry | โ
Yes | ๐งช Needs testing |
| GAN Mini ui FreePlay | โ
Yes | ๐งช Needs testing |
| Monster Go 3Ai | โ
Yes | ๐งช Needs testing |
### ๐งช MoYu (Experimental)
| Cube | Gyro | Status |
|------|------|--------|
| WeiLong V10 AI | โ
Yes | ๐งช Needs testing |
| MoYu AI 2023 | โ No | ๐งช Needs testing |
### ๐งช QiYi (Experimental)
| Cube | Gyro | Status |
|------|------|--------|
| QiYi QY-SC-S | โ No | โ
Confirmed |
| QiYi AI Smart Cube | โ No | ๐งช Needs testing |
### ๐งช GiiKER (Experimental)
| Cube | Gyro | Status |
|------|------|--------|
| GiiKER i3S | โ No | ๐งช Needs testing |
| GiiKER i2 | โ No | ๐งช Needs testing |
| Xiaomi Giiker | โ No | ๐งช Needs testing |
> **Help us test!** If you own a smart cube marked as "Needs testing", please report your experience on our [Discord](https://discord.gg/XPQr4wpQVg).
---
## ๐ง Supported Solving Methods
| Method | Analysis Support |
|--------|------------------|
| CFOP | โ
Full phase breakdown |
| Roux | ๐ Basic tracking |
| ZBLL | ๐ Basic tracking |
| ZZ | ๐ Planned |
| Petrus | ๐ Planned |
---
## ๐บ๏ธ Roadmap
- [ ] **More Smart Cubes** โ MoYu, QiYi, Giiker support
- [ ] **Smarter Analyzer** โ OLL/PLL case recognition and algorithm suggestions
- [ ] **Rotation Detection** โ Accurate cube rotation tracking
- [ ] **Slice Move Detection** โ M, E, S move recognition
- [ ] **More Methods** โ Full Roux, ZZ, and Petrus analysis
- [ ] **csTimer Import** โ Sync your existing solve history
- [ ] **Algorithm Trainer** โ Practice OLL, PLL, and more
- [ ] **Battle Mode** โ Real-time racing against friends
- [ ] **Mobile App** โ Native iOS/Android apps
---
## ๐ ๏ธ Tech Stack
- **Frontend** โ React 19, TypeScript, Vite
- **3D Graphics** โ Three.js, React Three Fiber
- **Styling** โ Tailwind CSS, Framer Motion
- **Cube Logic** โ cubing.js (scrambles), gan-web-bluetooth (chribot fork)
- **Backend** โ Firebase (Auth, Firestore)
- **Charts** โ Recharts
- **Hosting** โ Netlify
---
## ๐ Getting Started
### Prerequisites
- Node.js 18+
- A Chromium-based browser (Chrome, Edge, Brave) for Web Bluetooth support
- A GAN smart cube (optional, manual timer available)
### Installation
```bash
# Clone the repository
git clone https://github.com/gisketch/kitsune-cube.git
cd kitsune-cube
# Install dependencies
npm install
# Start development server
npm run dev
```
### Environment Variables
Create a `.env` file in the root directory:
```env
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id
```
---
## ๐ฆ Versioning & Releases
We use **Semantic Versioning** with `0.MINOR.PATCH` format during beta:
| Type | When to use | Example |
|------|-------------|---------|
| `minor` | New features | `0.1.0` โ `0.2.0` |
| `patch` | Bug fixes | `0.1.0` โ `0.1.1` |
### Release Workflow
```bash
# 1. Update src/lib/changelog.ts with the NEW version first
# 2. Run the release command
npm run release:minor # or release:patch
# 3. Script will:
# โ Validate changelog matches new version
# โ Bump package.json version
# โ Generate version.json
# โ Commit, tag, and push
# โ Optionally deploy to Netlify
```
### Available Scripts
| Command | Description |
|---------|-------------|
| `npm run dev` | Start development server |
| `npm run build` | Build for production |
| `npm run release:minor` | Release with new features |
| `npm run release:patch` | Release with bug fixes |
| `npm run deploy` | Build and deploy to Netlify |
| `npm run test` | Run tests in watch mode |
| `npm run lint` | Lint the codebase |
| `npm run format` | Format with Prettier |
---
## ๐ค Contributing
Contributions are welcome! Here's how you can help:
### Ways to Contribute
1. **Report Bugs** โ Open an issue with detailed reproduction steps
2. **Suggest Features** โ Share ideas in Discord or GitHub Issues
3. **Submit PRs** โ Bug fixes, features, or documentation improvements
4. **Test Smart Cubes** โ Help verify compatibility with non-GAN cubes
5. **Translations** โ Help localize the app
### Development Guidelines
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Write clean, self-documenting code (minimal comments)
4. Test your changes thoroughly
5. Commit with clear messages (`git commit -m 'Add amazing feature'`)
6. Push to your branch (`git push origin feature/amazing-feature`)
7. Open a Pull Request
### Code Style
- Follow existing patterns in the codebase
- Use TypeScript strictly
- Prefer functional components with hooks
- Use Tailwind for styling
- Avoid unnecessary comments โ write self-documenting code
---
## ๐ฌ Community
- **Discord** โ [Join our server](https://discord.gg/XPQr4wpQVg) for support, suggestions, and community
- **GitHub Issues** โ Report bugs or request features
- **Ko-fi** โ [Support development](https://ko-fi.com/gisketch)
---
## ๐ License
This project is licensed under the MIT License โ see the [LICENSE](LICENSE) file for details.
---
## ๐ Acknowledgments
- [cubing.js](https://github.com/cubing/cubing.js) โ WCA-compliant scramble generation
- [gan-web-bluetooth](https://github.com/chribot/gan-web-bluetooth) โ GAN + MoYu cube connectivity (chribot fork)
- [MonkeyType](https://monkeytype.com) โ UI/UX inspiration
- The speedcubing community for endless motivation
---
Made with ๐งก by @gisketch