Selected work / Ongoing explorations
Built out of curiosity.
Experiments in physics, software, and play. A collection of things I’ve made and ideas I’m still exploring.
Data Engineering
Payment Risk / Pulse
A Java and Apache Flink reference application that turns synthetic
Kafka payments into explainable risk decisions. Combines event-time
processing, deduplication, stateful rules, and transactional output
with ClickHouse analytics. Pulse, its React dashboard, makes
decisions and pipeline health explorable. The hosted demo uses
synthetic data.
Java, TypeScript
Flink, Kafka, ClickHouse, React
Physics
Deflating Bubble Animation (Three.js)
A Three.js interactable simulation and implementation of physics
paper about Unblowing bubbles.
JavaScript
Three.js
Paper Reference: [1]
Deflating Bubble Animation (Manim)
A Manim animation of a physics paper about Unblowing bubbles.
Python
Manim, Scipy
Paper Reference: [1]
References
[1] Unblowing bubbles: understanding the physics of bubble deflation through a straw
Heron's Fountain Simulation
A model of gravity, air compression, and viscous flow, based on the
accompanying research paper.
JavaScript
Three.js
Danny and Tony's physics lab (WIP)
A full-featured lab with interactable experiments and other funny
stuff.
JavaScript
Three.js
Boyle’s self-flowing flask
An initial push, a recirculating stream, and the inevitable loss of
momentum. Explore the unsteady viscous model.
JavaScriptThree.js
Android
OpenCV - OpenGL object manipulation
Project involving object manipulation using OpenCV and OpenGL.
Java/Kotlin/C++
OpenCV, OpenGL
Games
Quantum Dungeon Crawler (WIP)
A dungeon crawler where real quantum algorithms (Grover, Shor, VQE,
QAOA) become core gameplay mechanics. Features an in-game circuit
composer, temperature-driven decoherence, and progressive level
design teaching quantum computing.
Game Design
Quantum Computing
Kamisado
A full-featured real-time multiplayer Kamisado board game with sumo
push mechanics, chess-style timers, reconnection support, and
spectator mode.
TypeScript
Node.js, Express, Socket.IO
Greta's adventures
A platformer with an environmental theme. Developed in less than 48h
and University Game Jam winner. NB: Full featured game WIP!
C#
Unity
Data Science / ML
MALLORN Astronomical Classification Challenge
Classified astronomical transients to detect Tidal Disruption Events
(stars torn apart by black holes). Ranked
58th out of 894 participants.
Python
Machine Learning, Astrophysics
Web
School website
A school website built with Laravel and JS Vanilla.
JS, PHP, MySQL
Laravel
Microcontrollers
STM32 Microphone Recorder
Button-controlled audio capture on the B-L475E-IOT01A Discovery
board. C firmware records its onboard MEMS microphone through DFSDM
and DMA, then transfers audio over ST-LINK USB to a Python receiver
that saves 16 kHz WAV files. Includes buffered capture, packet
checksums, lost-data detection, and host tests.
C, Python
STM32, DFSDM, DMA, CMake
Bulb enlightment on motion + temperature
A system for light bulb enlightenment triggered by motion, with
added temperature monitoring.
C++
Arduino
Bachelor's Thesis
HAR model on STM32 microcontroller
Human Activity Recognition (HAR) model implemented on an STM32
microcontroller using TFLite and a no-code solution, EdgeImpulse
(2022).
Python, C, C++
STM32, TFLite, STM32Cube, EdgeImpulse