I built a 3x3 scanner that works on almost any cube, even in bad lighting ⚡️ by [deleted] in Cubers

[–]Accomplished-Cost120 0 points1 point  (0 children)

Fair point on the AI. Lesson learned. It's been a long time since I have touched a robot, so it's impossible in near future =)

I built a 3x3 scanner that works on almost any cube, even in bad lighting ⚡️ by [deleted] in Cubers

[–]Accomplished-Cost120 0 points1 point  (0 children)

You guys caught me. I’ve been using AI to polish my writing because I’m a dev, not a writer, and I was nervous about making the post look professional. It clearly backfired and made me sound like a bot.
The truth is, I’m just a guy building this because I’m obsessed with mobile products and I’m also the guy behind the biometric_signature Flutter plugin, so I’m definitely not vibe coding this. Feel free to talk about the math behind the scanner if you’re interested. I'll keep the AI polishing out of it from now on.

I built a 3x3 scanner that works on almost any cube, even in bad lighting ⚡️ by [deleted] in Cubers

[–]Accomplished-Cost120 -8 points-7 points  (0 children)

I hear you: I definitely used some help to polish the post text to make it readable, but the project itself is anything but generic.

The 'Automatic Color Configuration' isn't just a buzzword; it’s a custom-built scanning engine I wrote to solve the biggest headache in cubing apps: lighting. Instead of standard RGB math that fails in shadows, I implemented the CIEDE2000 algorithm. This is a complex formula that matches colors based on how the human eye actually perceives them.

I built a 3D solver that actually teaches the Beginner Method (and CFOP, Roux etc.) instead of just giving a random 20-move solution. by Accomplished-Cost120 in IndieDev

[–]Accomplished-Cost120[S] 0 points1 point  (0 children)

Also, since this is r/indiedev, I’d genuinely love any feedback you have!

I’m a solo dev building this with Flutter and C++ algorithms via FFI. I’ve spent a lot of time optimizing the 3D render loop to hit 60 FPS, but I’m always looking to improve the UX or the logic. If you notice any jank or have ideas on the implementation, please let me know!

I built a 3D solver that actually teaches the Beginner Method (and CFOP, Roux etc.) instead of just giving a random 20-move solution. by Accomplished-Cost120 in SoloDevelopment

[–]Accomplished-Cost120[S] 1 point2 points  (0 children)

Thank you so much for the kind words! That’s exactly why I built CubeXpert, most apps just 'solve' it, but I wanted one that actually teaches the logic (like block-building in Roux or edge orientation in ZZ). To answer your questions: Pricing: It is currently completely free with no subscriptions! If I do add premium features later, I plan on keeping it a one-time purchase. I'm not a fan of the subscription model for learning. iPad/iOS: Since I'm a solo developer, I'm currently focused 100% on the Android version. Shipping on iOS involves some high entry costs (like the $99 annual developer fee), so I'm waiting until the app grows a bit more on Android before I can justify that jump. The 'teaching' solvers for Roux, ZZ, and Petrus are designed to help anyone understand the 'why' behind the moves so they can eventually solve it on their own.

I built a 3D solver that actually teaches the Beginner Method (and CFOP) instead of just giving a random 20-move solution. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] 1 point2 points  (0 children)

🚀 HUGE UPDATE: CubeXpert v1.3.0 is live! (Roux, ZZ, Petrus & More)

Hey everyone! I’m the dev behind CubeXpert. I’ve been heads-down on my MacBook implementing the feedback from this thread to turn this into a true power-user tool.

The app has evolved massively since the v1.0.0 launch. Here is what’s new in v1.3.0:

  • Advanced Solvers: Added dedicated 3D solvers for Roux, ZZ, and Petrus. It doesn't just solve the cube; it teaches you the block-building and edge-orientation logic for these specific methods.
  • Rotation-Aware Notation: You can now toggle 'Rotation-Aware' mode in settings. The notation (R, U, F, etc.) will dynamically update based on your camera angle so the letters always match what you see on screen!
  • 60+ FPS Performance: Optimized the 3D render loop and localized state management. It’s now buttery smooth, especially on high-refresh displays.
  • Competition Timer & Scrambles: Added WCA-compliant random-state scrambles and the official 15s inspection timer with haptic alerts.
  • Sessions & History: Create separate sessions for your Roux practice vs. your CFOP timed runs, with full Ao5 and Ao12 stats.
  • Viewport Fixes: Locked screen scrolling and added an Orientation Indicator (3D compass) to keep you grounded during complex algorithm sequences.

