20HexBenchHexBench

Every part wires into the next. Follow the brass and you build HexBench.

⬡ Built on Open Source

HexBench is fast because of other people's work.

I didn't write the engine, the renderer, or the netcode. They did, in Rust, and gave it away for free. Every one of them is below. Go look at what they built. Star it. Back it if you can.

Each repo has a star button, and most have a Sponsor button right at the top. That's the truest way to support these projects, and better than anything I could funnel for them.

These licenses cover the dependencies named below. HexBench itself remains proprietary and closed-source.

The Engine & Renderer

I didn't write a game engine. These people did, and gave it away.

Bevy

MIT / Apache-2.0
↳ the benchtop

The engine. The whole table is one ECS world running on Bevy.

Source & support →

wgpu

MIT / Apache-2.0
↳ the crank-gears

The GPU layer underneath. Speaks Vulkan, Metal, and DX12 so HexBench doesn't have to.

Source & support →

Vello

Apache-2.0 / MIT
↳ the lantern-lens

GPU vector rendering. The reason lines, fills, and tokens stay crisp at any zoom.

Source & support →

egui + bevy_egui

MIT
↳ the control panel

The in-app tooling and inspector. Immediate-mode, fast, no ceremony.

Source & support →

ab_glyph

Apache-2.0
↳ the engraving tips

Glyph rasterizing. Every letter you read on the table.

Source & support →

image

MIT / Apache-2.0
↳ the canvas roll

Loads and decodes every format your maps and tokens show up in.

Source & support →

Multiplayer

Real-time, free-form, and in sync. This is the hard part, and I didn't solve it alone.

renet2

MIT / Apache-2.0
↳ the signal-cables

The netcode. Reliable and unreliable channels that keep everyone at the table on the same board.

Source & support →

postcard

MIT / Apache-2.0
↳ the tagged notes

The wire format. Tiny, fast binary serialization for everything that crosses the network.

Source & support →

The Living Rules

Game systems are scripts, not hardcode. So you can read them, fork them, and change them.

Rhai

MIT / Apache-2.0
↳ the open rulebook

The scripting engine. Rules and systems run as scripts you can actually open and edit.

Source & support →

Sound

Dice, ambience, the noise a table makes.

rodio

MIT / Apache-2.0
↳ the tuning bell

Audio playback. Every sound at the table goes through it.

Source & support →

Foundations

The quiet crates that hold everything else up. You never see them. Nothing works without them.

Tokio

MIT
↳ the clockwork motor

The async runtime under the server. Many connections at once, no sweat.

Source & support →

Serde

MIT / Apache-2.0
↳ the drawers

Serialization, everywhere. The backbone of saving and loading anything.

Source & support →

bytemuck

Zlib / MIT / Apache-2.0
↳ the vise

Safe byte-level casting for the data that gets shipped to the GPU.

Source & support →

fastrand

MIT / Apache-2.0
↳ the dice tray

Fast randomness. Dice rolls and the procedural bits.

Source & support →

Data

Where the heavier persistence lives.

SurrealDB

BSL 1.1 · source-available
↳ the filing vault

The database behind larger persistence. Source-available under BSL, and it turns into Apache-2.0 with time.

Source & support →

This Website

Even the page you're reading is built the same way. Rust, no framework, no tracker.

Zola

MIT
↳ the pinned blueprint

This whole site is a static Zola build. Rust in, plain HTML out. No JavaScript framework.

Source & support →

Inter

SIL Open Font License
↳ the nameplate engraving

The body typeface, by Rasmus Andersson. Self-hosted right here, no CDN, nobody watching you read this page.

Source & support →

Cinzel

SIL Open Font License
↳ the brass nameplate

The display typeface on every heading, by Natanael Gama. Self-hosted too. Roman inscriptions, basically.

Source & support →

About the AI part

Since it matters and people ask: I use AI to help me build HexBench, and players can use AI at their own tables if they want it. That's my call and theirs. It has nothing to do with the projects above. Crediting them here does not mean any of them endorse HexBench, me, or how I work. I build on what they made, and I'm not going to pretend otherwise.

About paying them back

When HexBench makes enough to live on, I want to send money back to these projects. I'm not going to promise a number I can't hit yet. The honest thing I can do right now is point you at them and tell you they're worth your stars and your support.

Almost all of this is MIT or Apache-2.0, the most permissive open source there is. One piece, SurrealDB, is source-available under the BSL. HexBench only embeds it to store its own data, which its license expressly allows, and it turns into Apache-2.0 in 2029. I flag it instead of lumping it in.

None of this is sponsored. Nobody paid for placement. This is just the truth about what HexBench runs on.