For Hacktoberfest 2026, I built a "Code to Concept Visualizer"—a Python desktop application using Pygame that breaks down complex code into interactive visual logic steps.
How I Used Open-Source AI
Local Gemma: I integrated Google's open-weight Gemma model locally using Ollama. This keeps the application entirely offline, protecting user code privacy while generating accurate logic breakdowns.
Gemini API: I integrated the Gemini API to act as the reasoning engine, which analyzes the user's code and passes structured steps back to Pygame for rendering.
The Code
You can find my complete project repository here:
Python Code Visualizer
A local browser-based Python learning tool. Write Python in the editor, run it through the existing subprocess tracer, then inspect the captured events variables, call frames, output, and errors one step at a time.
The trace is the source of truth. Gemini is an optional explanation service and does not execute or determine the result of a program.
Run locally
pip install -r requirements.txt
python main.py
Open http://localhost:8000. The browser editor uses Monaco when its CDN is reachable and falls back to a keyboard-editable editor if it is not.
Optional Gemini explanations
Set GEMINI_API_KEY to enable explanations. On Replit, add it through Replit
Secrets; when running locally, copy .env.example to .env and set it there
The key is read by the Python backend and is never sent to the browser. Source
code and the selected step's variable snapshots are sent only when you request
an explanation;…
https://github.com/sanskarb19/code_to_concept-visualizer
Running the Project
Clone the repository.
Install Pygame.
(Add one step about setting up the AI, e.g., "Run ollama run gemma:2b" or "Add your API key to the .env file")
Run main.py!
My Hacktoberfest Experience
I started this project after attending the local Hacktoberfest event at AITD Navi Mumbai. It was a great push to combine my Python skills with AI integrations, and I am excited to keep building in the open-source space.
Top comments (0)