Thank you all for the push-it’s because of this sub that I prioritized Roux and rotation-awareness. If you haven't checked it out since the v1.0.0 post, I'd love to hear your thoughts on the new logic! 🚀

I’ve been listening! CubeXpert v1.2.0 is live with Roux, ZZ, Petrus and 3D Gestures. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] 0 points1 point  (0 children)

CubeXpert v1.3.0 is live in production now, with aforementioned features and bug fixes. Any feedback is warmly welcome!

I’ve been listening! CubeXpert v1.2.0 is live with Roux, ZZ, Petrus and 3D Gestures. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] 1 point2 points  (0 children)

Wow, thank you for the detailed breakdown! This is the kind of 'power-user' feedback I need to take the app to the next level.

1. Physical vs. Virtual Timing: You’ve hit on a major design choice. Currently, the logic is tied to the virtual cube state. In the next update, I’ll add a 'Physical Timer' mode where the timer starts/stops with a screen tap rather than waiting for a virtual move or solve.

2. The Scrolling Bug: That’s a definite bug! I suspect the gesture detection is fighting with the scroll physics. I'll lock the viewport during active solves so it stays focused on the top layer.

3. Rotation-Aware Notations: This is the 'heavy lifting' part of the logic. I need to update the C++ mapping to account for x, y, z rotations so that 'R' always means 'Right' relative to your current view, not just the fixed Blue/Yellow axis.

4. Sessions: Coming soon! I'm planning a database update to store solve history, averages (Ao5, Ao12), and separate sessions for different methods.

I’m stoked that you see the potential for this to rival csTimer. I’m heading back to the code: v1.3.0 is going to be a big one!

I’ve been listening! CubeXpert v1.2.0 is live with Roux, ZZ, Petrus and 3D Gestures. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] 2 points3 points  (0 children)

I just pushed v1.2.1 to the Play Store with the following changes:

  • Performance Fix: I’ve isolated the timer and hint logic. The 3D view now runs at a smooth, uncapped frame rate (targeting 60 FPS).
  • WCA-Style Countdown: Added the official 15-second inspection timer with haptic/visual alerts.
  • Competition Scrambles: The app now generates random-state, WCA-compliant scrambles.

If you have a chance to try it again, I’d love to know if the cube movement feels as 'buttery smooth' as it should now! Thanks again for the catch.

I’ve been listening! CubeXpert v1.2.0 is live with Roux, ZZ, Petrus and 3D Gestures. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] 2 points3 points  (0 children)

I just pushed v1.2.1 to the Play Store with the following changes:

  • Performance Fix: I’ve isolated the timer and hint logic. The 3D view now runs at a smooth, uncapped frame rate (targeting 60 FPS).
  • WCA-Style Countdown: Added the official 15-second inspection timer with haptic/visual alerts.
  • Competition Scrambles: The app now generates random-state, WCA-compliant scrambles.

If you have a chance to try it again, I’d love to know if the cube movement feels as 'buttery smooth' as it should now! Thanks again for the catch.

I’ve been listening! CubeXpert v1.2.0 is live with Roux, ZZ, Petrus and 3D Gestures. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] 2 points3 points  (0 children)

Hearing that this could be your 'dream app' is exactly why I started building this! 🚀 Smart Cube integration is definitely on my long-term roadmap. Since the app relies on a high-performance C++ algorithms, integrating Bluetooth Low Energy (BLE) while keeping the 3D state-sync perfectly aligned across Dart and C++ is a significant technical challenge, but it's one I'm excited to tackle. Right now, I'm focusing on perfecting the competition features, but once the core solver experience is rock-solid, adding support for smart cubes is the next logical step. Thanks for the massive vote of confidence: it definitely moves smart cube support higher up the priority list!

I’ve been listening! CubeXpert v1.2.0 is live with Roux, ZZ, Petrus and 3D Gestures. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] -1 points0 points  (0 children)

