We make software by hand.

The Handmade Network is a community of programmers inspired by Handmade Hero. We love programming, we like to reinvent the wheel, and we like understanding how our software works at a low level.

In a software industry dominated by bloat, waste, and slop, we go in the opposite direction. We care about our craft, we care about how computers actually work, and we take pride in writing truly high quality software. After all, someone needs to show the rest of the software industry what computers are capable of.

Featured
Recent
News
Image

Small update on Tabula, my static site generator - of course, it is all handmade - it is fairly featureful for a blog, meaning I am able to transport my old ghost blog content over entirely, with no changes, fudges or workarounds needed. Even the longer, feature heavy posts are being generated in 50-100µs. At this rate, Tabula should be able to generate about 1000 blog posts in the typical blink of an eye in a worst case scenario (100ms according to duckduckgo) :coolcat1:

I doubt I will reach 1000 blog posts written in my lifetime, so I'm cool with that :Crazy_Laugh:

View original message on Discord

Ported the dynamic collision detection and added ray cast shadows and flare projectiles:

View original message on Discord

Spent the last ~day and a half writing a static site generator with no libraries in Jai

Still have some quirks with markdown parsing to deal with, but happy with how it is shaping up in such a short time

Bonus feature; It has BYOCSS

View original message on Discord
Image

Our Paint v0.5a is released!

  • LZMA Compression
  • Better X11 input device detection
  • Much more stable in large canvases
  • And MORE!

Get Our Paint on:
https://www.wellobserve.com/index.php?post=20260306205227
https://chengdulittlea.itch.io/ourpaint/devlog/1450204/our-paint-v05a-is-out-now

View original message on Discord

fixed a bunch of bugs in my aarch64 -> aarch64 jit this past week.
i can now run several complex programs without crashing, including Preview.app (showcased in the video). performance definitely needs some work in the long run, but for now, it's good enough :happy_triangle:

View original message on Discord

Updated the brush cursor outline to be the inverse of the canvas colors so you can see it better. Also color dropper is now on the side instead of being so big on the canvas. You can get the latest release here!
https://makinggamesinc.itch.io/spixl-pixel-art-editor/devlog/1445612/latest-release

View original message on Discord

Finished up porting the columns feature and interactive map editing:

View original message on Discord

I recently implemented the Amanatides & Woo algorithm for voxel ray casts. I wrote a small visualization to help me understand how it works. The horizontal green line shows the nearest boundary for the lines of Y and the red line shows the nearest boundary for X. The green cube is where the white vector would eventually intersect the green line. Same for the red cube and red line. The intuition behind the algorithm is that you always move in the direction of the nearest cube, so if the green cube were closer than the red cube with the green line above, then we'd increase +Y. If the red cube were closer and the red line to the right, then we'd increase +X.

View original message on Discord

Improved PBR maps, lighting and render-debug modes:
Strengthened roughness and AO maps
AO map darkens additive ambient lightings
Specular reflectance additive over rough surface lighting to give a more wet-over-rough feeling
Optimized GGX and added Phong, Blinn and Lambert shading modes
Added toggles for individual maps (AO, roughness, normal)
Added debug modes for maps and overall lighting
Added HUD lines for all render settings

View original message on Discord

I am prototyping a chat program. It sort of works.

View original message on Discord
Image

finished my gamejam project, a homebrew game for the sega dreamcast
https://novicearts.itch.io/elysian-shadows-lost-in-transmission
This one was a doozy from a programming perspective. I implemented alot of RPG mechanics from the groundup (enemy AI, items, map loading, etc etc). Ended up feeling like I was coding a zelda game

View original message on Discord

making progress on an rpg I'm making for a game jam

View original message on Discord

(oops, reposting because used wrong channel for previous message)
Single-file C header for doing 128-bit math operations for msvc/clang/gcc.
Includes full 128-bit signed & unsigned division, handling 128-bit quotient and remainder values.
Compiles to mostly branchless code with msvc & clang.
https://github.com/mmozeiko/overflow/blob/main/x128/x128.h

