Challenges

Featured Challenge:
#188 — Voice Chatbot

In this coding challenge, I build a conversational voice chatbot entirely in the browser with p5.js. I combine three pieces: speech-to-text with OpenAI's Whisper model, text-to-speech with Kokoro TTS, and a "brain" for the bot. I also explore the transformers.js pipeline API and the Web Audio API. For the bot's brain, I start with a simple ELIZA-style therapist, then incorporate a RiveScript number-guessing game, and finally a local LLM.

apr 27, 2026

Voice Chatbot

Filter by Language

Pick a language to filter

Filter by Topic

pixels

It's Genuary 2024! Watch as I attempt to build a falling sand simulation in p5.js using a grid of pixels and simple rules.

Falling Sand

Let's make a slide puzzle in p5.js together! We'll be using images, nested loops, and arrays, and by the end of our journey, we'll have a fully playable game!

Slide Puzzle

In this video, I follow Mike Ash’s guide to Fluid Simulation and port Jos Stam’s "Real-Time Fluid Dynamics for Games" algorithm and code in Processing (Java).

Fluid Simulation

In this coding challenge, I implement a pixel-based “fire” algorithm using Processing (Java).

Fire Effect

In this coding challenge, I attempt to simulate 2D water ripples using Processing (Java).

2D Water Ripple

In this multi-part coding challenge, I demonstrate how to use a circle packing algorithm.

Circle Packing

In this coding challenge, I implement “Pixel Sorting” in Processing (Java). Using a “selection sort” algorithm, I sort the pixels of an image by brightness and hue.

Pixel Sorting in Processing