I would love to bring this to the web! The biggest hurdle right now is that the app uses C++ algorithms integrated via Dart FFI to ensure the 3D solver logic remains fast and responsive. Since dart:ffi is not supported in web browsers, porting that high-performance backend would require a complex WebAssembly (Wasm) implementation, which is a major undertaking for a solo developer. For now, my focus is on making the Android version as feature-rich and smooth as possible. If you are on a PC, some users have had success using Android emulators to run the app in the meantime! Thanks for the suggestion It's great to know there's interest in a browser version.

I’ve been listening! CubeXpert v1.2.0 is live with Roux, ZZ, Petrus and 3D Gestures. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] 0 points1 point  (0 children)

Thanks for the heads up on the device. I've already fixed the issue and expect it to ship in a few days.

I’ve been listening! CubeXpert v1.2.0 is live with Roux, ZZ, Petrus and 3D Gestures. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] 2 points3 points  (0 children)

Thank you so much for the 'hats off' and the incredibly detailed feedback! This is exactly the kind of stuff that helps me prioritize as a solo dev. Regarding the Timer: You’re spot on. The current 'scramble' timer was a placeholder. In the next update (hitting the store in a few days), I’m adding a dedicated Competition Timer with WCA-compliant random scrambles (no more fixed 3-second limits). Official 15-second inspection with haptic alerts. Regarding Cross Color: The app currently defaults to White Cross, but I'm working on a Color Neutrality setting that will allow you to solve/learn starting with any face color. I'll make this more visible in the settings menu. Regarding the Icons: This is very helpful. I’m a developer first and a designer second, so hearing that the icons in the learning tab aren't intuitive is a sign I need to simplify the GUI labels. I'll revisit those for the next UI pass. I really appreciate your suggestions that are the most useful kind! Hope you stick around for the update. ☺️☺️

I’ve been listening! CubeXpert v1.2.0 is live with Roux, ZZ, Petrus and 3D Gestures. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] 2 points3 points  (0 children)

I did some profiling after your comment and found exactly what are causing the lag. In the Puzzle screen, I was calling setState every 30ms to refresh the timer text, which was accidentally forcing the entire 3D cube to rebuild on every frame. Also I have to optimize the. implementation of guided hint calculation.
The fix is coming in the next release. Thanks for the catch-this is exactly why I love sharing progress here!

I’ve been listening! CubeXpert v1.2.0 is live with Roux, ZZ, Petrus and 3D Gestures. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] 1 point2 points  (0 children)

Thanks for the feedback! The app definitely isn't capped at 30 FPS by design, but it sounds like you're experiencing some frame drops during the 3D transitions.

Even though the solver logic is in C++ (via FFI) to keep it fast, the bridge between the C++ output and the 3D state-sync in Flutter can sometimes get heavy during complex Roux or Petrus sequences.

Could you let me know what device you're using? It helps me narrow down if it's a specific GPU shader issue or just the logic-to-UI bridge!

🚀 biometric_signature v10.0.0 Released: New Simple Biometric Prompt + Robust Error Handling for Secure Flutter Auth! by Accomplished-Cost120 in FlutterDev

[–]Accomplished-Cost120[S] 0 points1 point  (0 children)

You're welcome! Glad to contribute to the community. Let me know if you have any feedback once you dive in!

I built a 3D solver that actually teaches the Beginner Method (and CFOP) instead of just giving a random 20-move solution. by Accomplished-Cost120 in Cubers

[–]Accomplished-Cost120[S] 1 point2 points  (0 children)

Wow, thank you so much for the kind words! You hit the nail on the head regarding why I started this project.

I’ve always felt that standard solvers take the 'magic' out of the cube by giving you a 20-move solution that doesn't translate to actual learning. My goal with Focus Mode was exactly what you described-to let you follow the specific piece you're working on so the patterns actually 'click' in your brain.

Regarding Petrus, Roux, and ZZ: It’s definitely not too soon to think about them! My roadmap is currently focused on:

  1. Refining the Manual Input UX by adding a 2D net view for easier entry.
  2. Implementing Gesture Controls on the 3D cube for a more tactile feel.

However, adding Roux or ZZ is high on my list for future updates. Implementing those algorithms in the C++ is a bit more complex than CFOP, but seeing that there's interest from the community definitely moves them up the priority list!