|
| 1 | +--- |
| 2 | +title: "GSoC '25 Week 11 Update by Bishoy Wadea" |
| 3 | +excerpt: "Rubik's Cube - 3D Puzzle Challenge" |
| 4 | +category: "DEVELOPER NEWS" |
| 5 | +date: "2025-08-28" |
| 6 | +slug: "gsoc-25-BishoyWadea-week11" |
| 7 | +author: "@/constants/MarkdownFiles/authors/bishoy-wadea.md" |
| 8 | +tags: "gsoc25,sugarlabs,week11,BishoyWadea" |
| 9 | +image: "assets/Images/GSOC.webp" |
| 10 | +--- |
| 11 | + |
| 12 | +# Week 11 Progress Report by Bishoy Wadea |
| 13 | + |
| 14 | +**Project:** [Rubik's Cube](https://github.com/Bishoywadea/Rubik-s-Cube) |
| 15 | +**Mentors:** [Ibiam Chihurumnaya](https://github.com/chimosky) |
| 16 | +**Assisting Mentor:** [Walter Bender](https://github.com/walterbender/) |
| 17 | +**Reporting Period:** 2025-08-21 – 2025-08-28 |
| 18 | + |
| 19 | +--- |
| 20 | + |
| 21 | +## Goals for This Week |
| 22 | + |
| 23 | +- **Complete Magic Number Grid features** |
| 24 | +- **Develop new Sugar activity: Rubik's Cube with 3D graphics** |
| 25 | +- **Implement intuitive controls for cube manipulation** |
| 26 | + |
| 27 | +--- |
| 28 | + |
| 29 | +## About Rubik's Cube |
| 30 | + |
| 31 | +Rubik's Cube is a 3D puzzle game that brings the classic cube-solving challenge to Sugar. This activity helps develop spatial reasoning skills as players rotate faces and manipulate the cube to get each side showing only one color. |
| 32 | + |
| 33 | +--- |
| 34 | + |
| 35 | +## Achievements |
| 36 | + |
| 37 | +### Rubik's Cube Development |
| 38 | + |
| 39 | +- **Initial Activity Setup** |
| 40 | + Created Sugar activity framework with proper manifest and icon |
| 41 | + [Commit](https://github.com/Bishoywadea/Rubik-s-Cube/commit/20f3f7d84889d4210a9319a627c13bac7d123e22) |
| 42 | + |
| 43 | +- **Core Game Logic** |
| 44 | + Implemented Rubik's Cube mechanics with accurate rotation algorithms |
| 45 | + [Commit](https://github.com/Bishoywadea/Rubik-s-Cube/commit/ca45ea368009342317be967fd2f41ab012619ca1) |
| 46 | + |
| 47 | +- **3D Graphics Integration** |
| 48 | + Added OpenGL setup for 3D rendering within Sugar environment |
| 49 | + [Commit](https://github.com/Bishoywadea/Rubik-s-Cube/commit/b86e788a9c732163308f9c2e11bb6ac8afd09187) |
| 50 | + |
| 51 | + |
| 52 | +*3D Rubik's Cube with interactive controls* |
| 53 | + |
| 54 | + |
| 55 | +*Cube mid-solve showing different colored faces* |
| 56 | + |
| 57 | +--- |
| 58 | + |
| 59 | +## Challenges & Solutions |
| 60 | + |
| 61 | +- **Challenge:** Integrating 3D graphics (OpenGL) within Sugar's GTK+ framework while maintaining compatibility across different hardware. |
| 62 | + |
| 63 | +- **Solution:** |
| 64 | + - Used PyOpenGL with careful context management |
| 65 | + - Implemented fallback rendering for systems with limited GPU support |
| 66 | + - Created custom event handling to bridge GTK and OpenGL interactions |
| 67 | + |
| 68 | +- **Challenge:** Making 3D cube manipulation intuitive for young users unfamiliar with Rubik's Cube notation. |
| 69 | + |
| 70 | +- **Solution:** |
| 71 | + - Designed visual toolbar with clear icons for each move |
| 72 | + - Implemented mouse drag rotation for natural cube exploration |
| 73 | + - Added keyboard shortcuts matching standard cube notation |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +## Key Learnings |
| 78 | + |
| 79 | +- Gained deep understanding of 3D graphics programming within constrained environments |
| 80 | +- Learned to implement complex rotation algorithms and quaternion mathematics |
| 81 | +- Developed skills in creating hybrid 2D/3D interfaces that remain user-friendly |
| 82 | + |
| 83 | +--- |
| 84 | + |
| 85 | +## Next Week's Roadmap |
| 86 | + |
| 87 | +- Begin development of new Sugar activity: **Sequence Wizard** |
| 88 | + - Design pattern recognition and sequence completion challenges |
| 89 | + - Implement various sequence types (arithmetic, geometric, visual patterns) |
| 90 | + - Create progressive difficulty system for different age groups |
0 commit comments