☄️ ️ I make libraries ☄️ ️
You might know me from my commerical work or one of the talks I gave, but I spend my free time making libraries to help developers. If you'd like a chat, you can find me on Twitter or in my Discord server.
| Scribble Powerful, fully featured text renderer |
Input Comprehensive cross-platform input |
| Chatterbox Narrative scripting tool |
Vinyl Modular audio playback |
| Clean Shapes Antialiased primitive drawing |
DoLater Deferred function execution |
| dotobj Comprehensive .obj importer |
Bulb 2D lighting and shadows |
| SNAP Struct and array export/import and utilities |
BIG Integers Big integer handling |
| HMAC-Secured Savedata Featured on the YoYoGames tech blog |
A Message from Amalthea Procedural audio toy |
| gamepad_last Gamepad equivalent of keyboard_lastkey |
Wave Simulation Simple shader-based wave effect |
| Computational Geometry Very old example! |
Kawase Blur Kawase dual filter blur example |
| Scramble Graphics obfuscation tool |
LUT Commonly used for colour grading |
| Carton Buffer packer/unpacker |
Blurs Two generic blur shaders |
| Quaternions Simple quaternion library |
Matrices Common matrix functions |
| Shockwaves Shader-based distortion effect |
Delaunay Triangulation Includes pathfinding |
| dFdx/dFdy/fwidth GL_OES derivatives for GLSL ES |
gl_FragDepth How to enable gl_FragDepth in GLSL ES |
| Cottonwool Garbage collected surfaces |
iota Miniature fixed timestep library |
| Reddit / Twitter / YouTube Integration OAuth frameworks for social networks |
Awkward empty space |
I'm currently working on:
- Bug fixes for Scribble
- Bento