Tags: Programming

RustConf 2023

Here are my notes from 🦀 RustConf 2023 🦀. With no ado: # Talks All RustConf talks were 30 minutes, with no live Q&A. Instead, a channel on the Discord server was opened for each talk where the speaker and curious attendees would go to ask and answer questions. It had the…
thumbnail for 'RustConf 2023'

Rippulous Pond

Gaze ye into the rippulous pond unto eternity. canvas { object-fit: contain; width: 100%; position: relative; image-rendering: -moz-crisp-edges; image-rendering: -webkit-crisp-edges; image-rendering: pixelated; image-rendering: crisp-edges; margi…
thumbnail for 'Rippulous Pond'

Shaking Off the Rust 2: Ray Tracing in WebAssembly

Rust. A ray tracer. The dream of WebAssembly. One dangerous idea that could ruin everything. This was the scene at the end of my last post, which covered creating a ray tracer in Rust using Peter Shirley’s outstanding Ray Tracing in One Weekend. In the wrap-up to that post, I…
thumbnail for 'Shaking Off the Rust 2: Ray Tracing in WebAssembly'

Shaking Off the Rust 1: Ray Tracing in One Weekend

Two classes stand out as my favorites from computer science at NCSU: x86 assembly, taught by Dana Lasher, and computer graphics, taught by Stuart Heinrich. In the graphics course, we wrote a rasterizer and a ray tracer (which I never finished 😅). In the 16 years since, I’ve bee…
thumbnail for 'Shaking Off the Rust 1: Ray Tracing in One Weekend'

Open Jam Workshop

The East Coast Game Conference was a lot of fun! Jared and I gave a 6-hour hands-on workshop where led the audience through building a game with entirely open-source gamedev tools. # Abstract Join us for a workshop on game jams and open-source game development tools. Open-sourc…
thumbnail for 'Open Jam Workshop'

Popup Showdown

POPUP SHOWDOWN Close popups as fast as you can!█ Looks like popups are disabled! Please enable them for this URL, look ^^^ in the URL bar. CLO…
thumbnail for 'Popup Showdown'

Open Jam

Open Jam is an open-source themed game jam run by Jared and myself, with a lot of help from opensource.com. Check it out at openjam.io. Open Jam 2018 Open Jam 2017
thumbnail for 'Open Jam'

In Orange Light

Play now! Three years ago, surrounded by monitors in a dark, blue-hued room, a particular screen caught my eye. My girlfriend’s (now wife’s) eye was caught by the same screen, and we crossed the room to investigate. We were visiting the Indie Game Revolution exhibit at EMP i…
thumbnail for 'In Orange Light'

Pity About Earth…

Play now!

Humanity, listen up. This is the Universe. I am sick of you sticking your nose where it doesn’t belong. That’s why there’s a huge asteroid heading straight for your pitiful Earth, courtesy of yours truly. I see you’ve built a flimsy Barrier and a stockpile of Missiles, but it won’t help. Enjoy the end times! Bye-bye. Talk soon.

– The Universe


thumbnail for 'Pity About Earth...'

Meet SimPixel

I have someone I’d like you to meet. SimPixel, meet everyone. Everyone, SimPixel. # SimPixel, introduce yourself SimPixel is a WebGL visualizer for LED displays, very much like the ones Adam and Dan build over at Maniacal Labs. #mlabs { height: 50vh !important; } @media sc…
thumbnail for 'Meet SimPixel'


Fireflies is a WebGL demo in which a friendly flock of fireflies forms shapes for your entertainment. Here are some live demo links, and a video. Watch the original Watch the geekSPARK edition Thanks to Loren Schmidt for agreeing to let me use the awesome pixel-per…
thumbnail for 'Fireflies'


Play now! Tracer is a 3D connect-the-dots game that Jared and I created for Ludum Dare 37. Play now! We were very happy with the ratings Tracer received. In the Innovation category, we placed 5th out of 1,489 games. A more detailed blog post is available at the Scripta Games …
thumbnail for 'Tracer'

Kimotion at geekSPARK 2016

Just a few short days months ago, Kimotion was on display at SPARKcon. SPARKcon is a large art festival in Raleigh, and we occupy a small slice of it called geekSPARK. # Kimotion Levels Up Last year’s tech had a rudimentary and finicky hand tracking system. It was workable, but …
thumbnail for 'Kimotion at geekSPARK 2016'


Zorbio is a free multiplayer eat-em-up game that you can play in your browser! Zorbio is brought to you by my good friend Jared Sprague and I, via our small game development company, Scripta, Inc. Follow Zorbio development on the Scripta blog, or on Facebook. Play now!
thumbnail for 'Zorbio'

Lazyloading Web Components

They say good developers are lazy. A tedious process is no match for a lazy developer. Below is an experiment in laziness. It’s a proof of concept for using Web Components without having to manually import each one. I’m not sure exactly what to call it. It grazes the definitions …
thumbnail for 'Lazyloading Web Components'

Kimotion Modding 101

Kimotion is a simple framework for creating interactive art exhibits in 2D or 3D and supports both Kinect and Leap Motion for viewer input. This tutorial will focus on the Leap, so to proceed with the tutorial you’ll need to set up your Leap. Once the leap service is running, you…
thumbnail for 'Kimotion Modding 101'

Glow Rope

uniform float TIMER_MAX; attribute float alive; attribute float size; attribute vec3 endPosition; attribute float timer; varying float vAlive; varying vec3 vEndPosition; varying float vTimer; varying float vProgress; void main() { …
thumbnail for 'Glow Rope'

Visualizing Network Traffic with WebGL

“Finally,” I thought, “an excuse to play with WebGL at work!” This year, I had the good fortune of contributing to a keynote presentation at Red Hat Summit. During the keynote, an audience of 5,000 played a mobile web game created by our team. The game was backed by several micro…
thumbnail for 'Visualizing Network Traffic with WebGL'

Square Off

Square Off is a 1v1 airhockey-style game that Jared and I built in 72 hours for the Ludum Dare 35 game jam. And beacuse it’s web-based, you can… Play now! .sqoff-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); grid-gap: 10px; } …
thumbnail for 'Square Off'