View original message on Discord

if you want 32-bit or 64-bit int to hex string in simd (sse2, ssse3, avx512, neon, wasm and rvv) or just in plain C swar, no loops: https://gist.github.com/mmozeiko/68c2d1ce466422b506b2c86e4f603f53

View original message on Discord

PBR shading and textures with diffuse, roughness, AO and normal maps.
Also made the lighting from the torch as a proper point light with a position around the player, and then gave it some breathing movement and a more appropriate lighting color.

View original message on Discord

Finally got around to improving the lighting, with a more appropriate and dramatic torch lighting. Before it was constant light intensity per scanline (horizontal for walls/ceiling and vertical for walls). Now is more appropriate spherical attenuation around the player position (as it was in the original Odin project way back then).
This makes it look more like an actual 3D ray casting/tracing rendering, as the lighting behaves as though there were camera-correct ray directions per-pixel.
Also then added some flame-like light flickering to get more of the feeling of walking around with a tourch.

View original message on Discord

Wanted to see if it would be possible to free the camera to look up and down, while still keeping it only pseudo-3D and still casting only a single horizontal line of rays across the screen. Of course it wasn't initially, because the vertical symmetry was heavily relied on - only the top half of the screen being computated with the bottom half using mirrored results. But ultimately, I've found that it is absolutely still possible (albeit not necessarilly optically correct though still looks reasonably plausible), by computing where the horizon line should go when looking up or down, and computing the full height of the screen with above and below the horizon line computed with respect to where it goes. Performance dropped a bit, but not by that much really, all things considered. CUDA kernel now uses the full screen grid though, as opposed to the half that it previousely used to.

View original message on Discord

Another big update to the Ray Cassting dungeon crawler project - removing the use of a RGB-float buffer and writing directly into u32 pixels more than quadruppled the performance on the GPU, and is now easilly around 2000-3000fps(!) Also added debug modes for Untextured, Depth, UVs, and Mip-Levels, and some of them on the CPU even get to 1000fps. So unsurprisingly the main bottleneck is the software texture filtered sampling, on the CPU (no SIMD is used, and all on a single thread). But GPU has no issue at at all, using the same software texturing code (no hardware texture units used). Can even be above 200FPS on my ultra-wide 5Kx2K screen.

View original message on Discord

Several years ago I wrote a ray-casting dungeoun crawler completely from scratch in Odin, that does everything including rendering (softare texturing with bi-linear filtering, mip-mapping and sampling) manually on the CPU (a VERY old Ryzen 1.2) on a single thread with streightforward code (no SIMD).
I recently brought it back to life with more recent version of Odin, and it runs about the same as it did, at a little over 30fps at less than 640x480.
UPDATE: Just now I looked up what optimization to set for Odin compilation, and using -o:speed Jumps it to over 300fps when not moving, and still over 200fps when moving (not shown in this video but posted another below). Also getting around 60fps at much higher resolution - cudos to Odin(!).
More recently I decided to try to back-port it to C++ using my SlimEngine base project, with an aim to later put the same rendering code on CUDA like I did with SlimTracin.

After some simplification and optimization, at the same resolution and on the same CPU, still single threaded and unvectorized, it now runs at over 200fps (and over 300fps on my work laptop).
I then got it working also on CUDA (RTX 4070) and on the same computer, and there it now runs over 600fp (and at 5K it runs over 60fps). Same code can be toggled between CPU or GPU at runtime (just like SlimTracin XPU).

Still doing the actual 2D ray-casting and generating vertical and horizontal rendering data on the CPU and that is resolution dependant.
The GPU (if/when used) is mostly just doing the software texture sampling and shading, so there's still room to improve, but pretty happy with the result so far 🙂

View original message on Discord
Image

