Skip to content
Back to my work

Case study · 2026

Steambot Chronicles Archive

What remains of a game when its official website disappears? I brought Steambot Chronicles material together in an archive, with a 3D builder to explore its vehicles.

Project resources

Why I made this archive

Steambot Chronicles has been my favourite game since childhood. Its official website is no longer online, but archived copies still preserve some of its content.

I wanted to bring that material together on a site dedicated to the game: artwork, screenshots, scans, music and credits. Fans can return to these resources, while people discovering the game have somewhere to start.

I develop and maintain the site using CorianderPHP and AI agents. I define the features and interface choices, guide the changes and check the result on desktop and mobile.

Homepage of Steambot Chronicles Archive.
The homepage introduces the game and the material available in the archive.

Building a Trotmobile in the browser

Trotmobiles are the game's customisable vehicles. I wanted to offer another way to explore them: choose parts, try colours and see the result in a 3D scene.

Trotmobile builder showing the 3D model, categories and part thumbnails.
Each selection updates a 3D preview of the vehicle.

Choose parts

Categories and thumbnails let visitors browse the parts and change the vehicle's equipment.

Try colours

The game's paint colours and lighting settings let visitors change the Trotmobile's appearance.

Compare its size

A character can appear beside the vehicle to give a sense of scale.

Extracting the game's models

The models come from the original PS2 game files. They could not be displayed directly on the Web: the geometry and textures had to be extracted, and the attachment points for the parts reconstructed.

AI agents carried out most of this analysis under my direction and helped build the Python extraction tools. The resulting data is prepared as JSON and PNG for a WebGL 2 renderer. I defined the builder experience and guided the iterations to check the assembly and rendering.

Making part changes feel stable

Only selected parts are downloaded, then kept in memory for reuse. The comparison character loads only when that option is enabled.

Changing equipment sometimes caused flickering while textures loaded. The previous preview now stays visible until the new resources are ready.

More content, lighter pages

Keeping high-quality images does not mean loading them in every preview. I prepared thumbnails sized for their display, used WebP and deferred images outside the screen. Original files remain available separately.

The manual reader loads only the cover or the current two-page spread. I also reduced the heading font, simplified the Tailwind styles and split the builder's lighting data so it loads as needed.

Previews of the eight album scans

97.9% less data for the previews.

Before optimisation
4.7 MB
After optimisation
≈ 100 KB

Stylesheet

After simplifying the Tailwind utilities.

Before optimisation
≈ 61 KB
After optimisation
≈ 42 KB

Trotmobile lighting at startup

91.3% less data, with on-demand loading and gzip compression.

Before optimisation
≈ 1.2 MB
After optimisation
≈ 105 KB

Helping visitors find the archive

I worked on SEO within the pages themselves: a title and description for each view, consistent canonical URLs and image alt text. Structured data and Open Graph and Twitter previews complete this information.

The XML sitemap and robots.txt file help search engines navigate the pages and collections. I removed the manual reader's internal positions from the sitemap, since they do not need to be indexed as separate pages.

What this project taught me

This archive brought content presentation, file size and loading behaviour together. A thumbnail, a two-page manual spread and a 3D scene each need different choices to remain easy to browse.

The builder also gave me experience directing AI agents through the analysis of PS2 files. I had to define the intended result, examine their output and repeat the process when the assembly or rendering did not match the game.