Kimotion is a framework for building reactive art displays. Creating an interactive art exhibit with Kimotion is easy. Draw your ideas in either 2D or 3D. Kimotion will provide information about the scene, which you can use to influence your display. Learn more at kimotion.xyz, o…
thumbnail for 'Kimotion'

Make a Kimotion!

A year ago, I had the joy of working on Digital Motion, an interactive art exhibit for Raleigh’s annual art festival, SPARKcon. The month leading up to SPARKcon 2014 was a mad dash of perfecting the graphics and physics equations of my DiMo: Particles display. After a wonderful w…
thumbnail for 'Make a Kimotion!'


Check out Ping! I created it for my team’s booth at Red Hat Summit 2015 (Red Hat’s huge annual conference), to promote Access Labs. It’s a 1-4 player pong clone with special powers. It’s Web-based, so you can play it right this minute. Our booth had a quartet of USB gamepads, bu…
thumbnail for 'Ping'

Naming Names - Anonymity is Dead

There are only two hard problems in computer science: cache invalidation, naming things, and off-by-one errors. Phil Karlton, but I can't find a name for the original source... Contriving names for things is so commonpla…
thumbnail for 'Naming Names - Anonymity is Dead'

DiMo: The Deconstruction of Falling Stars

Imagine a solitary blue dot. Unless you let your imagination run away with itself, this is going to be a pretty boring dot. Now, imagine a second, larger dot (you can pick the color). Red, nice choice! The scene is now slightly more interesting, since now you’ve got two dots to…
thumbnail for 'DiMo: The Deconstruction of Falling Stars'

Particles and π - DiMo Comes to Life

A player walks up Fayetteville St in Raleigh, North Carolina. SPARKcon has begun, and dozens of artists are strewn along the street, hard at work creating elaborate chalk art on the asphalt. A light rain is falling, and some artists are holding umbrellas over their work, some hav…
thumbnail for 'Particles and π - DiMo Comes to Life'