Mark Greene ffb5a1f9c8 Feature: Animated legendary camouflages
Legendary camo add-ons now play their garage animations in the Tankopedia viewer, and a new menu next to the camo column triggers their battle reactions.

**Export (`model.glb` / `skins/[skin].glb`)**
- Customization parts export skeletons, skin weights and one clip per `.anim` motion file (`core/blitzkit/skinAnimations`)
- Sockets bound to skeleton joints follow their joint
- Action lists and scenario graphs are carried in glTF extras
- Part batches with no LODs (`lodIndex` -1) are now exported, fixing meshes that were missing entirely (e.g. the Tiger II cat body, the BDT-5A engine rings)
- Base tank models are unchanged

**Viewer**
- A runtime plays the clips and drives state switchers, action lists and the game's scenario graphs (a small interpreter for the node types the camos use)
- Camo parts render as primitives so their bones can animate
- Garage animations play once rather than looping, so the camo settles

**Animation menu**
- Floats left of the camo column when the selected camo has triggerable animations
- Icon buttons use the game's own white icons, served from `/icons/skin-events/[event].webp`
- Idle replays the garage animation
- Triggers: Shoot, Kill, Take damage, Damage enemy, Ricochet / No penetration, Start moving, Consumable, Reload. Only events that actually animate get a button
- Buttons are disabled while a triggered animation plays; triggering cuts any garage animation short

All legendary skin files together grow from 1.32 GB to 1.35 GB (+2.4%), almost all of it in the 102 animated camos.
2026-10-20 18:48:35 +13:00
2026-10-03 22:10:10 -05:00
2026-07-31 13:43:53 -05:00
2026-10-10 16:41:57 -05:00
2026-08-12 11:46:45 -05:00
2026-08-06 19:37:07 -05:00
2024-08-27 16:19:59 -05:00
2026-08-11 09:45:17 -05:00
2025-01-16 20:48:29 -06:00
2026-10-09 18:13:22 -05:00
2026-10-03 14:18:59 -05:00
2026-10-09 18:01:10 -05:00
2026-10-04 13:37:21 -05:00
2025-10-22 18:42:51 -05:00

BlitzKit

Your Blitz experience, elevated. https://blitzkit.app/.

Developing: Prerequisites

There's a few things you'll need to get started. If this is your first time working with BlitzKit, it's completely safe to ignore all optional prerequisites below to get things running as quickly as possible.

Bun

Bun is the package manager and runtime that BlitzKit uses.

Ideally, you should also uninstall Node.js if you have it installed to avoid any cases where Node.js is used to run code instead of Bun which happens in some cases. But, this is not required and is unlikely to cause issues.

Protocol Buffer

BlitzKit uses Protocol Buffer's protoc CLI to generate efficiently packed data structures to serve data to clients in place of JSON.

World of Tanks Blitz

You will need a local installation of World of Tanks Blitz for BlitzKit to build off.

aria2 (Optional)

If you plan to use BlitzKit's client-management CLI for BlitzKit Previews, you will need to get aria2 to speed up your downloads.

libarchive (Optional)

If you plan to use BlitzKit's client-management CLI for BlitzKit OpenTests, you will need to get libarchive to keep your downloads completely in-memory.

Linux (Optional)

All work on BlitzKit is done on Linux and macOS. It is theoretically possible to work on Windows; please feel free to try and share your discoveries with us!

Developing: Setting Up

Start by cloning the repository and changing directories.

git clone https://github.com/blitzkit/blitzkit.git
cd blitzkit

Note

There is a closed source submodule under packages/closed that you can safely ignore. This sole purpose of this submodule is to provide dvp.ts, a proprietary Wargaming game asset tree compression tool. You will not need this at any point.

Then, download the dependencies with Bun.

bun install

Finally, compile the proto files into TypeScript.

build build-protos

Developing: Environment

Go through the different packages in the packages directory and clone their respective template.env's to .env files. Follow the instructions in the .env files to fill them out as much as you can.

Developing: Running

Launching the website is as easy as running the dev script.

bun dev

If you ever make a change to any proto file, make sure to rebuild them.

build build-protos
Languages
TypeScript 96.3%
Astro 3.1%
GLSL 0.4%
CSS 0.2%