An open API service indexing awesome lists of open source software.

https://github.com/gisketch/kitsune-cube


https://github.com/gisketch/kitsune-cube

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

          


Kitsune Cube Logo

๐ŸฆŠ 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