Hi there!

I am Yusuf Efe Kivilcim.
Most call me Pasha.

This is where you can find most of the weekend projects I've built over the years.

2027

Dual-Rank is a 5×5 swipe game where powers of 2 and powers of 3 share the board but never merge, and you win only when both reach rank 10. Each new tile helps one family and occupies a cell the other cannot use. A solver engine was also built alongside the game.

2026

Chronosand

A clock that turns written time into a material. The sentence is drawn to a canvas and passed to a fragment shader as height data. Separate normals for the lettering and procedural sand make the words read as shallow water, complete with refraction, highlights, and moving caustics.

Chaos Verse

A character level model written without a machine learning library and trained in a Web Worker. Dragging a node measures its displacement and uses that value to disturb the actual weights. The generated poem breaks down, the displayed loss rises, and training has to recover in real time.

2025

Tensor Mesh

A PyTorch embedding trained to become handwriting. Every row contains one pair of coordinates, and SGD moves those points towards pixels sampled from a rasterised word. A WebSocket streams the result into a spring mesh, while pointer movement writes displaced coordinates back into the model during training.

Sisyphus Timer

A stopwatch mapped directly onto a scrolling landscape. Elapsed time determines the boulder's position, while its rotation comes from the distance travelled across the terrain rather than frame rate. The landscape is deterministic, so its contours and texture remain fixed as the camera follows the climb.

2024

Arc Gambit

A PGN renderer that turns a chess game into a layered poster. It keeps the moves that carry the game and thins routine pawn traffic before drawing each remaining move as a cubic Bézier arc. Colour separates the players, opacity preserves chronology, and the finished composition exports as PNG or GIF.

Ripple Beat

A tap accuracy metronome driven by the Web Audio clock. Beats are scheduled ahead from a fixed start time, avoiding the drift of repeated browser timers. The pendulum uses that same clock, so every tap can be placed on the arc according to its timing error rather than the frame that happened to be visible.