safa.elmali

Istanbul · building at beehiiv

T. Safa
Elmalı.

I build playful things for the browser: 3D toys, arcade games, and tools you can poke at. Mostly with AI in the loop. Also a certified game addict.

Lofi Cities buddylist Pixelangelo DualSense Studio Junk Magnet

Pinned work

02 App

buddylist

Chat with your coding agents like it's 2005. A Mac app in MSN Messenger style where Claude Code, Codex, and Gemini are buddies that run commands and edit your files.

  • Electron
  • Claude Agent SDK
  • JavaScript

03 Game

Pixelangelo

A daily word game where a famous painting starts as a handful of pixels and hides one word. Every miss sharpens the picture. Race friends in multiplayer rooms.

  • Next.js
  • TypeScript
  • Cloudflare Workers

04 Toy

DualSense Studio

Your PS5 controller, with more to play with. Explore it in 3D, check stick drift, roll marble mazes with gyro tilt, test your aim, or paint with the touchpad.

  • Three.js
  • Gamepad API
  • JavaScript

05 Game

Junk Magnet

A tiny robot in an endless scrapyard, where your enemies become your ammo. Pull in wreckage, build an orbit of scrap, and survive to 15:00 to take down the Scrap Colossus.

  • Three.js
  • TypeScript
  • Blender

06 Game

Frostbound

An Icy Tower–inspired tower climber in a frozen cathedral. Build momentum, chain combo jumps, dodge frost bats, and race up to four friends in multiplayer lobbies.

  • Three.js
  • React
  • TypeScript

07 Experiments

Object Lab

Fifteen worlds, one scroll. Scroll-driven 3D stories starring soda cans, mechanical keyboards, film cameras, tiny cities, and the deep sea.

  • Three.js
  • Scroll animation

08 Learning

Crema

A 3D latte art studio. Follow the pitcher through heart, tulip, and rosetta pours, orbit the cup, and slow the pour to ¼× until the motion clicks.

  • Three.js
  • JavaScript

09 Tool

Duo View

Preview any website on an interactive foldable phone. Flip between folded, open, and tabletop views, compare layouts side by side, and export a PNG.

  • 3D
  • Responsive design
  • JavaScript

More experiments live on GitHub.

Elsewhere