Mukund G · Founding Engineer / Full-Stack Engineer · Bengaluru, India
Things I built because I had to know.
A direct, media-first record of the systems, games, tools, and experiments I’m building — with proof next to the work and unfinished parts left visible.
a fighting-game controller wired like a real fruit fly brain
A deterministic browser fighting game where the opposing controller isn't hand-tuned — its wiring comes from the FlyWire fruit fly connectome, trained with the Cross-Entropy Method instead of hand-authored rules.
early — one full training run complete, results still being interrogated, no public deployment
1,536 neuronsas of 2026-10-08170,489 edgesas of 2026-10-08100% held-out win rateas of 2026-10-08
The 100% figure is a historical 9-episode evaluation. Later exploratory validation found 72/120 standard wins and one fixed action sequence; blinding inputs changed nothing. These are separate suites, not evidence of generalization.
A browser workspace that turns product images, prompts, and existing 3D assets into customizable, optimized, web-ready 3D — but the generation step is an LLM writing parametric geometry code, checked by an automated critic before it's ever shown as final, not a diffusion model guessing a mesh.
archived; the source is private and there is no public site to visit
708 / 716 commits shipped, by Mukundas of 2026-09-14
React · TypeScript · Three.js · Supabase · +4 more
a fighting-game controller wired like a real fruit fly brain
A deterministic browser fighting game where the opposing controller isn't hand-tuned — its wiring comes from the FlyWire fruit fly connectome, trained with the Cross-Entropy Method instead of hand-authored rules.
early — one full training run complete, results still being interrogated, no public deployment
1,536 neuronsas of 2026-10-08170,489 edgesas of 2026-10-08100% held-out win rateas of 2026-10-08
The 100% figure is a historical 9-episode evaluation. Later exploratory validation found 72/120 standard wins and one fixed action sequence; blinding inputs changed nothing. These are separate suites, not evidence of generalization.
A FastAPI + WebSocket brain service runs the connectome-derived recurrent controller against a from-scratch, replay-verified fight simulation shared by the renderer, a headless trainer, and replay playback — so any match can be bit-for-bit re-simulated from its seed and action log. The frontend never fabricates a 'brain activity' display: an offline or rule-based fallback says so explicitly and shows zero active neurons. A first full CEM training run (20 generations, population 12, all three difficulties) took a controller from 0% to a 100% held-out win rate against baseline opponents in the project's own evaluation suite — reported alongside an open, unresolved question about whether that policy actually generalizes or just converged to seed-insensitive behavior, rather than presented as a finished result.
Engineering question
The FlyWire FAFB connectome (v783) maps roughly 138,000 real neurons and about 15 million synaptic connections in a fruit fly brain — not a game controller. Flyweight reduces that into a deterministic 1,536-neuron, 170,489-edge subgraph, attaches artificial sensory input and motor output adapters around it, and trains the result with the Cross-Entropy Method (a gradient-free evolutionary optimizer) rather than backprop, since the network's structure is fixed by biology, not designed for learning.
Sole builder — data pipeline, simulation, controller training, and frontend.
Evidence and limits
Re-verified 2026-09-14 directly against the local repository (not just GitHub). Neuron/edge counts, data provenance (FlyWire FAFB v783, hash-recorded downloads, Zenodo/Nature citations), and the 0%→100% training result are all documented in the repo's own README/BUILD_REPORT with specific numbers (20 generations, population 12, mean reward 45.0, 9-episode eval suite) and an honestly-flagged caveat about seed-insensitive convergence. The repo's own test/lint/audit pass counts (Vitest, pytest, Playwright, ruff, bandit, pip-audit, npm audit, secret scan) were read from BUILD_REPORT.md but not re-executed by this portfolio session — self-reported, not independently re-run.
Proposed only: compare direct game-state input with screen-only observations in a common browser fighting environment under controlled, reproducible evaluation. Game choice, controller details and feasibility remain unresolved. No integration or comparison results exist.
A constellation-learning game that grew into a real-sky explorer: Daily and Practice puzzles, location-aware Tonight stargazing, Seek for skies from 1900 to now, and Guided Find — all built on real astronomy catalogue data.
126 visitorsas of 2026-10-0842 engagedas of 2026-10-0811 countriesas of 2026-10-0888 IAU constellations cataloguedas of 2026-09-149,036 real cataloged starsas of 2026-09-14
a WHERE and WHEN guessing game for living and extinct animals
A browser game where players read evidence about an animal, infer where it lived, then place it in Earth history. Extinct animals can use cached paleogeographic coastlines and reconstructed fossil points instead of pretending ancient life belongs on today's continents.
live at findin.world; the older documented Railway URL was retired and now 404s
343 visitorsas of 2026-10-08191 playersas of 2026-10-0828 countriesas of 2026-10-0860 species reviewed and verified for launchas of 2026-09-15
Next.js · TypeScript · Supabase · PostHog · +4 more
OpenCV captures webcam frames, MediaPipe extracts hand landmarks, and a PyQt5 desktop app maps hand position/gesture to values that drive a 10-band system-wide equalizer through Equalizer APO.
Engineering question
Mapping continuous, noisy hand-tracking landmarks to stable, smooth control values for ten simultaneous EQ bands without jitter, while keeping the whole loop — camera capture, landmark extraction, gesture-to-value mapping, and system audio control — running in real time.
Sole builder.
Evidence and limits
Confirmed public repository, sole author (git history matches this portfolio's owner). A full README rewrite was drafted 2026-09-16 by reading gesture_eq.py directly (finger-count band selection, pinch-to-adjust with exponential smoothing, L-shape lock, two-hand exit/reset gestures) and by installing the pinned requirements into a clean Python 3.12 venv, which succeeded (all four dependencies import, the script compiles). Not yet pushed to GitHub — pending review. The earlier title-card image was removed; the project's media is now a demo screen recording supplied by the owner (not independently reviewed frame by frame by this session).
Audio based: Art & Audio is a separate project. Calia’s music centre is a playable island installation.
a recording becomes a living artwork, in your browser
A browser audio-to-art workbench: analyse a local recording, watch a deterministic artwork evolve with playback, seek through its history, and export a PNG. Live sound and collection portraits have their own flows.
existing local implementation; ongoing visual refinement, public demo availability not verified here
Next.js · React · TypeScript · Web Audio API · +3 more
A Next.js / React / TypeScript app decodes local audio with Web Audio and analyses it in a worker, with Essentia.js and fft.js. A custom physical-art engine renders through WebGL2 with a Canvas fallback. The creator supports local-file playback, live microphone input and PNG export; the collection flow makes a portrait from multiple local recordings. Source audio stays on the device. Optional hosted art-only sharing requires separate storage configuration.
Engineering question
Keeping an evolving artwork coherent while playback, seeking and export reconstruct the same history. Musical estimates guide the composition; they are not semantic instrument recognition or source separation.
Project builder — browser audio analysis, playback and visual composition.
Evidence and limits
Inspected 20 October 2026: creator and collection routes, BrowserAnalyzer, PhysicalArtist, package manifest and existing playback/export verification captures. These are captures of the real application, not Calia-generated art. Historical verification was read, not rerun by the portfolio. Files are limited to seven minutes and codec support depends on the browser/OS. No public repository or deployment link is asserted.
Audio based: Gesture EQ is a separate project. Calia’s music centre is a playable island installation.
Real PNG export from the creator
Usage snapshot: 2026-10-08. Visitors and players are cumulative tracked human usage since 25 August 2026, with bots and my test accounts excluded. Figures come from PostHog; Flyweight figures are reported in its README. Source and dates ↗
An unfinished screen-feedback controller for Jax Briggs in Mortal Kombat, usually tested against another Jax in practice mode. The owner recalls HP graphs, a live neural-network visualization, reward/penalty training, movement, attacks and special moves, and challenges by friends. It occasionally won; reliable performance was never established.
Recovered source includes a PPO CnnPolicy variant: screen frames and calibrated HP regions feed gameplay observations; damage deltas reward opponent damage and penalize own damage; actions drive keyboard input. Visualization code exposes both HP values and a neural diagram. Checkpoints and session logs survive, but sampled HP fields are zero and one log entry repeats. They do not establish win rates or a validated training outcome. Older variants also exist; the exact version used in remembered sessions is unverified. The narrative of practice fights and friends challenging it is owner-reported. No raw checkpoints, logs or game imagery are published.
Proposed only: compare direct game-state input with screen-only observations in a common browser fighting environment under controlled, reproducible evaluation. Game choice, controller details and feasibility remain unresolved. No integration or comparison results exist.
A full-stack campus placement platform built for Dayananda Sagar University — students, recruiters, and admin flows, with an OpenAI-assisted matching layer.
A mechanical keyboard (tuned around an AULA F75) as a real-time polyphonic instrument — not a MIDI-file player. Pressing a key drives an internal synth engine (lead, electric piano, plucked guitar) immediately, with sustain/release and chords that don't stick. The repo is upfront that its one demo song's note data is unverified, pending a legal MIDI source — a small, honest detail worth keeping.
Four physical buttons wired to a Raspberry Pi, read as permutation combos, relayed over serial to an ESP32, which fires real ADB keyevents at a Fire TV Stick over Wi-Fi — a physical remote built from GPIO, not an IR blaster.
Confirmed directly: local repo (github.com/mgkagithub/thunderbyte, commits June–Aug 2024) contains firestick.py (a full menu → Android KEYCODE map executed via `adb shell input keyevent`), button_combo.py (4-button GPIO permutation reader), master.py/slave.py (serial relay to/from an ESP32), and a genuine master_log.txt with real timestamped sends (e.g. "2026-08-07 01:12:56 - Sent: adb key shell event 26") proving this ran on real hardware, not just source that was never executed. Corroborated by two dated phone photos (Pixel 6a EXIF, 2024-08-07) of the actual breadboard/Pi wiring.
An 8x8 LED matrix rendered as a cartoon eye whose pupil follows a face detected in a live webcam feed — OpenCV face detection mapped onto a 3x3 grid of pupil positions on real LED hardware. Built in both a one-eye ('cyclops') and two-eye ('binocular') rig.
Recovered fd.py source combines OpenCV Haar-cascade face detection with SPI/luma MAX7219 rendering and discrete pupil positions. A separate lm2.py variant moves an eye randomly, so not every eye script performs face tracking. Dated phone videos show both Cyclops and two-eye rigs running; the exact source version for each recording remains unresolved. The sanitized Cyclops clip is shown here; the two-eye original remains private. This is separate from LED-matrix Pong.
Raspberry Pi · MAX7219 LED matrix (SPI) · luma.led_matrix · OpenCV · +1 more
A red dot-matrix LED display wired to a Raspberry Pi, rendering a playable Pong.
Real hardware is corroborated by dated phone photographs (January 2025). A later source review located a report-derived reconstruction with two cascaded MAX7219 8x8 modules, SPI/luma rendering, ball/paddle collisions, scoring and a Flask HTTP POST control page. The reconstruction moves the left paddle randomly; it contains no gesture sensing or WebSocket control. It is not verified as the exact software deployed on the photographed rig. Original deployed source remains unverified; the island game is a separate illustration.