Mustafa Obaid software engineer

Interactive models of mathematics, physics & computation.

Ten browser-based instruments: a GPU wind tunnel, a spectral sky, a SAT-solving scheduler, a QR code you can scratch and still read, and more. Each one documents its model, how it was validated, and where it stops being accurate.

Selected work · 10 projects

Working models

Every project opens on a running example. Live demos run entirely in the browser; source code, tests and a write-up of the model live in each repository.

01Physics · Graphics · Engineering

KármánA GPU wind tunnel

How does the shape of an object change the air flowing around it — and the force it feels?

Draw any shape into a live lattice-Boltzmann wind tunnel running on the GPU, then measure the drag, lift and vortex shedding it causes.

  • TypeScript
  • WebGPU
  • WGSL
  • Web Workers
  • Computational fluid dynamics
  • GPU compute
  • Numerical validation

04Engineering · Mathematics

StrutTopology optimisation in the browser

If you know where a part is held and where it is pushed, what is the stiffest shape you can make?

Place supports and loads and watch a finite-element optimiser grow the stiffest structure for the material you allow — then export it for fabrication.

  • TypeScript
  • Svelte
  • Web Workers
  • WebGL2
  • KaTeX
  • Finite element method
  • Gradient-based optimisation
  • Digital fabrication

05Algorithms · Mathematics

FixtureA league scheduler that explains its conflicts

Can a whole season be scheduled around everyone’s constraints — and if not, which ones are to blame?

A SAT solver written from scratch schedules a full season, proves the minimum number of home/away breaks, and explains impossible constraint sets.

  • TypeScript
  • React
  • Web Workers
  • MathML
  • SAT solving (CDCL)
  • Constraint modelling
  • Combinatorial optimisation

08Physics · Audio

MonochordThe physics of a vibrating string

Why does a guitar sound brighter when plucked near the bridge, and a piano’s low notes slightly out of tune?

Pluck, strike and hear a physically modelled stiff string simulated at audio rate, and compare its measured overtones with theory.

  • TypeScript
  • Web Audio
  • AudioWorklet
  • Canvas
  • KaTeX
  • Numerical PDEs
  • Digital signal processing
  • Acoustics

09Data · Physics · Graphics

Deep FocusAn atlas of earthquake depths

Where do earthquakes happen, how deep — and what do their depths reveal about plates diving into the mantle?

Fifty years of USGS earthquakes on a 3D globe, with cross-sections that reveal subducting slabs and statistics for any region you select.

  • TypeScript
  • Svelte
  • three.js
  • D3
  • Web Workers
  • Data engineering
  • Geospatial maths
  • Statistical estimation

10Game · Physics · Graphics

LensingA puzzle game about bending light with gravity

Gravity is your only tool: where do you put a moon, a star or a black hole so the light finds its way home?

Place masses to bend beams of starlight into telescopes. Thirty hand-made levels, an endless mode and a level editor — the one project here made purely for fun.

  • TypeScript
  • Canvas
  • Web Audio
  • Game design
  • Level design
  • Numerical integration

Before this collection

Earlier projects

Front ends and back ends from my studies and internship. The static sites run as they are, the Django app runs inside your browser through WebAssembly, and the .NET API has a project page instead, because it needs a server that GitHub Pages cannot provide.

About

Mustafa Obaid

Software engineer with a B.Sc. in Software Engineering from Philadelphia University, Jordan, working mostly on the web, with a soft spot for interface design and for making technical ideas easy to see.

The projects above are where those interests meet: each starts from a real question, models it carefully, checks the model against known results, and puts it in an interface you can explore without reading the theory first.