You Found the Odin Corner

Well spotted. This page isn't linked anywhere obvious, which felt appropriate for a language as understated as Odin. No fanfare, just a few things I've built with it.



Games and Toys

As a contract developer, my day job usually involves SQL, Python and Go API development. It's great, and I get to solve real business problems, but I also do programming for fun. And that's where Odin really shines. If you look at my Toys page, you'll see I'm forever experimenting with technologies, especially browser-based ones. For a while now, I've been leaning heavily into the WebAssembly space, and not just for games, but for work too. Think data visualisation, for example, like heatmaps. So while I do have fun making these, it's also how I build skills for my "real" job.


Odinix

A reimplementation of Jonix, my original JavaScript Xonix-style block puzzle game, rebuilt from the ground up in Odin and compiled to WASM.


Odin Particles

A particle system rendered entirely with Odin compiled to WASM, pushing thousands of particles through the canvas each frame.


Odin Maze Solver

Uses Odin compiled to WASM to solve mazes visually. Watch the solver navigate a variety of maps in real time as it works its way toward the exit.


BeesBears

An old-school tower defense game built in Odin and compiled to WebAssembly. Defend the hive against waves of bears: place and upgrade towers, manage resources, and survive as long as you can. Supports single game and infinite waves modes.


Destroids

An asteroids-style arcade game built in Odin, using Batchiness to keep canvas rendering fast by batching every draw call into a single frame buffer instead of crossing the WASM/JS boundary for each one.


Tjorra

An endless 2D hill-climb driving game with real spring-damper suspension physics and procedurally generated terrain, written from scratch in Odin and compiled to WebAssembly with zero image or audio assets, using Batchiness for canvas rendering.



Libraries

I really enjoy Odin development, and I noticed I kept writing the same code over and over for each new project. So I made these libraries to help myself out. I've open sourced them in case other folks interested in using Odin for web development want to use them too, or just want to take a peek and grab the bits they need.


OdinDom

A WebAssembly library that bridges Odin and the browser: DOM manipulation, an HTML builder, and canvas drawing primitives, all without JavaScript. Since WASM can't touch JS objects directly, it uses a handle-table system to reference them safely, plus a batched command system for efficient canvas rendering.


Batchiness

A compact library extracted from OdinDom, focused purely on fast Canvas rendering. Every WASM-to-JS call has a cost, so instead of issuing draw calls one at a time, it records a full frame into a single buffer and flushes it in one boundary crossing. It's what powers the rendering in Destroids.


Compilers

Two bigger Odin projects: full programming-language compilers that run entirely in the browser, compiling source to WebAssembly and executing it on the same page.


WasmPascal

An in-browser Pascal IDE and compiler written from scratch in Odin. Write standard Pascal, hit Run, and watch it compile straight to WebAssembly bytes and execute immediately. Try it live at wasmpascal.com.


WasmCoffee

The sibling project for Java developers: an in-browser compiler written in Odin that compiles Java-inspired source directly to WebAssembly (Wasm-GC) bytecode. Try it live at wasmcoffee.com.


Books

These were written for me, by me, to help me learn and understand Odin a bit better. As I've been experimenting with the Odin programming langauge, I documented my findings and then turned them into small, self-contained "books". I don't really know what to call these, I mean, they kind of are e-books, but then again, what do I know?


Odin and Me

The first small book is Odin and Me, that teaches some parts the Odin language through a set of small console programs. You build a temperature converter, a word-counting tool, ASCII figures, a number-guessing game, and a DOS-style screen from ANSI escape sequences, ending with Muninn, a box-drawn, menu-driven console note-keeper.


Odin't Know That

A second book, Odin't Know That, takes a build-along approach to a native cross-platform desktop game. You build Sköll, an endless runner, using nothing but Odin and its bundled RayLib, one source tree, one binary for Windows, macOS and Linux.


Yo Odin

The third book, Yo Odin, constructs an Asteroids-style game in Odin and WebAssembly, including its own batched-Canvas2D renderer and a small web server, with zero image or audio assets. You can also play the finished game right in your browser.