.mov

a timeline of my projects

2020

A Discord bot that translates with reactions. React to any message with a country's flag and the bot replies underneath in that language, so a server could talk across languages without anyone leaving the chat.

#generalReact with a flag

shiv

anyone want to play tonight?

2021

A hacking game played inside Discord. Open a terminal session in chat, upgrade your PCs with glitchbits, and break into other players with viruses while they hold you off with firewalls. Join a cluster with friends and climb the leaderboards together.

#glitchd/play, 2021

shiv used /play

Glitch'd BOT

2026

Discord bots with no server. Your bot ships as a single AWS Lambda function; cordless provisions it, wires the endpoint and registers your commands, so you write handlers, not infrastructure. Nothing runs between interactions.

Visit cordless.dev
Interaction pathcordless.dev, fig. 1
POST /interactionsinvokeasync200, replyedit replycold start +12 mscold start +18 msDiscorduser runs a commandFunction URLlambda url, api gwhandler λyour codeworker λasync, slow work
idle, 0 ms compute, $0.00
2026

A multiplayer hacking game played on a shared 3D network. Traverse across the mesh, manipulate the topology, loot and retreat, with friends, clusters and talk in the live chat. The server decides everything, from a single Lambda and DynamoDB, and the three.js client just replays it.

COMING SOON
The meshinfiltra but tiny
// not representative of the full game

A real fluid simulation runs behind every page, stirred by your cursor. The page moves sideways like film through a gate, with a timecode you can scrub.

Background
Renderer
WebGL2, hand-written
Model
Stable fluids, 20 pressure passes
Grid
128 × 128 cells
Dyes
Shader passes
28 per frame

What's Inside the Button

How the entire game state for Daily Dungeon gets packed into a Discord button, and why that packing discipline shapes everything built on top of it.

Read the post
Button ID0 / 39 bytes

door:AyEBAATXo_uwBQEDZQkHDgAcAC0AAACjAAYBAwACAQITAAEADAAA:2

  • identity
  • character
  • combat
  • economy
  • encounter
  • meta

A jar of marbles with hand-written physics. Each marble remembers where it was a moment ago and keeps moving that way, and overlapping marbles are nudged apart eight times a frame. Grab one and fling it; hit hard enough and it splashes into the fluid behind.

MarblesDrag, fling, or tap

A little boat floating on the fluid behind this page. Every frame, it asks the simulation how fast the water is moving right underneath it, and drifts with the current. Stir the water with your cursor, or tap the pond to blow it along.

PondStir the water, or tap to blow

00:00:00:00
shiv.mov