Wong Hanz
Systems & AIoT engineer — sensor to socket to screen.
Native mobile, embedded telemetry and agentic AI pipelines running in production: a transit terminal with 300+ daily riders, a 300-head livestock farm, and an exam-prep app with 100+ monthly students. This surface is real fluid — the profile README can only fake it.
Drag to disturb the water · click to drop · space to start droplet · turn the sound on and stay long enough for the sun to go down
🎮 Droplet
30 seconds of reflex. Every catch raises your combo up to ×8 — miss one and it resets to ×1.
🌇 The day arc
Time of day advances while you are here, and faster while you play. Golden droplets only appear once the light turns warm.
🎧 Spatial ocean
Not an audio file. A procedural swell plus HRTF-panned one-shots, so a ripple on the left of the screen happens to your left ear.
🪼 Mind the jellyfish
Pink and pulsing means do not touch. Stinging one breaks your combo and costs 20 points, so the risk is real.
Under the hoodWhat is actually running
- Wave simulation on the CPU. A two-buffer height field solves the discrete wave equation
(neighbours × ½) − previousat 240×N with 0.9715 damping and two substeps per frame, so ripples propagate and interfere instead of being a canned texture. - Refraction from the surface gradient. The field uploads as a
LUMINANCEtexture; the fragment shader samples four taps to get a normal, then bends the light field by the local slope — that is where the glass thickness and the chromatic split come from. - Specular tied to the sun. The light vector interpolates with the day phase, so the highlight direction, the caustic colour and the horizon band all move together rather than being a colour filter.
- Sound built from oscillators and noise. A looping filtered-noise swell with slow LFOs, and one-shots
through
PannerNodein HRTF mode, positioned by mapping screen coordinates into audio space. - The game clock is wall time, not
requestAnimationFrame. rAF is throttled to about 1 fps in a background tab, which would freeze a round mid-play; the rules run off a 60 ms interval and the render loop is only decoration.
Selected workThings in production
Eloquent Lab
Native iOS + Android exam-prep SaaS. WaveRider prosody scoring on AVAudioEngine, DeepSeek-graded CEFR essays, hybrid RevenueCat + AdMob monetisation.
NodiGuard
Zero-trust local AI proxy for Cursor, VS Code and Aider. Intercepts leaked API keys, tokenises prompts on-device, and reclaims 16 GB of Ollama VRAM.
Liquid Glass on iOS
Where this page came from: refraction shaders backported across iOS 13–18 inside a Telegram fork. Six OS generations, one material language.
PlantX · CapriGuard
Champion, EcoRise Southeast Asia 2026. Agricultural telemetry cutting farm water 30% and lifting growth 50%, plus RFID livestock triage on a working farm.