Playable Project

A kilometer of wheat stands between your T-34 and the Tigers.

Kursk: Steel & Thunder is an arcade war game set at Prokhorovka on 12 July 1943. Command a T-34, fly an IL-2 Shturmovik, or go over the top with a Guards rifle company. It runs in the browser on a desktop or a phone.

A Tiger tank crosses a hilltop meadow of wildflowers, backlit by a low golden sun, with the river and the steppe behind it.
A Tiger on Hill 252.2 in the opening cinematic, backlit by the morning haze.
Roles
Tank, plane, rifleman
Sectors
12 missions
Machines
11 vehicles, 3 aircraft
Voice and sound
118 generated clips

Three ways into the same battle

The map is one piece of the Kursk salient, about two kilometers across. The Psel river bends along one side. A railway embankment cuts across the middle. Hill 252.2 rises at the far end. In between are wheat fields, sunflower parcels, a whitewashed village, a church, a grain elevator, a windmill and the Oktyabrsky state farm. Artillery keeps landing on all of it.

T-34-85, armor

Four sectors from the wheat fields to Hill 252.2. Close the range fast, because the German guns out-reach yours.

IL-2 Shturmovik, air

Rocket a panzer column, knock out an 88 mm flak nest, blow up an ammunition train, and drop PTAB bomblets on a Tiger company.

Rifleman, infantry

Cross the wheat after the barrage, clear the trench, fight house to house, hold the embankment, then take the hill.

Armor works the way a tank crew would worry about. A shell hitting a sloped plate at an angle has more steel to push through, and a shallow hit can bounce off with a clang. Penetrating hits can start an engine fire, jam the turret, break a track, wound the gunner or set off the ammunition, which throws the turret into the air. The enemy tanks aim with human error that tightens as they settle in, lead moving targets, and turn their thick front armor toward you.

Each time you deploy, you meet the person you are playing: a tank commander from Yaroslavl, a paratrooper fighting as a rifleman, an Il-2 pilot who promised his mother he would come home. They are composite characters, and each one carries a real account from the battle, such as the T-34 crew that rammed a German tank on 12 July or the Il-2 pilot who flew on with one eye.

Your side fights too. Friendly T-34s, IL-2 flights and rifle squads move with you. The infantry bound forward in pairs, take cover behind ruins and sandbags, throw grenades and Molotovs, and charge the last forty meters with a shout. Buildings collapse into ruins. Trees fall. Every crater and scorch mark stays on the ground for the rest of the sector.

Learn the controls

Pick a role on the title screen, then a difficulty. Each sector opens with a painted briefing. The opening cinematic runs once, and you can skip it.

T-34-85
W A S DThrottle and steer
Mouse, left buttonAim the turret and fire the main gun. A marker shows where the shell will land
Right button or VGunner sight, with a zoom on the mouse wheel
1 / 2Armor-piercing or high-explosive shells
Space / E / RCoaxial machine gun / smoke screen / field repair
IL-2 Shturmovik
MousePoint where you want to fly. The plane banks and turns toward it
W S / A D / Q EThrottle / roll / rudder
Left / right buttonCannons / rockets
1 / 2, then SpaceChoose a FAB bomb or PTAB cluster bombs, then drop
Rifleman
W A S D, ShiftMove, sprint
C / ZCrouch / go prone
Left / right button, RFire / aim down the sights / reload
G / F / TGrenade / Molotov / anti-tank grenade

On a phone or tablet. Put your left thumb anywhere on the lower left to get a stick. Push it all the way forward to sprint. Drag anywhere on the right to look, aim the turret or steer the plane; a quick swipe turns faster than a slow one. The fire button aims too while you hold it, and the sights ease onto targets when you fire. Double-tap to aim down the sights or open the gunner sight. Buttons show what you have left and the reload. The game works held upright or sideways.

Wheat, steel and smoke

A T-34 tank in the wheat fires toward German armor while shells burst in the field ahead.
Closing the range. Shell bursts throw dirt and leave craters in the wheat.
A T-34 drives toward the camera on a dirt road between wheat and sunflowers, with dust and smoke rising behind it.
The last shot of the opening cinematic: your T-34 comes down the road toward the German line.
Three IL-2 ground attack planes fly low over the fields as an artillery barrage lands below.
An IL-2 flight crosses the line as the barrage lands.
A Soviet rifleman on a dirt track between poppies and sunflowers watches shells burst near the German line, where a tank burns.
Infantry mode. The barrage lands on the German line while a knocked-out tank burns.
A whitewashed thatched cottage and birch trees in a field of wildflowers.
The village. Houses and trees come from Blender, with photo-based plaster, thatch and bark up close.
The game on two phone screens: upright in a T-34 with touch buttons, and sideways in an IL-2 with a thumb stick.
On a phone, held upright or sideways, with a thumb stick and a button set for each role.

Build notes: a first draft, then a rebuild

Read the original Kursk article, published October 6, 2026.

The machines. The tanks, guns, trucks and planes start as procedural WWII models from the open-source Muster archive. A build step runs them in a headless browser, bakes their materials, splits off the turrets, gun mounts and propellers so they can move, and simplifies each one into four levels of detail with meshoptimizer. The game loads a compact binary file for each machine instead of rebuilding it every time.

The steppe. The ground is a height map shaped by the layout of the battle: roads, the rail embankment, the river cut and the hill. Wheat and grass are drawn as clumps of cards, tens of thousands at a time, all placed on the graphics card. The same trick scatters pebbles, poppies, cornflowers, chamomile, sunflowers that turn to face the sun, and brass shell casings near the craters. Tanks flatten the wheat where they drive. The village buildings, trees, rails and trenches were modeled in Blender, and photo-based textures from ambientCG add plaster, thatch, planks, bark and soil up close.

Smoke and fire. Explosions, dirt, fire, dust and smoke come from one particle system drawn at half resolution with soft edges where it meets the ground. A sky shader paints the clouds, and a sun-shaft pass pushes light through the smoke. A sharpening pass at the end keeps distant detail crisp.

Sound and voice. Cannon fire, engines, tracks, flak, planes, the barrage and the radio chatter were generated with ElevenLabs. Sounds travel at the speed of sound, so a distant gun flashes before you hear it. Voices on the radio go through a filter chain that sounds like a field set, and the music ducks under them.

Phones. The whole battle, down to every shader, is prepared behind the loading screen, so the first explosion does not stall the game. The game watches its own frame rate and trades resolution first, then grass and flower density, to stay smooth.

Changelog

v2.2: who you are, and wheels that turn. Every deployment now introduces the soldier, tank crew or pilot you are playing, with a short story and a real account from Prokhorovka or the Kursk air battle. Road wheels, sprockets and track links now move with the tank, each side at its own speed when you turn. Touch controls got live ammo counts, a reload ring, aim assist, a single stance button and grenade picker, and double-tap to aim. Upright phones get camera framing of their own. Grass and flowers no longer shuffle as you walk, and tall sunflowers step aside between the camera and your tank.

v2.1: phones and speed. Touch controls for all three roles, layouts for upright and sideways phones, shaders and music prepared during loading, about 40 percent fewer triangles on the highest setting, automatic detail scaling, leaf canopies on the trees and cloth texture on the uniforms.

v2.0: the rebuild. A new engine with a haze-and-light pipeline, the Blender village and railway, photo-based textures, angled armor and critical hits, AI tank crews, an IL-2 with rockets and PTAB bombs, a new infantry mode with squads and grenades, twelve sectors, an opening cinematic and victory and defeat scenes, and generated sound, music and voice.

v1.0: first draft. The original browser prototype. It is kept in the project folder as the legacy draft.