Small update on Tabula, my static site generator - of course, it is all handmade - it is fairly featureful for a blog, meaning I am able to transport my old ghost blog content over entirely, with no changes, fudges or workarounds needed. Even the longer, feature heavy posts are being generated in 50-100µs. At this rate, Tabula should be able to generate about 1000 blog posts in the typical blink of an eye in a worst case scenario (100ms according to duckduckgo) :coolcat1:

I doubt I will reach 1000 blog posts written in my lifetime, so I'm cool with that :Crazy_Laugh:

View original message on Discord
Image

Ported the dynamic collision detection and added ray cast shadows and flare projectiles:

View original message on Discord

Spent the last ~day and a half writing a static site generator with no libraries in Jai

Still have some quirks with markdown parsing to deal with, but happy with how it is shaping up in such a short time

Bonus feature; It has BYOCSS

View original message on Discord
Image

Our Paint v0.5a is released!

  • LZMA Compression
  • Better X11 input device detection
  • Much more stable in large canvases
  • And MORE!

Get Our Paint on:
https://www.wellobserve.com/index.php?post=20260306205227
https://chengdulittlea.itch.io/ourpaint/devlog/1450204/our-paint-v05a-is-out-now

View original message on Discord

fixed a bunch of bugs in my aarch64 -> aarch64 jit this past week.
i can now run several complex programs without crashing, including Preview.app (showcased in the video). performance definitely needs some work in the long run, but for now, it's good enough :happy_triangle:

View original message on Discord
Image

Got a little update on my text editor I've been making for large projects and large files!

  • It's now called Photon (cause it's as fast as light lol)
  • The core text editing system has been completely rewritten to be fully threadsafe and lockless
    • Thanks to @starfreakclone for the help! Uses a similar data structure to his editor Fred
  • It is now highly parallelized and even faster!
  • It now support projects!
  • In the demo below I have a copy of Unreal Engine's source code loaded as the project, 43,000 files (that includes Engine/Source/ThirdParty)
    • I can navigate the source tree to a file and load it instantly
    • I can fuzzy search for a filename in all the project files and load it instantly
    • The feature I'm most proud of, you can string search all 43k files in less than 16ms, giving you realtime, instant search feedback, updates instantly as you type
    • You can jump to any file and location instantly!
    • At the end, just for extra flare, I open a 1GB json file, which loads in about half a second, you can jump around in it, and search the 1GB file at realtime instant speeds
View original message on Discord

Updated the brush cursor outline to be the inverse of the canvas colors so you can see it better. Also color dropper is now on the side instead of being so big on the canvas. You can get the latest release here!
https://makinggamesinc.itch.io/spixl-pixel-art-editor/devlog/1445612/latest-release

View original message on Discord

I’ve been building a custom C + LLVM based language called Ura just for fun.
I finally got it to a point where it can handle full networked systems.
I put together a TCP client-server chat as a milestone.
There’s a unique satisfaction in watching two terminals talk to each other using a language you created from scratch especially moving from simple parsing to actually managing things like process IDs and sockets.

The goal for the syntax was to keep it close to the metal but make it a lot more enjoyable to write.

Repo: https://github.com/mohammedhrima/ura-lang/

View original message on Discord

Finished up porting the columns feature and interactive map editing:

View original message on Discord

I recently implemented the Amanatides & Woo algorithm for voxel ray casts. I wrote a small visualization to help me understand how it works. The horizontal green line shows the nearest boundary for the lines of Y and the red line shows the nearest boundary for X. The green cube is where the white vector would eventually intersect the green line. Same for the red cube and red line. The intuition behind the algorithm is that you always move in the direction of the nearest cube, so if the green cube were closer than the red cube with the green line above, then we'd increase +Y. If the red cube were closer and the red line to the right, then we'd increase +X.

View original message on Discord

Improved PBR maps, lighting and render-debug modes:
Strengthened roughness and AO maps
AO map darkens additive ambient lightings
Specular reflectance additive over rough surface lighting to give a more wet-over-rough feeling
Optimized GGX and added Phong, Blinn and Lambert shading modes
Added toggles for individual maps (AO, roughness, normal)
Added debug modes for maps and overall lighting
Added HUD lines for all render settings

