currently working on
ŌURA
Supercell
projects
· · · ·
Additional projects exist beyond this list.+ more
latest
what i've been up to.
Software Engineer Intern
embedded software engineering on the smart ring platform.
Co-founder
building the world's best pipeline for builders to work in EU hyper-scalers.
AI Engineer (Contract)
testing and building AI-based/inspired games for the most recognized mobile game company in the world.
Software Engineer
built simulation pipeline from scratch + worked on backend systems. early engineer.
Teaching Assistant
TA for CS-E5775 Complex Systems, CS-E4960 Software Testing, CS-C3180 Software Design, and CS-C3150 Software Engineering.
Current
MSc, Mathematics
Minor in Physics
Minor in Computer Science
Ending 2026
BSc, Computational Engineering
Brawlhalla but you can be anything.
JavaScript · Node.js · Canvas 2D · Matter.js · Gemini API · Gamepad API
Description
An LLM-first fighting game. Every move grid, hitbox, and visual effect is data the LLM can author at runtime.
why I built it
always wanted a fighting game where you could play as literally anything you can describe. felt like that was finally possible with llms.
Rust + Vulkan, agentic-first game engine.
Rust · Bevy · Rapier · MCP · TCP
Description
An agentic-first game engine. Open source, in progress.
why I built it
everyone in the ai lab was building web games, but nobody was utilizing gpu / unity cuz it was built for humans not agents. this changes that. an ai native game engine.
Research-grade 2D falling-sand cellular automaton.
Rust · wgpu · winit · egui · WGSL · Criterion
Description
~2.2k lines of Rust, no game engine, single GPU shader. Chunked dirty-rect scheduler (the Noita optimization), 10 cell kinds with density-based displacement and reactions, history ring buffer with timeline forking, hand-written WGSL bloom + Reinhard tonemap, 18 scenarios. ~180M cells/sec saturated. 19 tests + CI on Linux/macOS/Windows.
why I built it
wanted a project that exercises systems programming, low-level graphics, randomized cellular automata, and a non-trivial UI all at once, but small enough that one person can hold the entire codebase in their head.
AI-native IDE for software architecture.
TypeScript · Next.js · React · Tailwind · Zustand · React Flow + dagre · Supabase · Anthropic API · Vitest + Playwright · Vercel
Description
An IDE for the architecture of your codebase. Describe a change in plain English; schema turns it into AST transforms, runs them through your test suite, and animates the dependency graph as it mutates.
why I built it
ides show you files, not architecture. you can stare at thirty open tabs and still not see the shape of the system. wanted a view that thinks at the level of clusters and routes.
From-scratch GraphRAG over Finnish tax law with a live map of the legal reasoning.
Python · LanceDB · SQLite (graph) · Voyage · DeepSeek-V4 · BAAI cross-encoder · Vercel
Description
Interpretable GraphRAG over the Finnish tax-law corpus (Finlex statutes, KHO case law, Vero guidance, treaties, 402k embedded chunks and 1.97M graph nodes). Returns citation-backed answers with a live visual map of the legal reasoning behind every response. Two retrieval pipelines side-by-side: vector-only baseline vs. strategy-routed graph expansion with cross-encoder rerank, for honest ablation.
why I built it
taxxa.ai challenge at the aaltoes prompt finance hackathon: agentic GraphRAG for accounting regulatory research. team build over the weekend at villa upinniemi. first place.
Online chess platform.
React · Vite · Tailwind · Supabase · chess.js · Stockfish 18 · js-chess-engine · Vitest
Description
TBD
why I built it
none of the big platforms had instant anki-style puzzle generation for learning openings and mistakes, so had to make one myself.
Internal game testing tool for Supercell.
TypeScript · Next.js · Supabase · Vercel (deploy)
Description
Internal cohort playtesting tool for Supercell: built to replace ad-hoc sharing; now the AI Lab's pipeline for co-testing.
why I built it
a quick batch meeting showed me that everyone wanted everyone to playtest their games but nobody wanted to just drop a random link in slack; built this to support everyone in the batch and make it easy to get feedback and iterate quickly on it.
Historical (novel LLM architecture) simulation.
TBD
Description
A historical simulation project. Very early stages, more details coming.
why I built it
work in progress.
Interactive explorations of novel self-organizing computation.
JavaScript · HTML · CSS · Canvas 2D · Vercel (deploy)
Description
23 browser-based simulations (cellular automata, particle systems, and artificial life), each built from the source papers. No build step, no dependencies; Canvas, typed arrays, and requestAnimationFrame.
why I built it
was talking with my friend about game of life, and i thought about how there must be millions of new papers that were never visualized that could be super cool. so i built this in an afternoon.
Your dependencies are dying. epitaph finds the bodies.
TypeScript · Node.js · npm CLI · GitHub API · Vercel (site)
Description
Dependency abandonment auditor: reads package.json, queries GitHub and npm, and grades every dependency A–F from real maintenance signals: deprecated packages, bus factor, last commit, funding, and more. Run with npx epitaph-dev; optional GitHub token unlocks deeper signals.
why I built it
big repos cannot keep track of all their dependencies. this has been individually solved but not in a broad systemized manner. I built this to fix that problem.
Your README is lying. driftmd catches it.
TypeScript · Node.js · CLI · npm · GitHub Actions · Turborepo · Vitest · Vercel (site)
Description
npm package that cross-references every claim in your README against actual files, CLI flags, env vars, badges, and function signatures. Catches drift before users do. Run as a CLI (npx driftmd), GitHub Action, or AI prompt. Zero config.
why I built it
believe it or not, nobody has done this before. weird. well since it didn't exist and i needed it, i made it.
Parallel-timeline debugger for Node.js.
TypeScript · VS Code Extension API · DAP · React + React Flow · Tailwind · Node.js vm · Anthropic API · Vitest · esbuild + Vite
Description
A VS Code extension that replaces the standard breakpoint view with a canvas where state is directly editable. Fork into up to four parallel timelines, run each forward independently, and commit one to extract a code fix that would have produced that state without manual intervention.
why I built it
debugging is a search problem but every debugger only lets you sample one point at a time. wanted one where the search itself is the editing surface.
Also built
Contributed repositories & merged pull requests.