Let's Reinvent the Wheel

Blog

Snake Rewind: Episode 5 – Snake Ends Here

In this episode we complete the core gameplay loop by adding collision detection, game over logic and a restart system. Thus giving the player something to fear and the game real stakes.

Snake Rewind: Episode 4 - Past Self, Present Danger

In this episode we introduce the clone mechanic: snakes that replay your past moves with deadly precision. It is a strategic twist that transforms Snake Rewind from a simple remake into a tactical survival challenge.

Snake Rewind: Episode 3 - Feeding the Beast

In this episode we introduce food to the game allowing the snake to grow and bringing the core gameplay loop to life. It’s a small change that makes a big difference and sets the stage for the clone mechanic coming next.

Snake Rewind: Episode 2 - Slither With Style

In this episode we breathe life into the grid by implementing smooth step based snake movement and clean keyboard input handling - laying the groundwork for gameplay mechanics to come.

Snake Rewind: Episode 1 - Gridlocked Pixels

In the first episode of Snake Rewind we lay the groundwork for a retro inspired Snake game by building a crisp pixel perfect tile grid using Raylib. This foundational system sets the stage for everything to come: from clone mechanics to shader powered visuals.

Quadtree Art, Part 3: Prioritized Subdivision with Binary Heap

In this final part we introduce a priority queue to guide image subdivision based on color error and area. The result is a smarter and faster rendering process that focuses effort where it visually matters most.

Quadtree Art, Part 2: Linear Subdivision with Quads

We implement basic image subdivision using a dynamic array to manage quads. The result looks interesting but without prioritization we end up spending time on regions that barely matter. This part sets the stage for a smarter approach in Part 3.

Quadtree Art, Part 1: Setting Up the Canvas

Setting up rendering pipeline using SDL3 and stb_image. We load an image, create a framebuffer and display the result using a texture. This part lays the groundwork for interactive image subdivision in future parts.

0n0FF: Teaching a Puzzle to Solve Itself

We extend 0n0FF with a real time solver powered by Breadth First Search (BFS) and bit manipulation. Learn how to compute perfect puzzle solutions and guide players with subtle visual hints - all in React and TypeScript.

0n0FF: A Flipping Puzzle in React

A compact logic puzzle where every click flips an entire row and column. Using TypeScript, React, Context, and Reducers, we implement the game from scratch with a clean, minimal UI and satisfying interactions

Solving Boggle Backwards

A simple Boggle solver that flips the problem on its head: instead of finding words on the board, we check if dictionary words can be formed from the board. Surprisingly simple, surprisingly effective.

Terminal Rainbows in Zig: A Colorful cat-like Tool

A small learning project that explores how tools like lolcat create colorful and animated terminal output. This time we use Zig for the first time to add some color to our terminal and learn how ANSI escape codes make it all work.

Doom Fire Animation with PPM and mpv

Learn how to create a mesmerizing Doom Fire animation from scratch in C11, using only the PPM image format and mpv for display. This hands-on tutorial walks you through simulating classic pixel fire in a modern C environment, without any graphics libraries - just raw image output and a powerful video player.

Build Your Own RoyalRoad to EPUB Converter

Learn how to build a simple Python script that scrapes stories from RoyalRoad and converts them into EPUB files for offline reading. This beginner friendly project uses BeautifulSoup, requests, and EbookLib to walk you through a full pipeline from HTML scraping to ebook generation. A perfect start for anyone looking to automate something useful.

The Start of Something New

Let’s Reinvent the Wheel is all about learning by building from scratch. We’re starting with an empty GitHub and LeetCode profile, exploring backend, frontend, and interview prep. The goal is to recreate existing tools and ideas to truly understand how they work. No fixed roadmap — just hands-on projects that challenge and teach