View original message on Discord

I am prototyping a chat program. It sort of works.

View original message on Discord
Image

finished my gamejam project, a homebrew game for the sega dreamcast
https://novicearts.itch.io/elysian-shadows-lost-in-transmission
This one was a doozy from a programming perspective. I implemented alot of RPG mechanics from the groundup (enemy AI, items, map loading, etc etc). Ended up feeling like I was coding a zelda game

View original message on Discord

Hosting a website from home using no operating system using a networking stack I wrote from scratch and a RMII/MDIO driver I also wrote from scratch. http://gsan.whittileaks.com. Its HTTP only so make sure your browser does not automatically add https:// in front. Come break it 🙂

Full post here https://handmade.network/forums/wip/t/9116-lneto_-_heapless_userspace_networking_stack_in_go

View original message on Discord
Image

TL;DR:

  • The first-ever Handmade Network Expo will take place on June 6, 2026
  • Join us in re-watching Handmade Hero! (starting February 7, 2026)
  • A few thoughts about Handmade's position in the industry

We are very excited to announce the Handmade Network’s first-ever in-person event: The Handmade Network Expo!

2025 was a quiet year for us where we focused on the fundamentals of the community: jams, projects, a healthy community, and interesting discussions. But we love seeing other people in person, and were sad that we didn’t have the opportunity last year. So we decided it was time to bring people together again, and with our renewed focus on real, tangible Handmade software, a day of demos seems like the perfect fit.

So: Join us in Vancouver, BC on June 6, 2026, for a day packed with demos, discussion, socializing, and celebrating the achievements of the talented programmers of the Handmade community!

