Finally I read through peoples replies and feedback and I already knew the problem was gonna be with the gravity and flap strength, so after fixing that and also making the bird look a little better, I am finally done with this. Hopefully!
ROBOTIC ARM: UPDATE Sorry for not posting for a long time
What have I done?
I have started to print some of the parts in PETG and PLA, I have mainly printed the base where it holds the motor and the whole arm, I’ve printed the shoulder and the arm itself. I still have to put it together. Also, I have finished the electronics, and it works I even tested it. No magic smoke!
What am I doing
What am I yet to do?
I want to add inverse kinematics, though this is a simple and fun project I really want to add this since this would be an amazing thing to add to my project. I have started to learn about rotation and transformation matrices which would greatly help me, I would like to also create an online web visualizer in where it has a 3D plane where the arm is.
ROBOTIC ARM
What have I done?
I have already 3D modeled most of the parts including the base, and multiple iterations of the arm and elbow. I have bought all the components including the NEMA 23 motor and the NEMA 17 motors.
What am I doing?
What am I yet to do?
I am yet to start the coding; this will be done in C++ coded on VScode then copy paste into Arduino IDE to upload the code to the ESP32. Soon I will start to 3D print everything, mostly in PLA but things that carry or bear weight will probably be done in PETG so it will be stronger.
We have officially reached the finish line for Iteration 2 of Flappy Bird! The final phase of this sprint was all about pushing the visual aesthetic to a premium arcade standard and overcoming the hurdle of accessibility. Instead of relying on flat, basic shapes, I completely overhauled the rendering logic to introduce true geometric depth. By utilizing advanced vector layering, drop shadows, and gloss highlights directly on the canvas, the bird now sports a vibrant 3D spherical look. The obstacles received a massive upgrade as well; the pipes are now modeled with authentic wide rim caps and custom gradient shading to mimic the nostalgic look of classic arcade games. Players can also fully personalize their experience right from the start menu using interactive on-screen buttons to swap between multiple sky themes like pink, light blue, and midnight black.The biggest breakthrough of this update, however, was figuring out how to bring this desktop application into the modern web ecosystem. Moving away from local Python execution, the project was successfully migrated onto a web framework using a Python Flask backend paired with an HTML5 Canvas frontend. This transition allows the game loop to execute flawlessly at a locked 60 frames per second right inside any web browser, eliminating lag and making the game instantly playable via a single cloud link. With precision collision boundaries fully locked down, dynamic acceleration curves scaling the difficulty every three points, and the live link officially deployed on Replit, the game is polished, optimized, and ready for the world to play. Time to ship it!
The primary milestone of this development cycle was transforming a loose, functional prototype into a structured, scalable application using Object-Oriented Programming (OOP). By encapsulating all game states—such as scores, velocities, and tracking arrays—inside a master FlappyBirdGame class, the architecture became self-contained, eliminating the risk of global variable pollution. A critical part of this refactoring involved dismantling the splintered, independent. after () loops that separately ran gravity, pipe movement, and scoring. These were consolidated into a single unified game_loop running at approximately 60 frames per second (~16ms). This master clock synchronizes all physics updates and collision checks simultaneously, removing the erratic micro-stutters from the previous version and delivering a noticeably smoother gameplay experience. In addition to structural overhaul, several game-breaking bugs and interface oversights were resolved. The disruptive terminal-based color input was entirely removed, replaced by an integrated canvas menu featuring clickable native tk.Frame buttons for interactive background selection. To fix an instant-death bug where the bird would plunge into the ground the millisecond the game started, an initial upward velocity pulse (FLAP_STRENGTH) was injected straight into the start sequence, giving the player immediate buoyancy and reaction time. Critical syntax errors were also squashed, including a casing typo that turned tk.Frame into an invalid lowercase property, and a keybind mismatch that wrongly mapped the “P” key to a non-existent method instead of the intended toggle_pause function.Finally, core mechanics were tuned to match genuine arcade standards. The superficial timer-based score keeper was abandoned; instead, pipes are now generated with unique geometric tags so that points are only awarded when the bird’s trailing horizontal boundary completely clears the obstacle. A ceiling boundary collision check (b_y1 <= 0) was added to close a loophole where players could fly off-screen to bypass pipes entirely. To keep the gameplay loop engaging, a difficulty scaling mechanic was implemented to speed up the incoming pipes by 1.5 pixels every 3 points, while a session-wide high score counter was added to track and display the player’s best run. The iteration concludes with a polished game loop, stable crash boundaries, and a foundation ready for external asset implementation.
Now working on the bird itself to try and make it look like an actual bird