currently working on
ŌURA
Null Fellows
projects
· · · ·
Additional projects exist beyond this list.+ more
latest
what i've been up to.
Software Engineer Intern
embedded software and firmware 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.
Founding Engineer
built internal systems from scratch + worked on backend infrastructure. founding engineer.
Software Engineer
built embedded and hardware-in-the-loop systems from scratch. 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
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.
Triple pendulum in pure x86-64 NASM, 80-bit precision.
NASM x86-64 · x87 FPU · C · Python · SciPy · Vercel (deploy)
Description
Lagrangian mechanics for three point masses on rigid rods, 3x3 mass matrix solved by Cramer's rule with six shared 2x2 subdeterminants, classical RK4 at dt=1e-4. State and scratch held in 80-bit extended precision via x87; six fsincos per derivative call. Terminal renderer at 30 fps with ANSI cursor escapes. Browser port reuses the same algorithm with a double/triple toggle and per-phase asm highlighting. Beats SciPy DOP853 in energy conservation at long times by ~10x by keeping state in 80-bit.
why I built it
filtered language:Assembly + triple pendulum on github. zero. tried double, n-pendulum, multi-pendulum. zero. sourceforge, gitlab, codeberg, rosetta code, pouët, demozoo. zero. the math is in every classical-mechanics textbook. nobody had bothered to write it in asm. so this exists.
Real-time black hole, white hole, and wormhole horizon sandbox.
C++17 · OpenGL 3.3 · GLFW · Dear ImGui · GLM · CMake
Description
A GR-inspired visualization sandbox, not a numerical-relativity solver. Three switchable horizon modes, thousands of stable particles via semi-implicit Euler with softened forces and velocity clamping, an HDR pipeline with additive multi-pass bloom, ACES tonemap, and optional screen-space gravitational lensing, plus a time-reversal recorder that captures particle state to a snapshot ring buffer and plays it backward. ImGui control panel, causal-cone and curvature-grid overlays, screenshot export. OpenGL 3.3 core; GLFW, ImGui, and GLM auto-fetched via CMake.
why I built it
wanted to see horizons, lensing, and time reversal as something you can poke at in real time instead of staring at static textbook diagrams. teaching tool first, physics toy second.
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
GraphRAG over Finnish tax law (Finlex, KHO, Vero; 402k chunks, 1.97M graph nodes). Citation-backed answers with a live reasoning graph; vector baseline vs. graph-routed + cross-encoder rerank 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 — $3,000+.
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 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.