(By the way, don't miss more news at t

Image

Hello Handmade Network, and happy new year! 2025 was a relatively quiet year for us where we focused on just running our jams and building relationships across the Handmade community. But we’ve got lots of plans for 2026 and we’ve already been at work kicking them off!

TL;DR:

  • We are finally launching the Handmade Software Foundation and using it to support the development of more Handmade software
  • We’re planning an in-person gathering for this spring, more details forthcoming
  • We’ll be doing two jams as usual, dates TBD based on other events

Launching the Handmade Software Foundation

A few years ago we announced that we were creating a nonprofit to support the development of Handmade software. Well, it took some time, but I am pleased to announce that the Handmade Software Foundation is now officially a 501(c)(6) nonprofit corporation.

What does this mean? It means we are a nonprofit under the category carved out for business leagues, chambers of commer

Happy fall to everyone in Handmade! I hope you had a wonderful summer, and that you spent the perfect amount of your summer writing amazing Handmade software. Ideally you were actually outside enjoying the sun and the air while doing this, and ideally you climbed a mountain or jumped in a lake afterward—but if this is wishful thinking, then I hope you at least have some cool software to show for it.

Fall is a wonderful season for Handmade, because it means that we get to do another Wheel Reinvention Jam. And this is our fifth annual WRJ!

Wheel Reinvention Jam, September 22 - 28, 2025

For me, the Wheel Reinvention Jam is one of the most important things we do as a community, because it reminds us that wheels do need to be reinvented, and that even the most ambitious projects need to start somewhere. I wrote this on the jam page, but whe

It's June 9, and that means that the X-Ray Jam has officially begun!

image.png

Participants have one week to make a project that exposes the inner workings of software. If this is your first time hearing about it, it's not too late to participate! Head over to the jam page to find more information about the theme, submission instructions, and inspiration to get you started.

After the jam, we plan to do another recap show like usual. The show is tentatively scheduled for Sunday, June 22, one week after the conclusion of the jam, but stay tuned for official confirmation.

We look forward to seeing all the updates this week!

-Ben

The official page for the X-Ray Jam is now online! Check it out, invite your friends, and join us on June 9 to dig into how software works.

image.png

The premise of the X-Ray Jam is to point an X-ray at software and see how it works "on the inside". It's a riff on the Visibility topic from previous years and a refinement of what made that topic interesting.

See, the original concept of "visibility" was not about "visualization"—the point was to make visible the invisible workings of the computer. To "visibilize" it, not necessarily "visualize" it. Obviously I love what the community chose to submit for those jams, but they admittedly did not stick to that topic very well. Even my own submission to the first Visibility Jam was a tool for automatically tracing a network, not really a tool to "make the pac

Hello Handmade! 2025 is moving right along, and Handmade projects along with them. But first:

Introducing the X-Ray Jam!

We are doing two jams this year, and the first is a new jam we’re calling the X-Ray Jam. This is a riff on the “visibility” topic from years past that I’m very excited about.

In short: point an X-ray at your software! The purpose of the X-Ray Jam is to explore our systems and learn more about how they work on the inside. It combines the best parts of the Visibility and Learning jams into one. Here’s the details:

  • When: June 9-15, 2025
  • Topic: X-ray some program and figure out what's happening inside.
  • You submit: A program or tool, like previous years, or a blog post, like in the Learning Jam.

For example, maybe you'd build a program to record and replay all the window messages received by your program. Or you'd investigate why the Windows 11 right-click menu is so slow to open. (What is it doing?!) Or perhaps you coul

Hello Handmade community! I hope your 2025 is going brilliantly so far. I have a few key updates for you to kick off the year.

Unwind is back!

I am pleased to announce that, after a bit of a hiatus, our interview show Unwind is back. Our latest episode is an interview with Alex (aolo2), a web developer turned CPU engineer whose projects are a constant inspiration. We discuss the creation of his collaborative whiteboarding app, the Slack replacement he made for a previous job, and his latest project, a lightning-fast CPU trace viewer. You can watch the episode on YouTube.

unwind_aolo2_screenshot.jpg

For this re-launch of Unwind, we’ve changed the format of the show from live to pre-recorded interviews. It’s basically a podcast now instead of a live show, and we hope this will h

I regret to announce that the Handmade Network and Handmade Software Foundation will no longer be working with Abner Coimbre and Handmade Cities going forward.

This is obviously not a decision we made lightly. Since Handmade Seattle concluded just over two months ago, we have been attempting to come to an agreement that would allow us to continue working together. Unfortunately, it has become clear that Abner’s vision for Handmade has diverged from ours, and despite our best efforts, we have been unable to reconcile our differences.

This means that the Handmade Network will no longer support, promote, or endorse any Handmade Cities conferences or meetups. We disclaim all affiliation with Handmade Cities going forward. Community members are of course still welcome to attend Abner’s events if they wish, but with the understanding that we have zero influence over any content, logistics, or attendee experience.

How did we get here?

I realize this announcement may come as

This post has been co-authored by Abner Coimbre and Ben Visness.


On November 17, 2014, Casey Muratori went live with the first episode of Handmade Hero. The show was immediately electrifying: a game industry veteran sharing his knowledge with no coddling and no compromises. But Handmade Hero gave us more than just technical knowledge—it gave us an ethos for how to program.

10 years later, it’s clear that Handmade Hero was more than just a show—it started a movement. The Handmade community has grown to encompass thousands of people sharing their knowledge on Discord, attending conferences and meetups, shipping apps, and working to fix the mess that is modern software. In a world where most programming communities are built around a particular language or paradigm, the Handmade community is an anomaly, a place where brilliant programmers of all disciplines gather to help each other make truly great software.

This past July, we

The past few months have been a whirlwind. We hosted two jams: the Visibility Jam and the Wheel Reinvention Jam, almost back to back, each with an associated recap show. (We’ll schedule them better next year!)

WRJ2024Thumbnail4.png

In between was Handmade Boston, which was a delight—I met so many wonderful people, some of whom even submitted projects for the jam. And throughout it all, we made a slew of website updates, including an overhaul to our Discord integration.

Finally, we have been working with Abner and his team recently to improve the Handmade Cities website. The Handmade Network community scoured the internet to put together [this master spreadsheet](https://doc